Lineer Regresyona Teknik Giriş

Fatih Küçükkarakurt

Fatih Küçükkarakurt

14 min read

Doğrusal regresyon modeli (Linear Regression), muhtemelen bir veri bilimcisinin cebindeki ilk araçlardan biridir. “Basit” olarak algılansa da, potansiyeli hafife alınmamalıdır, özellikle de tahminlerde bulunmak ve bunların arkasında ne olduğunu anlamakla ilgileniyorsanız. Aslında birçok araştırmacı, çeşitli ticari ve bilimsel alanlarda veriler üzerinden çıkarımlar yapmak için bu harika aracı kullanmaya devam ediyor. Yine de, bazı durumlarda, "gerçek dünya sorunlarını" çözmeye çalışmak için biraz zaman harcadıktan sonra, veri bilimciler doğrusal regresyon modellerini devretme ve odaklarını daha güçlü tahmin gücüne sahip algoritmalara kaydırma eğilimindedir. Elbette, seçilen yöntem her zaman eldeki soruna ve amaca bağlı olmalıdır, yani sadece “ne”ye cevap vermek mi istiyorsunuz yoksa “nasıl”ı da anlamanız mı gerekiyor?

Verileri işlemek için gereken zamanın yanında, istatistiksel bilgi ve doğrusal olmayan süreçler (paradoksal olarak) gerektiğinden, doğrusal regresyonları kullanmak basit bir görev değildir. Bu sadece bir komut dosyası çalıştırmak ve belirli hiper parametreleri doğrulamakla ilgili değil. Biraz daha derine dalmanız gerekir.

Bu kısa makalede, doğrusal bir regresyon modeli uygularken dikkate alınması gereken ana hususların bir özetini sunmayı amaçlıyoruz. Bunun bir reçete olmadığını, sonuçları yorumlamaya çalışmadan önce neleri göz önünde bulundurmanız ve nereye dikkat etmeniz gerektiğini anlamanız için bir kılavuz olduğunu unutmayın.

Uygulamalar

Bahsettiğimiz gibi, cevaplamak isteyebileceğimiz sorulardan biri, “nasıl?”. Örneğin, ders çalışmak için harcanan saat ile sınav puanları, eğitim düzeyi ve maaşlar arasındaki ilişkinin nasıl ortaya çıktığını anlamak; ya da belki bir işinizde belirli bir pazarlama kampanyasına harcanan her para için satışlardaki marjinal artışı anlayabilmek ile ilgileniyorsunuz. Her örnekteki anahtarın, değişkenler arasındaki korelasyonun anlaşılması olarak yorumlanabilecek “anlama” kelimesi olduğunu fark edeceksiniz. Bu bağlamda, bazı yorumlanabilir kalıpları yakalamak ve verilerin arkasında neler olduğu hakkında bazı fikirler "vermek" için doğrusal bir regresyon çok yararlı olabilir.

Hatırlatmak için şundan bahsedelim. Doğrusal bir regresyon uygularken, verilerin doğrudan görülemeyen, popülasyon örneğinden bir dizi özellik kullanılarak kısmen tahmin edilebilen belirli bir "işlev veya doğal dağılımı" olduğunu varsayıyoruz. Özellikle, bu varsayım, sonuçların “doğruluğu” hakkında tartışabilmek için test etmemiz ve doğrulamamız gereken birçok hususu içerir.

Örnek: R'de Doğrusal Regresyon modeli analizi

Bununla birlikte, R'de uygulanan pratik bir örnekle başlayalım.

Diyelim ki önümüzdeki hafta sonu bazı arkadaşlarınızla balığa çıkmayı planlıyorsunuz ve sadece bir alet kullanarak balık ağırlıklarını çok yüksek hassasiyetle tahmin edebileceğinizi göstererek onlara sürpriz yapmayı düşünüyorsunuz. Ama hepsi bu değil! Ayrıca herhangi bir boyut ölçümü (dikey uzunluk, boy vb.) değişirse balığın ağırlığının ne kadar değişebileceğini de söyleyebilirsiniz. Yani bu noktada arkadaşlarınız arasında çok popüler olmayabilirsiniz, ancak bazı bahisleri kazanabilirsiniz.

