[ Home | Vorige | Volgende ]

Bijna altijd als je in een methode een continue onafhankelijke variabele (dus een continue factor) kunt gebruiken, kun je dezelfde methode ook gebruiken als die factor binair (dus nominaal met twee levels) is.

Het afgezaagde voorbeeld is weer geslacht. De schoenmaten van 9 vrouwen en 2 mannen zijn volgens §5.2:

vrouwen = c(37,41,38,36,38,38,41,40,41)
mannen = c(42,42)

Die zetten we eerst onder elkaar in een tabel:

schoenmaat = c(vrouwen, mannen)
geslacht = c(rep ("v", 9), rep ("m", 2))   # rep betekent "repeat"
tabel = data.frame (geslacht, schoenmaat)
tabel
##    geslacht schoenmaat
## 1         v         37
## 2         v         41
## 3         v         38
## 4         v         36
## 5         v         38
## 6         v         38
## 7         v         41
## 8         v         40
## 9         v         41
## 10        m         42
## 11        m         42

Met de volgende t-toets kun je zien of deze twee groepen significant van elkaar verschillen:

summary (lm (tabel$schoenmaat ~ tabel$geslacht))
## 
## Call:
## lm(formula = tabel$schoenmaat ~ tabel$geslacht)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.8889 -0.8889  0.0000  1.6111  2.1111 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       42.000      1.267  33.153 1.02e-10 ***
## tabel$geslachtv   -3.111      1.401  -2.221   0.0534 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.792 on 9 degrees of freedom
## Multiple R-squared:  0.3541, Adjusted R-squared:  0.2823 
## F-statistic: 4.934 on 1 and 9 DF,  p-value: 0.05345

Dus de invloed van geslacht op schoenmaat is bijna significant, met p = 0.05345 (deze waarde komt twee keer voor in de summary). Wat hieraan opvalt is dat deze p-waarde precies gelijk is aan die uit de t-toets van §5.2 onder de aanname dat de variantie (dus de standaardafwijking) in beide groepen gelijk is. Overigens wordt het commando, als er sprake is van een tabel, meestal als volgt geschreven:

summary (lm (schoenmaat ~ geslacht, data = tabel))
## 
## Call:
## lm(formula = schoenmaat ~ geslacht, data = tabel)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.8889 -0.8889  0.0000  1.6111  2.1111 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   42.000      1.267  33.153 1.02e-10 ***
## geslachtv     -3.111      1.401  -2.221   0.0534 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.792 on 9 degrees of freedom
## Multiple R-squared:  0.3541, Adjusted R-squared:  0.2823 
## F-statistic: 4.934 on 1 and 9 DF,  p-value: 0.05345

Dat betekent precies hetzelfde, maar is wat beknopter, vooral als er meer factoren zijn.

Waarom staat er in de summary “geslachtv”? Welnu, R snapt dat de kolom “geslacht” nominale data bevat (er staan tenslotte geen getallen in), en kent daarom standaardgetallen toe aan de levels van deze variabele, op alfabetische volgorde, beginnend bij 0: “m” = 0, “v” = 1. De intercept wordt daarmee de gemiddelde schoenmaat voor geslacht 0 (dus de mannen, dus 42.000), net als de intercept in §6.1 de gemiddelde schoenmaat van 0-jarigen was. De helling van -3.111 die in de summary staat, is hoeveel de gemiddelde schoenmaat omhoog gaat als het geslacht met 1 omhoog gaat, dus van mannelijk naar vrouwelijk (naar “geslachtv”). Dit betekent dat de gemiddelde schoenmaat van vrouwen op 42.000 - 3.111 = 38.889 geschat wordt; logisch, want dat is gewoon de gemiddelde schoenmaat van onze negen vrouwen:

mean (tabel$schoenmaat [tabel$geslacht=="v"])
## [1] 38.88889

Om te begrijpen wat de “residuals” betekenen, is het handig om de door het model geschatte waardes in de tabel te zetten, en met de hand die residuals uit te rekenen:

model = lm (schoenmaat ~ geslacht, data = tabel)
tabel$schatting = model$fitted.values
tabel$verschil = tabel$schoenmaat - tabel$schatting
tabel
##    geslacht schoenmaat schatting   verschil
## 1         v         37  38.88889 -1.8888889
## 2         v         41  38.88889  2.1111111
## 3         v         38  38.88889 -0.8888889
## 4         v         36  38.88889 -2.8888889
## 5         v         38  38.88889 -0.8888889
## 6         v         38  38.88889 -0.8888889
## 7         v         41  38.88889  2.1111111
## 8         v         40  38.88889  1.1111111
## 9         v         41  38.88889  2.1111111
## 10        m         42  42.00000  0.0000000
## 11        m         42  42.00000  0.0000000

Een mooi rapport over de significantie van de factoren vind je ook in een variantieanalyse:

anova (model)
## Analysis of Variance Table
## 
## Response: schoenmaat
##           Df Sum Sq Mean Sq F value  Pr(>F)  
## geslacht   1 15.838 15.8384  4.9343 0.05345 .
## Residuals  9 28.889  3.2099                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Alweer met dezelfde p-waarde. In het geval van één binaire factor wordt normaliter de t-toets (met gelijke varianties in de groepen) gerapporteerd, maar lineaire regressie of variantieanalyse geven hetzelfde resultaat.

[ Home | Vorige | Volgende ]