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.