Bu, lineer regresyon modelimizi kullanmak ve gelişmiş teknikleri araştırmak için eğlenceli bir bağlamdır. Bu örnekte, Kaggle'daki Aung Pyae'den alabileceğiniz balık pazarındaki yaygın balık türlerinin veritabanını kullanacağız. Bu veri kümesi, farklı boyut ve tür ölçümlerini tanımlayan birkaç sütun ve 158 gözlem içerir. Bu analiz için 3 basit boyut ölçüm değişkeni kullanarak başlayacağız: dikey uzunluk, yükseklik ve ağırlık (tüm değişkenler santimetre cinsinden). Bu değişkenler modelimizin predictorleri. Yanıt değişkeni için balıkların gram cinsinden ağırlığına sahibiz. Şimdi, örneğimize başlayalım!

Paketleri içe aktarma

library(MASS)  
library(Kendall)  
library(car)  
library(corrplot)  
library(RColorBrewer)

Residuals çizimleri için bir fonksiyon oluşturma

Her şeyden önce, regresyon modelinden kaynaklanan residualları çizmemize izin veren bir fonksiyon oluşturacağız. Bu durumda, daha sonra değişen varyans analizi yaparken ham residuallardan daha iyi performans gösterdikleri için öğrencileştirilmiş residualları alıyoruz. Bunun nedeni, teorik lineer modeldeki varyansın “bilinen” olarak tanımlanması ve uygulamada bunun yerine örnek varyansının tahmin edilmesidir, bu nedenle ham residuallar, residuallar homoskedastik olsa bile hatalarda değişen varyans gösterebilir. Burada bu etki hakkında kısa bir açıklama bulabilirsiniz.

plot_residuals = function(linear_model){  
    res_stud=rstudent(linear_model)  
    k=1  
    for(i in res_stud){  
      if(is.na(i)){res_stud[k]=0}  
      else{res_stud[k]=i}  
      k=k+1}  
par(mfrow=c(1,2))  
plot(linear_model$fitted.values,res_stud); abline(0,0); abline(-3,0,col="red"); abline(3,0,col="red")  
qqnorm(res_stud); qqline(res_stud, col = 2)  
}

Veri kümesini içe aktarma ve keşfetme

Başlangıçta balığın dikey uzunluğu, yüksekliği ve genişliği değişkenlerini öngörücü olarak ve “ağırlık” değişkenini yanıt değişkeni olarak kullanacağız.

df_fish = read.csv('Fish.csv',header=TRUE)  
selected_cols = c('Weight','Length1', 'Height','Width')  
df_fish = df_fish[,selected_cols]  
attach(df_fish)summary(df_fish)

Hatalı satırları silin

Verilerin kısa bir incelemesinden sonra, "ağırlığı" 0'a eşit olan bir gözlem bulduk, bu nedenle gelecekteki sorunlardan kaçınmak için onu ortadan kaldırdık. Ek olarak, yanıt değişkenlerini ve residualları sonradan dönüştürmek için kullanılan değişkenlerin her zaman pozitif değerler almasını gerektirdiği belirtilmelidir.

df_fish = df_fish[Weight!=0,]  
rownames(df_fish)=1:nrow(df_fish)

Verileri keşfetme

Değişkenlerin dağılım diyagramını ve bir korelasyon matrisini çizerek veri keşfine devam ediyoruz. Buradaki amacımız, öncelikle regresörler ile yanıt değişkeni arasında bir ilişkinin varlığını bulmak ve ikinci olarak olası bir çoklu bağlantı sorunu beklentisiyle predictor değişkenler arasındaki korelasyonu görmektir.

# Scatter plot (Dağılım grafiği)
par(mfrow=c(1,3))   
pairs(df_fish)

# Correlation matrix (korelasyon matrisi)
M = cor(df_fish)  
corrplot(M, type="lower",col=brewer.pal(n=8, name="RdYlBu"))

