R'de sağlam standart hatalar nasıl hesaplanır
Doğrusal regresyonun varsayımlarından biri, model artıklarının yordayıcı değişkenin her seviyesinde eşit şekilde dağılmış olmasıdır.
Bu varsayım karşılanmadığında regresyon modelinde heteroskedastisitenin mevcut olduğu söylenir.
Bu gerçekleştiğinde modelin regresyon katsayılarının standart hataları güvenilmez hale gelir.
Bunu hesaba katmak için, heteroskedastisiteye karşı “sağlam” olan ve bize regresyon katsayıları için gerçek standart hata değerleri hakkında daha iyi bir fikir verebilecek olan sağlam standart hataları hesaplayabiliriz.
Aşağıdaki örnek, R’deki bir regresyon modeli için sağlam standart hataların nasıl hesaplanacağını gösterir.
Örnek: R’de sağlam standart hataların hesaplanması
R’de, bir sınıftaki 20 öğrencinin kazandığı sınav puanları ve çalışılan saatler hakkında bilgi içeren aşağıdaki veri çerçevesine sahip olduğumuzu varsayalım:
#create data frame df <- data. frame (hours=c(1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 7, 7, 8), score=c(67, 68, 74, 70, 71, 75, 80, 70, 84, 72, 88, 75, 95, 75, 99, 78, 99, 65, 96, 70)) #view head of data frame head(df) hours score 1 1 67 2 1 68 3 1 74 4 1 70 5 2 71 6 2 75
R’de tahmin değişkeni olarak saatleri ve yanıt değişkeni olarak puanı kullanan bir regresyon modeline uyum sağlamak için lm() işlevini kullanabiliriz:
#fit regression model fit <- lm(score ~ hours, data=df) #view summary of model summary(fit) Call: lm(formula = score ~ hours, data = df) Residuals: Min 1Q Median 3Q Max -19,775 -5,298 -3,521 7,520 18,116 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 71.158 4.708 15.11 1.14e-11 *** hours 1.945 1.075 1.81 0.087 . --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 10.48 on 18 degrees of freedom Multiple R-squared: 0.154, Adjusted R-squared: 0.107 F-statistic: 3.278 on 1 and 18 DF, p-value: 0.08696
Regresyon modelinde heteroskedastisitenin bir sorun olup olmadığını görsel olarak kontrol etmenin en kolay yolu bir artık grafiği oluşturmaktır:
#create residual vs. fitted plot plot(fitted(fit), reside(fit)) #add a horizontal line at y=0 abline(0,0)
X ekseni yanıt değişkeninin uygun değerlerini, y ekseni ise karşılık gelen artıkları gösterir.
Grafikten, uyum değerleri arttıkça artıkların varyansının da arttığını görebiliriz.
Bu, değişen varyansın regresyon modelinde muhtemelen bir sorun olduğunu ve model özetinin standart hatalarının güvenilmez olduğunu gösterir.
Sağlam standart hataları hesaplamak için lmtest paketindeki coeftest() fonksiyonunu ve sandviç paketindeki vcovHC() fonksiyonunu aşağıdaki gibi kullanabiliriz:
library (lmtest) library (sandwich) #calculate robust standard errors for model coefficients coeftest(fit, vcov = vcovHC(fit, type = ' HC0 ')) t test of coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 71.1576 3.3072 21.5160 2.719e-14 *** hours 1.9454 1.2072 1.6115 0.1245 --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Saat tahmin değişkenine ilişkin standart hatanın önceki model özetinde 1,075’ten bu model özetinde 1,2072’ye yükseldiğini unutmayın.
Orijinal regresyon modelinde değişen varyans mevcut olduğundan, bu standart hata tahmini daha güvenilirdir ve saat tahmin değişkeni için bir güven aralığı hesaplanırken kullanılmalıdır.
Not : vcovHC() işlevinde hesaplanacak en yaygın tahmin türü ‘HC0’dır, ancak diğer tahmin türlerini bulmak için belgelere başvurabilirsiniz.
Ek kaynaklar
Aşağıdaki eğitimlerde R’de diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:
R’de değişen varyans için White testi nasıl yapılır?
R’de doğrusal regresyon çıktısı nasıl yorumlanır
R’de artık arsa nasıl oluşturulur