9.5 Kontraste in R

Dieser Teil hilft dir, konzeptuell zu verstehen, wie die Modelle in R auf Grundlage der Kontraste einzelner Faktoren berechnet werden. Wir werden später allerdings nicht diese Methode verwenden, um Kontraste zu rechnen, sondern anhand des Pakets emmeans bzw. durch Jamovi.

Faktoren haben nicht nur Levels, sie umfassen ebenso versteckt einzelne Kontraste. Schauen wir uns hierzu nochmal unseren Faktor an:

## [1] "R" "U"

Das erste Level sind die SuS vom Land, das zweite Level die SuS aus der Stadt. Im Hintergrund verwandelt R diese Buchstaben in Kontrastgewichte:

##   U
## R 0
## U 1

SuS vom Land erhalten eine 0, SuS von der Stadt eine 1. Du siehst allerdings schon, dass diese Gewichte unsere Regel \(\sum_k \lambda_k = 0\) brechen, da ihre Summe nicht 0 ergibt. Es handelt sich hierbei um sogenannte dummy-kodierte Kontraste. Wenn wir nun ein Modell aus diesen Kontrastgewichten erstellen, erhalten wir folgendes Modell:

## 
## Call:
## lm(formula = Walc ~ address, data = student_selected)
## 
## Coefficients:
## (Intercept)     addressU  
##      2.5341      -0.3126

Dieses Modell ist allerdings nicht das gleiche, welches wir vorhin definiert hatten:

\[ \hat{Y} = 2.3778 + 0.1563 * X_1 \]

Der Grund liegt darin, dass bei diesem Beispiel andere Kontraste verwendet wurden. Wir müssen daher im nächsten Schritt die Kontraste ändern, so dass \(\sum_k \lambda_k = 0\) gilt. In R können wir Kontraste ändern, indem wir eine Matrix definieren und dem Faktor Kontraste zuweisen.

Im ersten Schritt erstellen wir eine Matrix. Eine Matrix kannst du dir wie ein Dataframe vorstellen, nur dass es keine Bezeichnung der Variablen gibt:

##      [,1]
## [1,]    1
## [2,]   -1

Diese Matrix weißen wir den Kontrasten des Faktors zu:

##   [,1]
## R    1
## U   -1

Wenn wir nun das Modell erneut aufstellen, erhalten wir die gleichen Koeffizienten:

## 
## Call:
## lm(formula = Walc ~ address, data = student_selected)
## 
## Coefficients:
## (Intercept)     address1  
##      2.3778       0.1563

Im Vergleich:

\[ \hat{Y} = 2.3778 + 0.1563 * X_1 \]

In der Praxis werden wir Kontraste selten anhand von Matrizen berechnen. Für das Verständnis, wie in R Modelle erstellt werden, ist es allerdings hilfreich zu wissen, wie R Kontraste im Hintergrund speichert. Entscheidend ist, dass du weißt, welche Levels den Faktoren zugeordnet sind, um später Kontraste definieren zu können.