Grafiklerden de görebileceğimiz gibi, sadece predictor değişkenler ile yanıt değişkeni arasında değil, aynı zamanda predictorlerin kendileri arasında da yüksek bir korelasyon var gibi görünüyor. Bu, çoklu bağlantı sorunuyla yüzleşmemiz gerektiği anlamına gelir.

Ayrıca, predictorler ve yanıt değişkeni arasında doğrusal olmayan bir ilişkinin varlığı da gözlemlenebilir, bu da değişkenlerde herhangi bir dönüşüm olmadan doğrusal bir model uygularsak residuallarda yapısal sorunlarla karşılaşacağımız anlamına gelir.

Bu bağlamda, modelin daha kesin bir düzeltmesini elde etmemizi sağlayacak testler ve dönüşüm teknikleri kullanarak bu çıkarımları değerlendirmeye devam edeceğiz.

Eğitim-Test Split

Sırasıyla gözlemlerin %80'ini ve %20'sini kullanarak eğitim ve test bölümünü gerçekleştirdik.

n_sample = floor(0.8*nrow(df_fish))  
set.seed(7)  
train = sample(seq_len(nrow(df_fish)),size = n_sample)  
train_sample = df_fish[train,]  
row.names(train_sample) = NULL  
test_sample = df_fish[-train,]  
row.names(test_sample) = NULL

Model 1

Orjinal doğrusal model

3 orijinal predictorü ve yanıt değişkenini kullanarak ilk modelimize uyarlıyoruz. Daha sonra regresyon sonuçlarını yazdırıyoruz.

lm_original = lm(Weight~., data=train_sample)  
summary(lm_original)

Beklediğimiz gibi, regresyon sonuçları, regresörlerin iyi bir performans gösterdiğini yönünde. Aslında, bir bütün olarak model, tahmini yanıt değişkeninin ortalamasını yansıtmaktan oluşan bir modelden daha iyi performans gösterir (bu fark, güven seviyelerinin geleneksel değerlerinde istatistiksel olarak anlamlıdır). Bunu, p değeri 0'a yakın olan Fisher istatistiğinde ve değeri, modelin yanıt değişkeninin ortalama etrafındaki değişkenliğinin %88'ini açıkladığını gösteren Düzeltilmiş R-kare'de (Adjusted R-squared) gözlemleyebiliriz.

Ayrıca, ilk çizimde gördüklerimize dayanarak, balığın "ağırlığı" ve "genişliği" arasında daha yüksek bir korelasyon veya anlamlılık düzeyi bekleyebilirdik. Beklediğimiz ile bulduğumuz arasındaki bu fark, çoklu bağlantı denilen şeyden kaynaklanmaktadır.

Peki, bu nasıl açıklanabilir? Başta gördüğümüz etki, “genişlik” değişkeni ile “ağırlık” değişkeni arasındaki ilişkiye değil, bu değişkenin “dikey uzunluk” ve “yükseklik” değişkenleriyle güçlü bir şekilde ilişkili olduğu gerçeğine karşılık gelir. Bağımlı değişkene karşı izole olarak bakıldığında, kısmi korelasyonunu göstermek için diğer değişkenlere de yansıyan bilgileri kullanır. Ancak, yanıt değişkenini doğrudan etkileyen değişkenleri eklediğimizde, tüm bu bilgiler artık “genişlik” tarafından yakalanmaz ve açıklama gücünü azaltır.

Çoklu doğrusallığı kontrol etme

Şu soruyu düşünmüş olabilirsiniz. Bu fenomenle ilgili temel sorun nedir? Predictorler arasında çok yüksek bir korelasyonun varlığında, değişkenlerin açıklayıcı etkisini ayırmak zordur ve çoğu durumda ilgili katsayıların değerlerini ve istatistiksel anlamlılığını bozar. Çoğu durumda açıklayıcı değişkenlerimizin birbiriyle ilişkili olduğunu bulabileceğimizi unutmayın, ancak bu korelasyon yüksek olduğunda sorun ortaya çıkar. Bu, çıkarımlar yapmaya çalışıyorsanız ve değişkenleri yorumlamanız gerekiyorsa oldukça önemlidir, oysa tamamen tahmine dayalı modeller söz konusu olduğunda bu, o kadar da önemli değildir.

