So erstellen sie dummy-variablen in r (schritt für schritt)
Eine Dummy-Variable ist ein Variablentyp, den wir in der Regressionsanalyse erstellen, damit wir eine kategoriale Variable als numerische Variable darstellen können, die einen von zwei Werten annimmt: Null oder Eins.
Angenommen, wir haben den folgenden Datensatz und möchten Alter und Familienstand verwenden, um das Einkommen vorherzusagen:
Um den Familienstand als Prädiktorvariable in einem Regressionsmodell zu verwenden, müssen wir ihn in eine Dummy-Variable umwandeln.
Da es sich derzeit um eine kategoriale Variable handelt, die drei verschiedene Werte annehmen kann („Single“, „Verheiratet“ oder „Geschieden“), müssen wir k -1 = 3-1 = 2 Dummy-Variablen erstellen.
Um diese Dummy-Variable zu erstellen, können wir „Single“ als Basiswert belassen, da diese am häufigsten vorkommt. So würden wir den Familienstand in Dummy-Variablen umwandeln:
Dieses Tutorial bietet ein schrittweises Beispiel für die Erstellung von Dummy-Variablen für genau diesen Datensatz in R und die anschließende Durchführung einer Regressionsanalyse unter Verwendung dieser Dummy-Variablen als Prädiktoren.
Schritt 1: Erstellen Sie die Daten
Erstellen wir zunächst den Datensatz in R:
#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
Schritt 2: Erstellen Sie die Dummy-Variablen
Als nächstes können wir die Funktion ifelse() in R verwenden, um Dummy-Variablen zu definieren und dann den endgültigen Datenrahmen definieren, den wir zum Aufbau des Regressionsmodells verwenden möchten:
#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
Schritt 3: Führen Sie eine lineare Regression durch
Schließlich können wir die Funktion lm() verwenden, um ein multiples lineares Regressionsmodell anzupassen:
#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
Die angepasste Regressionsgerade sieht wie folgt aus:
Einkommen = 14.276,1 + 1.471,7*(Alter) + 2.479,7*(verheiratet) – 8.397,4*(geschieden)
Mit dieser Gleichung können wir das geschätzte Einkommen einer Person basierend auf ihrem Alter und Familienstand ermitteln. Beispielsweise hätte eine verheiratete Person im Alter von 35 Jahren ein geschätztes Einkommen von 68.264 US-Dollar :
Einkommen = 14.276,2 + 1.471,7*(35) + 2.479,7*(1) – 8.397,4*(0) = 68.264 $
So interpretieren Sie die Regressionskoeffizienten in der Tabelle:
- Schnittpunkt: Der Schnittpunkt stellt das durchschnittliche Einkommen einer einzelnen Person im Alter von null Jahren dar. Offensichtlich kann es keine Nulljahre geben, daher macht es keinen Sinn, den Achsenabschnitt allein in diesem speziellen Regressionsmodell zu interpretieren.
- Alter: Jedes Jahr steigenden Lebensalters ist mit einem durchschnittlichen Anstieg des Einkommens um 1.471,70 US-Dollar verbunden. Da der p-Wert (0,004) kleiner als 0,05 ist, ist das Alter ein statistisch signifikanter Prädiktor für das Einkommen.
- Verheiratet: Eine verheiratete Person verdient im Durchschnitt 2.479,70 $ mehr als eine alleinstehende Person. Da der p-Wert (0,800) nicht kleiner als 0,05 ist, ist dieser Unterschied statistisch nicht signifikant.
- Geschieden: Eine geschiedene Person verdient im Durchschnitt 8.397,40 $ weniger als eine alleinstehende Person. Da der p-Wert (0,532) nicht kleiner als 0,05 ist, ist dieser Unterschied statistisch nicht signifikant.
Da beide Dummy-Variablen statistisch nicht signifikant waren, konnten wir den Familienstand als Prädiktor aus dem Modell entfernen, da er offenbar keinen prädiktiven Wert für das Einkommen bietet.