Ben sadece bir örnek R kodları sağlıyorum, sadece R ile deneyim yoksa cevapları görebilirsiniz. Sadece örneklerle bazı durumlarda yapmak istiyorum.
korelasyon ve regresyon
Bir Y ve bir X ile basit doğrusal korelasyon ve regresyon:
Model:
y = a + betaX + error (residual)
Diyelim ki sadece iki değişkenimiz var:
X = c(4,5,8,6,12,15)
Y = c(3,6,9,8,6, 18)
plot(X,Y, pch = 19)
Bir dağılım diyagramında, noktalar düz bir çizgiye ne kadar yakınsa, iki değişken arasındaki doğrusal ilişki o kadar güçlü olur.
Doğrusal korelasyonu görelim.
cor(X,Y)
0.7828747
Şimdi doğrusal regresyon ve çekmece R kare değerleri.
reg1 <- lm(Y~X)
summary(reg1)$r.squared
0.6128929
Böylece modelin katsayıları:
reg1$coefficients
(Intercept) X
2.2535971 0.7877698
X için beta 0.7877698'dir. Böylece dışarı modeli olacak:
Y = 2.2535971 + 0.7877698 * X
Regresyondaki R-kare değerinin karekökü r
doğrusal regresyondaki ile aynıdır .
sqrt(summary(reg1)$r.squared)
[1] 0.7828747
Yukarıdaki örneği kullanarak regresyon eğimi ve korelasyon üzerindeki ölçek etkisini görelim ve X
sabit bir sözle çarpalım 12
.
X = c(4,5,8,6,12,15)
Y = c(3,6,9,8,6, 18)
X12 <- X*12
cor(X12,Y)
[1] 0.7828747
Korelasyon do R-kare olarak değişmeden kalır .
reg12 <- lm(Y~X12)
summary(reg12)$r.squared
[1] 0.6128929
reg12$coefficients
(Intercept) X12
0.53571429 0.07797619
Regresyon katsayılarının değiştiğini ancak R-karesinin değişmediğini görebilirsiniz. Şimdi başka bir deney, bunun için bir sabit ekleyelim X
ve bunun ne etkisi olacağını görelim.
X = c(4,5,8,6,12,15)
Y = c(3,6,9,8,6, 18)
X5 <- X+5
cor(X5,Y)
[1] 0.7828747
İlişki eklendikten sonra hala değişmemiştir 5
. Bunun regresyon katsayıları üzerinde nasıl bir etkisi olacağını görelim.
reg5 <- lm(Y~X5)
summary(reg5)$r.squared
[1] 0.6128929
reg5$coefficients
(Intercept) X5
-4.1428571 0.9357143
R-kare ve korelasyon ölçek etkisi yok ama yolunu kesmek ve eğim yok. Dolayısıyla eğim korelasyon katsayısı ile aynı değildir (değişkenler ortalama 0 ve varyans 1 ile standartlaştırılmadıkça ).
ANOVA nedir ve neden ANOVA yapıyoruz?
ANOVA, karar vermek için varyansları karşılaştırdığımız bir tekniktir. Yanıt değişkeni (denir Y
) nicel değişkendir X
, nicel veya nitel olabilir (farklı düzeylerde faktör). Hem X
ve Y
sayısında bir veya daha fazla olabilir. Genellikle nitel değişkenler için ANOVA diyoruz, regresyon bağlamında ANOVA daha az tartışılmaktadır. Belki de bu sizin karışıklığınızın nedeni olabilir. Nitel değişkendeki sıfır hipotezi (örneğin, gruplar gibi faktörler), grupların ortalaması farklı / eşit değildir, regresyon analizinde çizginin eğiminin 0'dan önemli ölçüde farklı olup olmadığını test ederiz.
Hem X hem de Y nicel olduğu için hem regresyon analizi hem de nitel faktör ANOVA yapabileceğimiz bir örneği görelim, ancak X'i faktör olarak ele alabiliriz.
X1 <- rep(1:5, each = 5)
Y1 <- c(12,14,18,12,14, 21,22,23,24,18, 25,23,20,25,26, 29,29,28,30,25, 29,30,32,28,27)
myd <- data.frame (X1,Y1)
Veriler aşağıdaki gibidir.
X1 Y1
1 1 12
2 1 14
3 1 18
4 1 12
5 1 14
6 2 21
7 2 22
8 2 23
9 2 24
10 2 18
11 3 25
12 3 23
13 3 20
14 3 25
15 3 26
16 4 29
17 4 29
18 4 28
19 4 30
20 4 25
21 5 29
22 5 30
23 5 32
24 5 28
25 5 27
Şimdi hem regresyon hem de ANOVA yapıyoruz. İlk gerileme:
reg <- lm(Y1~X1, data=myd)
anova(reg)
Analysis of Variance Table
Response: Y1
Df Sum Sq Mean Sq F value Pr(>F)
X1 1 684.50 684.50 101.4 6.703e-10 ***
Residuals 23 155.26 6.75
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
reg$coefficients
(Intercept) X1
12.26 3.70
Şimdi X1 faktöre dönüştürülerek geleneksel ANOVA (faktör / nitel değişken için ortalama ANOVA).
myd$X1f <- as.factor (myd$X1)
regf <- lm(Y1~X1f, data=myd)
anova(regf)
Analysis of Variance Table
Response: Y1
Df Sum Sq Mean Sq F value Pr(>F)
X1f 4 742.16 185.54 38.02 4.424e-09 ***
Residuals 20 97.60 4.88
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Yukarıdaki durumda 1 yerine 4 olan değiştirilmiş X1f Df'yi görebilirsiniz.
Nitel değişkenler için ANOVA'nın aksine, regresyon analizi yaptığımız kantitatif değişkenler bağlamında - Varyans Analizi (ANOVA), bir regresyon modeli içindeki değişkenlik seviyeleri hakkında bilgi sağlayan ve anlamlılık testleri için bir temel oluşturan hesaplardan oluşur.
Temel olarak ANOVA sıfır hipotez beta = 0'ı test eder (alternatif hipotez beta ile 0'a eşit değildir). Burada, modelin hataya (değişken varyans) karşı açıkladığı değişkenlik oranının F testini yapıyoruz. Model varyansı, eklediğiniz çizginin açıkladığı miktardan, artık ise model tarafından açıklanmayan değerden gelir. Anlamlı bir F, beta değerinin sıfıra eşit olmadığı anlamına gelir, iki değişken arasında anlamlı bir ilişki olduğu anlamına gelir.
> anova(reg1)
Analysis of Variance Table
Response: Y
Df Sum Sq Mean Sq F value Pr(>F)
X 1 81.719 81.719 6.3331 0.0656 .
Residuals 4 51.614 12.904
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Burada yüksek korelasyon veya R kare görüyoruz, ancak yine de önemli bir sonuç görmüyoruz. Bazen düşük korelasyonun hala önemli korelasyon olduğu bir sonuç alabilirsiniz. Bu durumda anlamlı olmayan ilişkinin nedeni, yeterli veriye sahip olmamamızdır (n = 6, artık df = 4), bu nedenle F, pay 1 df vs 4 payda df ile F dağılımına bakılmalıdır. Bu yüzden eğimi 0'a eşit olmadığına karar veremedik.
Başka bir örnek görelim:
X = c(4,5,8,6,2, 5,6,4,2,3, 8,2,5,6,3, 8,9,3,5,10)
Y = c(3,6,9,8,6, 8,6,8,10,5, 3,3,2,4,3, 11,12,4,2,14)
reg3 <- lm(Y~X)
anova(reg3)
Analysis of Variance Table
Response: Y
Df Sum Sq Mean Sq F value Pr(>F)
X 1 69.009 69.009 7.414 0.01396 *
Residuals 18 167.541 9.308
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Bu yeni veri için R kare değeri:
summary(reg3)$r.squared
[1] 0.2917296
cor(X,Y)
[1] 0.54012
Korelasyon önceki durumdan daha düşük olmasına rağmen önemli bir eğim elde ettik. Daha fazla veri df'yi artırır ve eğimin sıfıra eşit olmadığına dair sıfır hipotezini dışlayabilmemiz için yeterli bilgi sağlar.
Olumsuzluk korelasyonunun olduğu başka bir örnek verelim:
X1 = c(4,5,8,6,12,15)
Y1 = c(18,16,2,4,2, 8)
# correlation
cor(X1,Y1)
-0.5266847
# r-square using regression
reg2 <- lm(Y1~X1)
summary(reg2)$r.squared
0.2773967
sqrt(summary(reg2)$r.squared)
[1] 0.5266847
Değerler kareli olduğundan kare kök burada olumlu ya da olumsuz ilişki hakkında bilgi vermeyecektir. Ama büyüklük aynı.
Çoklu regresyon vakası:
Birden fazla doğrusal regresyon, gözlemlenen verilere doğrusal bir denklem yerleştirerek iki veya daha fazla açıklayıcı değişken ile bir yanıt değişkeni arasındaki ilişkiyi modellemeye çalışır. Yukarıdaki tartışma çoklu regresyon olayına genişletilebilir. Bu durumda, terimde birden çok beta var:
y = a + beta1X1 + beta2X2 + beta2X3 + ................+ betapXp + error
Example:
X1 = c(4,5,8,6,2, 5,6,4,2,3, 8,2,5,6,3, 8,9,3,5,10)
X2 = c(14,15,8,16,2, 15,3,2,4,7, 9,12,5,6,3, 12,19,13,15,20)
Y = c(3,6,9,8,6, 8,6,8,10,5, 3,3,2,4,3, 11,12,4,2,14)
reg4 <- lm(Y~X1+X2)
Modelin katsayılarını görelim:
reg4$coefficients
(Intercept) X1 X2
2.04055116 0.72169350 0.05566427
Böylece çoklu doğrusal regresyon modeliniz:
Y = 2.04055116 + 0.72169350 * X1 + 0.05566427* X2
Şimdi X1 ve X2 için betanın 0'dan büyük olup olmadığını test edelim.
anova(reg4)
Analysis of Variance Table
Response: Y
Df Sum Sq Mean Sq F value Pr(>F)
X1 1 69.009 69.009 7.0655 0.01656 *
X2 1 1.504 1.504 0.1540 0.69965
Residuals 17 166.038 9.767
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Burada X1'in eğiminin 0'dan büyük olduğunu söylerken X2 eğiminin 0'dan büyük olduğunu belirleyemedik.
Eğimin X1 ve Y veya X2 ve Y arasında bir korelasyon olmadığını unutmayın.
> cor(Y, X1)
[1] 0.54012
> cor(Y,X2)
[1] 0.3361571
Çok değişkenli durumda (değişkenin ikiden büyük olduğu durumlarda) Kısmi korelasyon oyuna girer. Kısmi korelasyon, üçüncü veya daha fazla başka değişkeni kontrol ederken iki değişkenin korelasyonudur.
source("http://www.yilab.gatech.edu/pcor.R")
pcor.test(X1, Y,X2)
estimate p.value statistic n gn Method Use
1 0.4567979 0.03424027 2.117231 20 1 Pearson Var-Cov matrix
pcor.test(X2, Y,X1)
estimate p.value statistic n gn Method Use
1 0.09473812 0.6947774 0.3923801 20 1 Pearson Var-Cov matrix