Öyleyse, bu durumda çoklu bağlantı olayına değinelim. Bunu yapmak için Variance Inflation Factor (VIF) kullanacağız. Çünkü bu, her bir predictorün diğer predictörlere göre korelasyonunu anlamamıza izin verir ve bir değişkenin, modelimiz için risk değişken olup olamayacağını tanımlamamıza yardımcı olur.

Burada VIF ile ilgili daha fazla bilgi bulabilirsiniz.

Yüksek veya düşük çoklu doğrusal bağlantı olduğunu belirleyecek bir VIF değeri yoktur, ancak pratikte bu indeks için 10'a (veya daha yüksek) yakın değerlerin çoklu doğrusallığın bir göstergesi olabileceği düşünülürken, 1'e yakın değerler çok düşük çoklu doğrusallık gösterir.

vif(lm_original)

Sonuçları gözlemleyerek, "genişlik" değişkeniyle ilişkili daha yüksek bir VIF olduğunu önceden not ediyoruz. Sonuç olarak, çoklu doğrusallığı en yüksek olan değişkeni elimine ederek modelimizi küçülteceğiz ve kalan model ile VIF'i yeniden hesaplayacağız.

Model 2

Azaltılmış doğrusal model

Şimdi modelimizi sadece “dikey uzunluk” ve “yükseklik” değişkenleri ile yeniden oluşturuyoruz.

lm_reduced = lm(Weight~Length1+Height, data=train_sample)  
summary(lm_reduced)

Yeni değişken alt kümesine sahip modelin sonuçları pratikte değişmeden kalır. Gerçekte gözlemleyebildiğimiz şey, Ortalama kare hatasında çok küçük bir artış ile beraber "yükseklik" değişkeninin istatistiksel anlamlılık düzeyinde küçük bir gelişme ve Düzeltilmiş R-kare'de çok küçük bir düşüş görürüz.

Çoklu doğrusallığı kontrol etme

Her bir predictörün VIF'ine ne olduğunu görelim.

vif(lm_reduced)

Gördüğümüz gibi, kalan iki açıklayıcı değişken için VIF önemli ölçüde azaldı. Bu bize "width" değişkenini kaldırmanın iyi bir karar gibi göründüğünü söyler (daha basit daha iyidir).

Residual Çizimi

Değişkenlerimizi tanımladığımıza göre, regresyon sonuçlarının kapsamlı bir analizini yapmaya devam ediyoruz.

Bu süreçte residuallarin analizi, regresyon modelimizden en iyi şekilde yararlanmak için temel bir unsurdur. Başlangıç olarak, bu tür bir modeli kullanırken, hata dağılımının normalliği varsayımından hareket ediyoruz. Sadece herhangi bir normal dağılım türü değil, ortalaması 0 olan bir varsayımdan yola çıkıyoruz. Bu, bu modelin sağladığı tüm avantajlardan yararlanmamızı sağlayan şeydir.

plot_residuals(lm_reduced)

Grafikte gördüğümüz gibi, residuallarda bir tür ikinci dereceden yapı var gibi görünüyor. Bu, kullanılan predictörlerde bazı ek bilgilerin hala ayıklanabileceğini gösterir, ancak bu bilgiyi çıkarmak için değişkenler üzerinde belirli dönüşümler yapmamız gerekecek.

Verilerin normalliği ile ilgili olarak (Normal Q-Q Grafiği), normal dağılımın teorik niceliklerine kıyasla residualların dağılımında bazı çarpıklık ve ağır kuyruklar gözlemleyebiliriz. Bu sezgiyi doğrulamak için genel olarak iki dağılımın eşit olup olmadığını ve bu özel durumda residulların dağılımının teorik ile benzer olup olmadığını karşılaştırmamıza izin veren Kolmogorov-Smirnov testini kullanacağız.

