Stel dat de onderzoekers de associatie tussen de leeftijd en de bloeddruk wensen te bestuderen. Mogelijks is die associatie anders is bij mannen dan vrouwen.
De onderzoekers wensen de volgende onderzoeksvragen te beantwoorden:
We fitten een model op basis van de gemiddelde systolische bloeddruk (BPSysAve
) in functie van de leeftijd, geslacht en een interactie tussen leeftijd en geslacht voor volwassen blanke subjecten uit de NHANES studie.
library(NHANES)
bpData <- NHANES %>%
filter(
Race1 =="White" &
Age >= 18 &
!is.na(BPSysAve)
)
mBp1 <- lm(BPSysAve ~ Age*Gender, bpData)
par(mfrow = c(2,2))
plot(mBp1)
Aannames van het model zijn niet voldaan!
We fitten een model op basis van de log2 getransformeerde gemiddelde systolische bloeddruk (BPSysAve
) in functie van de leeftijd, geslacht en een interactie tussen leeftijd en geslacht.
mBp2 <- lm(BPSysAve %>% log2 ~ Age*Gender, bpData)
par(mfrow = c(2,2))
plot(mBp2)
mSd <- lm(mBp1$res %>% abs ~ mBp2$fitted)
We schatten het model nu opnieuw:
mBp3 <- lm(BPSysAve ~ Age*Gender, bpData, w = 1/mSd$fitted^2)
De residuen vertonen nog steeds heteroscedasticiteit.
data.frame(residuals = mBp3$residuals, fit = mBp3$fitted) %>%
ggplot(aes(fit,residuals)) +
geom_point()
Na het herschalen van de residuen a.d.h.v. de standard deviatie (vermenigvuldigen met vierkantswortel van het gewicht) zijn de geschaalde residuen homoscedastisch.
De parameters worden geschat door de gewogen kleinste kwadraten techniek.
\[SSE = \sum\limits_{i=1}^n w_i e_i^2\]met \(w_i = 1/\hat \sigma^2_i\).
De gewogen regressie zal dus correct rekening houden met heteroscedasticiteit.
data.frame(scaled_residuals = mBp3$residuals/mSd$fitted, fit = mBp3$fitted) %>%
ggplot(aes(fit,scaled_residuals)) +
geom_point()