R'de kukla değişkenler nasıl oluşturulur (adım adım)


Kukla değişken, kategorik bir değişkeni iki değerden birini alan sayısal bir değişken olarak temsil edebilmemiz için regresyon analizinde oluşturduğumuz bir değişken türüdür: sıfır veya bir.

Örneğin, aşağıdaki veri setine sahip olduğumuzu ve geliri tahmin etmek için yaş ve medeni durumu kullanmak istediğimizi varsayalım:

Medeni durumu bir regresyon modelinde yordayıcı değişken olarak kullanmak için onu kukla değişkene dönüştürmemiz gerekir.

Bu şu anda üç farklı değer alabilen kategorik bir değişken olduğundan (“Bekar”, “Evli” veya “Boşanmış”) k -1 = 3-1 = 2 kukla değişken oluşturmamız gerekiyor.

Bu kukla değişkeni oluşturmak için, en sık göründüğü için temel değer olarak “Tek” bırakabiliriz. İşte medeni durumu kukla değişkenlere nasıl dönüştüreceğimiz:

Bu eğitimde, R’de bu kesin veri kümesi için kukla değişkenlerin nasıl oluşturulacağı ve ardından bu kukla değişkenleri öngörücü olarak kullanarak regresyon analizinin nasıl gerçekleştirileceği konusunda adım adım bir örnek sunulmaktadır.

1. Adım: Verileri oluşturun

Öncelikle R’de veri kümesini oluşturalım:

 #create data frame
df <- data. frame (income=c(45000, 48000, 54000, 57000, 65000, 69000,
                          78000, 83000, 98000, 104000, 107000),
                 age=c(23, 25, 24, 29, 38, 36, 40, 59, 56, 64, 53),
                 status=c('Single', 'Single', 'Single', 'Single',
                          'Married', 'Single', 'Married', 'Divorced',
                          'Divorced', 'Married', 'Married'))

#view data frame
df

   income age status
1 45000 23 Single
2 48000 25 Single
3 54000 24 Single
4 57000 29 Single
5 65000 38 Married
6 69000 36 Single
7 78000 40 Married
8 83000 59 Divorced
9 98000 56 Divorced
10 104000 64 Married
11 107000 53 Married

Adım 2: Kukla Değişkenleri Oluşturun

Daha sonra, kukla değişkenleri tanımlamak için R’deki ifelse() fonksiyonunu kullanabiliriz ve ardından regresyon modelini oluşturmak için kullanmak istediğimiz son veri çerçevesini tanımlayabiliriz:

 #create dummy variables
married <- ifelse (df$status == ' Married ', 1, 0)
divorced <- ifelse (df$status == ' Divorced ', 1, 0)

#create data frame to use for regression
df_reg <- data. frame (income = df$income,
                     age = df$age,
                     married = married,
                     divorced = divorced)

#view data frame
df_reg

   income age married divorced
1 45000 23 0 0
2 48000 25 0 0
3 54000 24 0 0
4 57000 29 0 0
5 65000 38 1 0
6 69000 36 0 0
7 78000 40 1 0
8 83000 59 0 1
9 98000 56 0 1
10 104000 64 1 0
11 107000 53 1 0

Adım 3: Doğrusal Regresyon Gerçekleştirin

Son olarak, çoklu doğrusal regresyon modeline uyum sağlamak için lm() fonksiyonunu kullanabiliriz:

 #create regression model
model <- lm (income ~ age + married + divorced, data=df_reg)

#view regression model output
summary(model)

Call:
lm(formula = income ~ age + married + divorced, data = df_reg)

Residuals:
    Min 1Q Median 3Q Max 
-9707.5 -5033.8 45.3 3390.4 12245.4 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)   
(Intercept) 14276.1 10411.5 1.371 0.21266   
age 1471.7 354.4 4.152 0.00428 **
married 2479.7 9431.3 0.263 0.80018   
divorced -8397.4 12771.4 -0.658 0.53187   
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 8391 on 7 degrees of freedom
Multiple R-squared: 0.9008, Adjusted R-squared: 0.8584 
F-statistic: 21.2 on 3 and 7 DF, p-value: 0.0006865

Takılan regresyon çizgisi şu şekilde ortaya çıkıyor:

Gelir = 14.276,1 + 1.471,7*(yaş) + 2.479,7*(evli) – 8.397,4*(boşanmış)

Bir bireyin yaşına ve medeni durumuna göre tahmini gelirini bulmak için bu denklemi kullanabiliriz. Örneğin, 35 yaşında ve evli bir kişinin tahmini geliri 68.264 ABD Doları olacaktır:

Gelir = 14.276,2 + 1.471,7*(35) + 2.479,7*(1) – 8.397,4*(0) = 68.264 ABD Doları

Tablodaki regresyon katsayılarını şu şekilde yorumlayabilirsiniz:

  • Kesişme: Kesişme, sıfır yaşındaki tek bir kişinin ortalama gelirini temsil eder. Açıkçası sıfır yıla sahip olamazsınız, dolayısıyla bu özel regresyon modelinde kesişimi tek başına yorumlamanın bir anlamı yoktur.
  • Yaş: Yaştaki her yıllık artış, gelirde ortalama 1.471,70 ABD doları artışla ilişkilidir. P değeri (0,004) 0,05’ten küçük olduğundan yaş, gelirin istatistiksel olarak anlamlı bir göstergesidir.
  • Evli: Evli bir kişi, bekar bir kişiden ortalama 2.479,70 $ daha fazla kazanıyor. P değeri (0,800) 0,05’ten küçük olmadığından bu fark istatistiksel olarak anlamlı değildir.
  • Boşanmış: Boşanmış bir kişi, bekar bir kişiden ortalama 8.397,40 dolar daha az kazanıyor. P değeri (0,532) 0,05’ten küçük olmadığından bu fark istatistiksel olarak anlamlı değildir.

Her iki kukla değişken de istatistiksel olarak anlamlı olmadığından, gelire öngörücü bir değer katmadığı için medeni durumu bir yordayıcı olarak modelden çıkarabilirdik.

Yorum ekle

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