Für diese Übung brauchst du den Datensatz “blood-pressure.csv”.
Codebuch:
gender: Geschlechtage: Alterheight: Körpergrösseweight: Gewichtbmi: Body-Mass-Index in kg/m²drug: Medikamenteneinnahme (no = nein,
yes = ja)bp1 und bp2: Blutdruck in mmHg vor
(bp1) und nach (bp2) dem
Beobachtungszeitraumna.omit()bp1 nach bp2 (definiert als Post minus Prä,
also bp2-bp1). Speichere die Ergebnisse in der Variable
bp_change und füge diese dem Datensatz hinzu.library("rio")
df.bp <- import("../data/blood-pressure.csv",stringsAsFactors=TRUE)
## mit stringsAsFactors=TRUE (default ist FALSE) werden character vars. als Faktoren mit ihren Levels deklariert
str(df.bp)## 'data.frame': 100 obs. of 9 variables:
## $ pid : int 1 2 3 4 5 6 7 8 9 10 ...
## $ gender: Factor w/ 2 levels "female","male": 1 NA 2 1 2 1 2 2 1 2 ...
## $ drug : Factor w/ 2 levels "no","yes": 2 1 1 2 1 1 1 2 2 2 ...
## $ age : num NA 56.5 45.9 64 58 52.9 77.8 56.9 49.9 65.3 ...
## $ weight: int 66 82 65 59 55 75 84 68 66 68 ...
## $ height: int 173 NA 165 160 174 182 169 177 169 175 ...
## $ bmi : num 22.1 NA 23.9 23 18.2 22.6 29.4 21.7 23.1 22.2 ...
## $ bp1 : int 129 122 109 126 NA 106 128 144 118 132 ...
## $ bp2 : int 123 122 105 116 139 109 133 133 117 120 ...
## pid gender drug age weight
## Min. : 1.00 female:53 no :50 Min. :28.90 Min. :53.00
## 1st Qu.: 25.75 male :46 yes :48 1st Qu.:45.40 1st Qu.:63.75
## Median : 50.50 NA's : 1 NA's: 2 Median :51.40 Median :68.50
## Mean : 50.50 Mean :51.23 Mean :69.76
## 3rd Qu.: 75.25 3rd Qu.:56.10 3rd Qu.:76.00
## Max. :100.00 Max. :79.00 Max. :91.00
## NA's :1
## height bmi bp1 bp2
## Min. :154.0 Min. :17.20 Min. : 97.0 Min. : 92.0
## 1st Qu.:164.0 1st Qu.:23.10 1st Qu.:115.5 1st Qu.:111.0
## Median :169.0 Median :24.20 Median :121.0 Median :119.0
## Mean :169.3 Mean :24.23 Mean :121.8 Mean :119.8
## 3rd Qu.:174.5 3rd Qu.:25.10 3rd Qu.:128.0 3rd Qu.:128.0
## Max. :188.0 Max. :32.50 Max. :155.0 Max. :160.0
## NA's :1 NA's :1 NA's :1 NA's :2
Um die anschliessenden Analysen etwas zu vereinfachen, verwenden wir nur Beobachtungen mit kompletten Werten. Dieses Vorgehen ist didaktisch und nicht inhaltlich begründet.
## [1] 95
Insgesamt haben 5 Personen mindestens einen fehlenden Wert; 95 vollständige Beobachtungen bleiben übrig. Eine Analyse vollständiger Fälle kann bei systematisch fehlenden Werten verzerrte Schätzungen liefern.
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -15.000 -5.500 -2.000 -2.284 2.000 16.000
Berechne zuerst eine einfache lineare Regression. Das ist ein
Regressionsmodell mit nur einer Prädiktorvariable (drug)
und einer abhängigen Variable (bp_change). Lass dir davon
eine Zusammenfassung anzeigen. Interpretiere die Koeffizienten und deren
p-Werte.
##
## Call:
## lm(formula = bp_change ~ drug, data = df.bp)
##
## Residuals:
## Min 1Q Median 3Q Max
## -9.8085 -3.5625 0.1915 2.4375 15.4375
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.5625 0.6745 0.834 0.406
## drugyes -5.7540 0.9590 -6.000 3.75e-08 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4.673 on 93 degrees of freedom
## Multiple R-squared: 0.2791, Adjusted R-squared: 0.2713
## F-statistic: 36 on 1 and 93 DF, p-value: 3.754e-08
Das Intercept entspricht der durchschnittlichen Blutdruckveränderung in der Gruppe ohne Medikament. In dieser Gruppe hat sich der Blutdruck also um 0.5625 mmHg erhöht. Der p-Wert des Tests auf einen Achsenabschnitt von 0 beträgt ungefähr 0.41. Die Daten liefern somit keine ausreichende Evidenz gegen die Nullhypothese, dass die mittlere Blutdruckveränderung in der Gruppe ohne Medikament 0 ist. \(\hat{\beta}_1\) ist die Mittelwertsdifferenz der Veränderungen. Die Blutdruckveränderung ist in der Gruppe mit Medikament kleiner, was einer grösseren Reduktion entspricht ( -5.7539894). Dieser Wert unterscheidet sich statistisch signifikant von 0.
Das einfache Modell erklärt 27.91% der beobachteten Varianz von
bp_change (Bestimmtheitsmass \(R^2\)). Mit zusätzlichen Prädiktoren
erhalten wir eine multiple lineare Regression. Das unadjustierte \(R^2\) kann beim Hinzufügen von Prädiktoren
auf denselben Beobachtungen nicht abnehmen; ein Anstieg allein belegt
daher keine bessere Vorhersage für neue Beobachtungen.
Hier noch einmal die Form eines einfachen und eines multiplen Regressionsmodells:
Einfache lineare Regression:
\[ Y_i = \beta_0 + \beta_1 x_i + \epsilon_i, i = 1, ..., n, \]
Multiple lineare Regression:
\[ Y_i = \beta_0 + \beta_1 x_{i1} + \beta_2 x_{i2}+ ... + \beta_mx_{im} + \epsilon_i, i = 1, ..., n, \]
bmi und
age hinzu. Lass dir eine Zusammenfassung dieses Modells
ausgeben.anova()drug zu interpretieren?bmi zu interpretieren?age zu interpretieren?drug im
multiplen Modell ein anderer als im einfachen Modell?Zuerst wird das entsprechende Modell angepasst:
##
## Call:
## lm(formula = bp_change ~ drug + bmi + age, data = df.bp)
##
## Residuals:
## Min 1Q Median 3Q Max
## -11.9500 -3.6027 -0.0425 2.8668 14.2940
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -5.02228 5.89225 -0.852 0.39626
## drugyes -5.33377 0.92961 -5.738 1.25e-07 ***
## bmi 0.51083 0.23182 2.204 0.03008 *
## age -0.13763 0.04769 -2.886 0.00487 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4.44 on 91 degrees of freedom
## Multiple R-squared: 0.3632, Adjusted R-squared: 0.3422
## F-statistic: 17.3 on 3 and 91 DF, p-value: 5.676e-09
\(R^2\) steigt von 0.2791 auf 0.3632; das multiple Modell erklärt damit 36.32% der beobachteten Varianz. Das adjustierte \(R^2\) berücksichtigt zusätzlich die Anzahl geschätzter Parameter und steigt hier von ungefähr 0.2713 auf 0.3422. Auch dieser Anstieg belegt allein keine bessere Vorhersage für neue Beobachtungen.
Mit einem partiellen F-Test vergleichen wir die beiden
verschachtelten Modelle, die auf denselben Beobachtungen angepasst
wurden. Die Nullhypothese lautet \(H_0:
\beta_{bmi} = \beta_{age} = 0\); der Koeffizient von
drug bleibt dabei frei.
## Analysis of Variance Table
##
## Model 1: bp_change ~ drug
## Model 2: bp_change ~ drug + bmi + age
## Res.Df RSS Df Sum of Sq F Pr(>F)
## 1 93 2031.1
## 2 91 1794.0 2 237.12 6.014 0.003523 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Die Residuenquadratsumme (RSS) ist im komplexeren Modell
rund \(2031.1 - 1794 = 237.1\) tiefer.
Der entsprechende p-Wert ist kleiner als 5% und darum ziehen wir die
Schlussfolgerung, dass das komplexe Modell die abhängige Variable
statistisch signifikant besser erklärt als das einfache Modell. Den
p-Wert könnte man auch manuell berechnen:
\(MS_{Res}^{model2} = \frac{RSS_{model2}}{df_{Res,model2}} = \frac{1794}{91} = 19.71\),
\(MS_{Res}^{model1 - model2} = \frac{RSS_{model1} - RSS_{model2}}{df_{Res,model1}-df_{Res,model2}} = \frac{237.1}{2} = 118.56\),
und \(F = \frac{MS_{Res}^{model1 - model2}}{MS_{Res}^{model2}} = \frac{118.56}{19.71} = 6.014\), mit \(df = \{2, 91\}\),
wobei \(MS\) für mittlere Quadratsumme steht. Im Nenner steht die mittlere Residuenquadratsumme des grösseren Modells, im Zähler die Abnahme der Residuenquadratsumme pro zusätzlichem Parameter.
## [1] 0.003523048
Wie ist der Regressionskoeffizient der Prädiktorvariable
drug zu interpretieren?
Für Personen mit drug = "yes" ist die geschätzte
mittlere Blutdruckveränderung um 5.3337722 mmHg kleiner als für Personen
mit drug = "no" bei gleichem BMI und Alter. Inhaltlich
heisst das, dass die Blutdruckreduktion mit Medikament
um 5.33 mmHg höher ist. Dieser Koeffizient (oder diese Differenz der
Veränderungen) unterscheidet sich statistisch signifikant von 0.
Wie ist der Regressionskoeffizient der Prädiktorvariable
bmi zu interpretieren?
Ein um 1 kg/m² höherer BMI ist bei gleichem Alter und gleicher Medikamenteneinnahme mit einer um 0.51 mmHg höheren geschätzten mittleren Blutdruckveränderung assoziiert. Inhaltlich heisst das, dass die Blutdruckveränderung mit zunehmendem BMI zunimmt (oder die Reduktion abnimmt). Dieser Koeffizient unterscheidet sich statistisch signifikant von 0.
Wie ist der Regressionskoeffizient der Prädiktorvariable
age zu interpretieren?
Ein um ein Jahr höheres Alter ist bei gleichem BMI und gleicher Medikamenteneinnahme mit einer um 0.14 mmHg niedrigeren geschätzten mittleren Blutdruckveränderung assoziiert. Inhaltlich heisst das, dass die Blutdruckveränderung mit zunehmendem Alter sinkt (oder die Reduktion steigt). Dieser Koeffizient unterscheidet sich statistisch signifikant von 0.
Die drei adjustierten Zusammenhänge sind hier grafisch dargestellt:
Was ist der p-Wert des globalen F-Tests?
Der p-Wert des globalen F-Tests steht unten im Output und beträgt ungefähr \(5.68 \times 10^{-9}\). Der Test prüft \(H_0: \beta_{drug} = \beta_{bmi} = \beta_{age} = 0\) gegen die Alternative, dass mindestens einer dieser Koeffizienten nicht 0 ist. Er vergleicht das multiple Modell mit einem Modell, das nur einen Achsenabschnitt enthält. Unter \(H_0\) erklären die Prädiktoren keine Varianz in der Population; das geschätzte \(R^2\) in der Stichprobe muss deshalb nicht 0 sein.
Warum ist der Regressionskoeffizient für drug im
multiplen Modell anders als im einfachen Modell?
Das einfache Modell schätzt den unadjustierten Unterschied der
mittleren Blutdruckveränderung zwischen den Medikamentengruppen. Das
multiple Modell schätzt diesen Unterschied bei gleichem Alter und BMI;
es wird für age und bmi
adjustiert. Sind diese Prädiktoren sowohl mit
drug als auch mit bp_change assoziiert, kann
sich der Koeffizient durch die Adjustierung ändern. Der adjustierte
Koeffizient für drug beträgt hier ungefähr −5.33 mmHg. Ob
Alter oder BMI Confounder sind und ob der Koeffizient kausal
interpretiert werden kann, hängt zusätzlich vom Studiendesign und den
kausalen Beziehungen ab; Korrelationen allein reichen dafür nicht
aus.
Schätzung der erwarteten Blutdruckveränderung für eine Person mit folgenden Merkmalen:
\[ \hat{y} = \hat{\beta_0} + \hat{\beta_1}drug + \hat{\beta_2}bmi + \hat{\beta_3}age \]
\[ = -5.02228+(-5.33377)+0.51083*29+(-0.13763)*60 = -3.8 \]
In R kann man dies wie folgt tun:
## 1
## -3.800148
Erstelle die nötigen diagnostischen Plots der multiplen linearen Regression und interpretiere diese.
Wir betrachten den Tukey-Anscombe-Plot (Residuen gegen vorhergesagte Werte) und den QQ-Plot der Residuen:
Der TA-Plot zeigt keine auffällige Veränderung der Residuenstreuung,
und der QQ-Plot zeigt keine ausgeprägten Abweichungen von der
Normalverteilung. Diese Befunde beweisen die Annahmen jedoch nicht. Die
geglättete rote Linie im TA-Plot weist eine leichte Krümmung auf, die
auf eine unzureichend modellierte Form des bedingten Mittelwerts
hindeuten könnte. Aus diesem Plot allein lässt sich nicht bestimmen, ob
age oder bmi dafür verantwortlich ist.
Quadratische Terme könnten bei entsprechender fachlicher Begründung
geprüft werden; das Modell bliebe linear in seinen Koeffizienten. Die
Unabhängigkeit der Fehler muss anhand des Studiendesigns beurteilt
werden. Zusätzlich sollten einflussreiche Beobachtungen untersucht
werden.