Residuallarda normalliğin test edilmesi

lm_reduced_residuals=rstudent(lm_reduced)  
ks.test(lm_reduced_residuals,"pnorm",mean(lm_reduced_residuals),sd(lm_reduced_residuals))

Kolmogorov-Smirnov testinin sıfır hipotezi, her iki dağılımın da eşit olmadığı, alternatif hipotezi ise her iki dağılımın da eşit olduğu şeklindedir. Testi çalıştırdıktan sonra boş hipotezin reddedildiğini göstermek isteriz (yüksek bir p değerine ihtiyacımız var). Ancak bu durumda, p-değerinin bazı geleneksel güven düzeylerinden daha düşük olduğunu gözlemliyoruz, bu nedenle (%1 düzeyinde) sıfır hipotezini reddetmediğimizi ve sonuç olarak yeterli kanıta sahip olmadığımızı söyleyebiliriz.

Heteroskedastisite: Residuallar ve uygun değerler arasındaki korelasyonu test etme

Residualların homoskedastisitesini doğrulamakla ilgileniyoruz. Homoskedastisite ile, modelimizin öngördüğü değerler arttıkça veya azaldıkça hataların büyümediğini veya küçülmediğini kastediyoruz. Bu, modelin oluşturulmasında istenen bir özelliktir, çünkü residuallarda yapının yokluğunun test edilmesi, modelin performansını iyileştirmemize izin verebilecek şu anda kullanılan değişkenlerin artık olası dönüşümlerinin olmadığını gösterecektir.

Bu durumda, residuallarda bir miktar tekdüzelik olduğunu ve bunların ölçekte değişmez olduklarını göstermemiz gerekir. Aksi takdirde, en küçük kareler predictorlerin verim kaybı ve predictorlerin varyans ve kovaryans matrisinin hesaplanması sırasında ortaya çıkan problemlerle karşı karşıya kalacağız.

Bununla birlikte, hedeflediğimiz şey, korelasyonun yokluğunu doğrulamamıza izin veren bir hipotez testi yapabilmektir.

summary(Kendall(abs(lm_reduced$residuals),lm_reduced$fitted.values))

Uygulanan test (Kendall testi), Spearman testine benzer bir korelasyon testidir ve korelasyon katsayısının hesaplanmasında bazı avantajları vardır. Daha fazla ayrıntı için bu bağlantıya gidebilirsiniz.

Kendall testi, residuallar ve takılan değerler arasındaki korelasyon katsayısının (tau) pozitif (0,16) ve %1'de istatistiksel olarak anlamlı olduğunu gösterir. Bu, korelasyon yokluğu hipotezini destekleyecek yeterli kanıt olmadığını, yani değişen varyanslı residuallarda bir senaryoda olduğumuz anlamına gelir.

Model 3

Yanıt değişkenini dönüştürme

Peki, residual bir yapıya sahip olduğumuzda ne yaparız? Bu sorunu tersine çevirmemize yardımcı olabilecek iki seçeneğimiz var:

a) yanıt değişkenini dönüştürmek b) öngörücüleri dönüştürmek

Dönüşümleri gerçekleştirmeye başlamak için doğru bir tarif yoktur, ancak pratikte olan şey, yanıt değişkenini dönüştürmekle başlamak ve yeni bir dönüşüm önermeden önce sonuçları yeniden değerlendirmektir.

Ardından, Box-Cox maksimum olabilirlik tekniğini kullanarak “ağırlık” değişkenini dönüştürerek başlayacağız, çünkü bu, değişkenin x power lambda olarak dönüştürülebileceği bir lambda değeri tahmin etmemize izin verir. Daha fazla ayrıntı için bu bağlantıya gidebilirsiniz.

y_transformed=boxcox(lm_reduced)  
y_transformed$x[which.max(y_transformed$y)]

