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

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir