R'de standartlaştırılmış artıklar nasıl hesaplanır
Artık, birregresyon modelinde gözlemlenen bir değer ile tahmin edilen bir değer arasındaki farktır.
Aşağıdaki şekilde hesaplanır:
Artık = Gözlemlenen değer – Tahmin edilen değer
Gözlemlenen değerleri çizer ve uygun regresyon çizgisini üst üste koyarsak, her gözlem için artıklar, gözlem ile regresyon çizgisi arasındaki dikey mesafe olacaktır:
Bir regresyon modelinde aykırı değerleri tanımlamak için sıklıkla kullandığımız bir tür artık , standartlaştırılmış artık olarak adlandırılır.
Aşağıdaki şekilde hesaplanır:
r ben = e ben / s(e ben ) = e ben / RSE√ 1-h ii
Altın:
- e i : i’inci kalıntı
- RSE: modelin artık standart hatası
- h ii : i’inci gözlemin yükselişi
Pratikte, mutlak değeri 3’ten büyük olan herhangi bir standartlaştırılmış artık değeri genellikle aykırı değer olarak kabul ederiz.
Bu eğitimde R’de standartlaştırılmış artıkların nasıl hesaplanacağına dair adım adım bir örnek sunulmaktadır.
1. Adım: Verileri girin
Öncelikle R’de çalışmak için küçük bir veri kümesi oluşturacağız:
#create data data <- data.frame(x=c(8, 12, 12, 13, 14, 16, 17, 22, 24, 26, 29, 30), y=c(41, 42, 39, 37, 35, 39, 45, 46, 39, 49, 55, 57)) #viewdata data xy 1 8 41 2 12 42 3 12 39 4 13 37 5 14 35 6 16 39 7 17 45 8 22 46 9 24 39 10 26 49 11 29 55 12 30 57
Adım 2: Regresyon modelini yerleştirin
Daha sonra basit bir doğrusal regresyon modeline uyum sağlamak için lm() fonksiyonunu kullanacağız:
#fit model model <- lm(y ~ x, data=data) #view model summary summary(model) Call: lm(formula = y ~ x, data = data) Residuals: Min 1Q Median 3Q Max -8.7578 -2.5161 0.0292 3.3457 5.3268 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 29.6309 3.6189 8.188 9.6e-06 *** x 0.7553 0.1821 4.148 0.00199 ** --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 4.442 on 10 degrees of freedom Multiple R-squared: 0.6324, Adjusted R-squared: 0.5956 F-statistic: 17.2 on 1 and 10 DF, p-value: 0.001988
Adım 3: Standartlaştırılmış artıkları hesaplayın
Daha sonra, modelin standartlaştırılmış artıklarını hesaplamak için yerleşik rstandard() fonksiyonunu kullanacağız:
#calculate the standardized residuals standard_res <- rstandard(model) #view the standardized residuals standard_res 1 2 3 4 5 6 1.40517322 0.81017562 0.07491009 -0.59323342 -1.24820530 -0.64248883 7 8 9 10 11 12 0.59610905 -0.05876884 -2.11711982 -0.06655600 0.91057211 1.26973888
İstersek standartlaştırılmış artıkları orijinal veri çerçevesine ekleyebiliriz:
#column bind standardized residuals back to original data frame final_data <- cbind(data, standard_res) #view data frame xy standard_res 1 8 41 1.40517322 2 12 42 0.81017562 3 12 39 0.07491009 4 13 37 -0.59323342 5 14 35 -1.24820530 6 16 39 -0.64248883 7 17 45 0.59610905 8 22 46 -0.05876884 9 24 39 -2.11711982 10 26 49 -0.06655600 11 29 55 0.91057211 12 30 57 1.26973888
Daha sonra hangi gözlemlerin aykırı değerlere en yakın olduğu hakkında bir fikir edinmek için her gözlemi standartlaştırılmış kalıntısına göre en büyükten en küçüğe doğru sıralayabiliriz:
#sort standardized residuals descending
final_data[ order (-standard_res),]
xy standard_res
1 8 41 1.40517322
12 30 57 1.26973888
11 29 55 0.91057211
2 12 42 0.81017562
7 17 45 0.59610905
3 12 39 0.07491009
8 22 46 -0.05876884
10 26 49 -0.06655600
4 13 37 -0.59323342
6 16 39 -0.64248883
5 14 35 -1.24820530
9 24 39 -2.11711982
Sonuçlardan, standartlaştırılmış artıkların hiçbirinin mutlak 3 değerini aşmadığını görebiliriz. Dolayısıyla gözlemlerin hiçbiri aykırı görünmüyor.
Adım 4: Standartlaştırılmış artıkları görselleştirin
Son olarak, tahmin değişkeninin değerlerini standartlaştırılmış artıklara göre görselleştirmek için bir dağılım grafiği oluşturabiliriz:
#plot predictor variable vs. standardized residuals
plot(final_data$x, standard_res, ylab=' Standardized Residuals ', xlab=' x ')
#add horizontal line at 0
abline(0, 0)
Ek kaynaklar
Kalıntılar nelerdir?
Standartlaştırılmış artıklar nelerdir?
Çoklu Doğrusal Regresyona Giriş