Sonuçlar, "ağırlık" değişkeni üzerinde olası bir dönüşümün, 0.38 lambda gücü uygulamak olacağını göstermektedir. Bu büyüklükteki bir dönüşümün, modelin nihai sonuçlarının yorumlanmasını zorlaştırabileceğini unutmayın. Bununla başa çıkmak için, genel olarak, katsayıları kolaylıkla yorumlamamıza izin veren önerilen değere yakın bir dönüşüm uygulamak tercih edilir. Bu nedenle logaritmik bir dönüşüm seçiyoruz.

Dönüştürülmüş yanıt değişkeni ile doğrusal modeli çalıştırma

lm_transform_y = lm(log(Weight) ~ Length1 + Height, data=train_sample)  
summary(lm_transform_y)

Bu dönüşümü uyguladıktan sonra, modelin performansında küçük ama önemli bir gelişme fark ediyoruz. Hem modelin hem de predictorlerin istatistiksel anlamlılık düzeylerini korurken, Düzeltilmiş R Karede %1'den fazla bir artış gözlemleyebiliriz.

Residual Çizimi

plot_residuals(lm_transform_y)

Peki, sorunu çözdük mü? Hataların yapısı değerlendirildiğinde, bu ilk dönüşüm hem değişen varyans problemini tersine çevirmemiş hem de normal dağılımdan uzak olan residualların dağılımını “kötüleştirmiş” görünmektedir.

Bakalım test sonuçları nasıl olacak.

Residuallarda normalliğin test edilmesi

lm_transform_y_residuals=rstudent(lm_transform_y)  
ks.test(lm_transform_y_residuals,"pnorm",mean(lm_transform_y_residuals),sd(lm_transform_y_residuals))

Residulların dağılımı, yeni p-değerinde (geçerli 0,01, önceki 0,04) yansıtıldığını gördüğümüz gibi, normal dağılımdan uzaklaştı. Bu nedenle, hata dağılımında normalliği reddetmeye devam ediyoruz.

Heteroskedastisite: Residuallar ve uygun değerler arasındaki korelasyonu test etme

summary(Kendall(abs(lm_transform_y$residuals),lm_transform_y$fitted.values))

Değişen varyansla ilgili olarak, biraz da olsa “kötüleşmiş” görünüyor, bu yüzden hala bu sorunu tersine çeviremiyoruz.

Model 4

Predictorleri dönüştürmek

Predictorlerin dönüşümüne geçiyoruz. Bunun için, Box-Cox dönüşümü gibi, açıklayıcı değişkenlerden daha fazla bilgi çıkarmak için önerilen lambda gücünün ne olduğunu anlamamızı sağlayacak Box-Tidwell maksimum olabilirlik dönüşümü tekniğini kullanacağız.

boxTidwell(log(Weight) ~ Length1 + Height ,data=train_sample)

Elde edilen sonuçlar, Length1 değişkeni için lambda = 0.007 ve Height değişkeni için lambda = -0.38 dönüşümünün uygulanmasını önerir. Her iki durumda da önerilen dönüşümler, her iki değişkenin p değerleri ile gösterildiği gibi, %1 düzeyinde istatistiksel olarak anlamlıdır. Sonuç olarak, önerilen değerlere göre çok hassas dönüşümler yapmanın sonuçların sonraki yorumlarını büyük ölçüde karmaşık hale getirebileceği bir senaryoda bir kez daha bulunuyoruz. Böylece, yine her iki değişkene de logaritmik bir dönüşüm uygulamayı seçiyoruz.

Doğrusal modeli yanıt değişkeni ve dönüştürülmüş predictorler ile çalıştırma

Bu yeni dönüşümlerle lineer regresyon modelimizi tekrar ayarlamaya devam ediyoruz.

lm_transform_y_X = lm(log(Weight) ~ log(Length1) + log(Height), data=train_sample)  
summary(lm_transform_y_X)

Görülebileceği gibi, bir bütün olarak gerçekleştirilen dönüşümler, modelin istatistiksel anlamlılık düzeylerini korurken, Düzeltilmiş-R-kare'nin yaklaşık %9'luk bir artış gösterdiği performansta önemli bir gelişme sağlamıştır.

