R'de box-cox dönüşümü nasıl gerçekleştirilir (örneklerle)
Box-cox dönüşümü, normal olarak dağıtılmayan bir veri kümesini daha normal olarak dağıtılan bir kümeye dönüştürmek için yaygın olarak kullanılan bir yöntemdir.
Bu yöntemin arkasındaki temel fikir, aşağıdaki formülü kullanarak dönüştürülen verinin normal dağılıma mümkün olduğu kadar yakın olmasını sağlayacak bir λ değeri bulmaktır:
- y(λ) = (y λ – 1) / λ eğer y ≠ 0 ise
- y(λ) = log(y) eğer y = 0 ise
MASS() kütüphanesindeki boxcox() fonksiyonunu kullanarak R’de box-cox dönüşümü gerçekleştirebiliriz. Aşağıdaki örnekte bu fonksiyonun pratikte nasıl kullanılacağı gösterilmektedir.
Box-Cox dönüşümünün gelişiminin güzel bir özeti için Connecticut Üniversitesi’nin bu makalesine bakın.
Örnek: R’de Box-Cox Dönüşümü
Aşağıdaki kod, doğrusal bir regresyon modelinin bir veri kümesine nasıl sığdırılacağını, ardından yanıt değişkenini dönüştürmek ve yeni bir modele uyacak en uygun lambdayı bulmak için boxcox() işlevinin nasıl kullanılacağını gösterir.
library (MASS) #create data y=c(1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 6, 7, 8) x=c(7, 7, 8, 3, 2, 4, 4, 6, 6, 7, 5, 3, 3, 5, 8) #fit linear regression model model <- lm(y~x) #find optimal lambda for Box-Cox transformation bc <- boxcox(y ~ x) (lambda <- bc$x[which.max(bc$y)]) [1] -0.4242424 #fit new linear regression model using the Box-Cox transformation new_model <- lm(((y^lambda-1)/lambda) ~ x)
Optimum lambdanın -0,4242424 olduğu ortaya çıktı. Böylece yeni regresyon modeli orijinal yanıt değişkeni y’yi y = (y -0,4242424 – 1) / -0,4242424 değişkeniyle değiştirdi.
Aşağıdaki kod, iki regresyon modeli arasındaki artıklardaki farkları görselleştirmek için R’de iki QQ grafiğinin nasıl oluşturulacağını gösterir:
#define plotting area op <- par(pty = "s", mfrow = c(1, 2)) #QQ plot for original model qqnorm(model$residuals) qqline(model$residuals) #QQ plot for Box-Cox transformed model qqnorm(new_model$residuals) qqline(new_model$residuals) #display both QQ plots by(op)
Genel olarak, eğer veri noktaları bir QQ grafiğinde düz bir çapraz çizgi boyunca uzanıyorsa, veri seti muhtemelen normal bir dağılım izlemektedir.
Box-cox dönüştürülmüş modelinin, orijinal regresyon modelinden çok daha düz bir çizgiye sahip bir QQ grafiğini nasıl ürettiğine dikkat edin.
Bu, box-cox dönüştürülmüş modelin artıklarının çok daha normal dağıldığını gösterir ve bu da doğrusal regresyonun varsayımlarından birini karşılar.
Ek kaynaklar
R’de Veri Nasıl Dönüştürülür (Log, Kare Kök, Küp Kök)
R’de QQ grafiği nasıl oluşturulur ve yorumlanır
R’de normallik için Shapiro-Wilk testi nasıl yapılır