Residual Çizimi

plot_residuals(lm_transform_y_X)

Residualların grafiklerini analiz ederken, hem residualları yapısının azalmasında hem de normal dağılıma yakınlıkta dikkate değer bir gelişme gözlemleyebiliriz.

Residuallarda normalliğin test edilmesi

lm_transform_y_X_residuals=rstudent(lm_transform_y_X)  
ks.test(lm_transform_y_X_residuals,"pnorm",mean(lm_transform_y_X_residuals),sd(lm_transform_y_X_residuals))

Sıfır hipotezini (p-değeri = 0,5) reddedebildik, böylece mevcut modelle, residualların dağılımının normal olmadığını sürdürmek için yeterli bilgi yok. Pratikte, bu olay residualların normal kabul edilebileceği gerçeğine indirgenebilir.

Heteroskedastisite: Residuallar ve uygun değerler arasındaki korelasyonu test etme

summary(Kendall(abs(lm_transform_y_X$residuals),lm_transform_y_X$fitted.values))

Yüksek bir p-değeri (0,84) ile residuallar ve uygun değerler (0.01) arasındaki korelasyonda, var olan küçük korelasyonun bile olduğunu söylemek için yeterli kanıt olmadığını gösteren önemli bir azalma bulduk. İstatistiksel olarak anlamlı. Böylece değişen varyans sorununu tersine çevirdik.

Sonuçlar

Lafı fazla uzatmadan, sonuçlarıyla birlikte son modelimiz şu şekilde oldu.

Daha önce de belirttiğimiz gibi, modelin performansı %99'a yakın bir determinasyon katsayısı (Adjusted R-squared) ile çok iyi görünüyor, bu yüzden sadece “dikey uzunluk” ve “yükseklik” değişkenleri ile neredeyse açıklayabiliyoruz. Yani bahislerde arkadaşlarımızın bizi yenme şansları yok.

Ayrıca, bu tür bir modelin aynı zamanda residualların yanıt değişkeni üzerindeki kısmi etkisini (bu durumda nedensellikten bahsetmiyoruz) ve uygulanan dönüşümler sayesinde çıkarım yapmamızı sağladığını söyledik. Başka bir deyişle, dönüşümler bir log-log modeli oluşturduğunda (logaritmalardaki yanıt değişkeni - logaritmalardaki öngörücüler), kısmi korelasyonları yüzde değişim oranları açısından yorumlama olanağına sahibiz.

Bu şekilde, dönüştürülmüş değişken log(Length1)'e eşlik eden katsayı 2'ye yakındır, bu da bize, az önce yakaladığımız balığı yakalamak yerine, uzunluğu %10 daha fazla olan bir balığı yakalayacağımızı söyler. Bu balıkların ağırlığı şu an sahip olduğumuzdan yaklaşık %20 daha fazla olacaktır. Benzer şekilde, dönüştürülmüş değişken log(Height)'a eşlik eden katsayı 1'e yakındır, bu da bize, az önce yakaladığımız balığı yakalamak yerine, Height'ı %10 daha fazla olan bir balığı yakalayacağımızı söyler. Bu tür balıkların sayısı da şu an sahip olduğumuzdan yaklaşık %10 daha fazla olacaktır.

Katsayılarımızı, bağımlı değişken ve her predictor arasındaki bir esneklik ölçüsüne dönüştürdük.

Bu yöntemle, balık tahminlerinde bir kral olacağınıza emin olabilirsiniz.

Özetlemek gerekirse, bu basit pratik örnek, çok sayıda kavramı ele almamıza ve lineer regresyon modellerini incelememize izin verdi. Unutmayın, bir soruya verilecek en uygun cevap her zaman en karmaşık olanı değildir.

Kendinize iyi bakın.Burası AnatoliaCode.

Anatoliacode Makale Aboneliği

Bize abone olarak tüm makaleleri ilk siz okuyabilirsiniz. Ayrıca asla reklam veya spam yapmıyoruz.