In der Übung zu den Konfidenzintervallen hast du bereits den
Datensatz WeightLoss.csv
kennengelernt. Hier geht es mit
den gleichen Daten weiter. In dieser Übung stehen jedoch nicht die CI’s,
sondern die p-Werte im Mittelpunkt. Du wirst sehen, dass 95% CI’s und
p-Werte viel gemeinsam haben und auf dem selben Grundprinzip
beruhen.
Importiere den Datensatz Weightloss.csv
in RStudio und
kontrolliere, ob alles richtig funktioniert hat.
library(rio)
<- import("~/Git/stats-msc-bfh/Exercises/Data/WeightLoss.csv")
wloss str(wloss)
## 'data.frame': 22 obs. of 4 variables:
## $ ID : int 1 2 3 4 5 6 7 8 9 10 ...
## $ group: chr "Control" "Control" "Control" "Control" ...
## $ wl1 : int 4 4 4 3 5 6 6 5 5 3 ...
## $ wl3 : int 3 3 1 1 2 4 4 1 1 2 ...
Vergleich eines Mittelwertes mit einem hypothetischen Wert (One Sample t-test):
In gewissen Situationen kann es sein, dass \(H_{0}\) einen festgelegten Wert annimmt
(muss natürlich inhaltlich begründet sein). Überprüfe ob sich die
mittlere Gewichtsreduktion nach einem Monat (wl1
)
statistisch signifikant von 0 Unterscheidet (unabhängig von der
Gruppenzugehörigkeit). \(H_{0}\) wäre
dabei:
t.test()
Funktion)?t.test()
angezeigt) und
der p-Wert zusammen?<- 0
H0 <- mean(wloss$wl1)
mean_wl1 <- sd(wloss$wl1)
sd_wl1 <- length(wloss$wl1)
n_wl1 <- sd_wl1/sqrt(n_wl1)
se_wl1 <- mean_wl1/se_wl1
z <- 2* (1-pnorm(z))
p p
## [1] 0
Anmerkungen:
t.test()
Funktion)?t.test(wloss$wl1, mu = 0) # entspricht dem One Sample t-test
##
## One Sample t-test
##
## data: wloss$wl1
## t = 13.323, df = 21, p-value = 1.034e-11
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## 4.449685 6.095769
## sample estimates:
## mean of x
## 5.272727
Hier sehen wir, dass der p-Wert nicht 0 sondern 0.00000000001034
ist…
Auch hier wird der zweiseitige (two-tailed) p-Wert berechnet. Für einen
einseitigen Test müsste man explizit alternative = “less” oder
alternative = “greater” definieren, womit der p-Wert dann halb so gross
wäre:
t.test(wloss$wl1, mu = 0, alternative = "greater")
##
## One Sample t-test
##
## data: wloss$wl1
## t = 13.323, df = 21, p-value = 5.171e-12
## alternative hypothesis: true mean is greater than 0
## 95 percent confidence interval:
## 4.591715 Inf
## sample estimates:
## mean of x
## 5.272727
Die Wahrscheinlichkeit, um den beobachteten Wert (oder einen extremeren, also noch weiter weg von 0) alleine durch Zufall zu erhalten, beträgt 1.034e-11, also 0.00000000001034. Dies, wenn man annimmt, dass \(H_{0}\) der Realilität entspricht.
Anmerkung: Auch hier erhälst du das 95% CI. Dieses entspricht exakt
den Werten, welche du bei der Übung zu den Konfidenzintervallen
berechnet hast. Die t.test()
Funktion ist also eine weitere
Möglichkeit, um CI’s zu berechnen.
Das 95% CI um schliesst den von \(H_{0}\) postulierten Wert 0 deutlich nicht. Man könnte auch sagen, das 95% CI schneidet \(H_{0}\) nicht. Wenn ein 95% CI \(H_{0}\) nicht schneidet, dann ist der p-Werte sicher kleiner als 5%. Je deutlicher das CI \(H_{0}\) nicht schneidet, desto kleiner ist der p-Wert.
In der Übung zu den Konfidenzintervallen hast du das 95% CI für die Mittelwertsdifferenz der beiden Gruppen zum ersten Zeitpunkt berechnet. Nun geht es zusätzlich um den p-Wert für diese Mittelwertsdifferenz (Two sample t-Test).
wl1
(manuelle Berechnung).wl1
(mit Hilfe der
t.test()
Funktion).wl1
(manuelle Berechnung).<- mean(wloss$wl1[wloss$group == "Control"])
mean_CG <- sd(wloss$wl1[wloss$group == "Control"])
sd_CG <- length(wloss$wl1[wloss$group == "Control"])
n_CG <- sd_CG/sqrt(n_CG)
se_CG
<- mean(wloss$wl1[wloss$group == "DietEx"])
mean_IG <- sd(wloss$wl1[wloss$group == "DietEx"])
sd_IG <- length(wloss$wl1[wloss$group == "DietEx"])
n_IG <- sd_IG/sqrt(n_IG)
se_IG
<- mean_CG - mean_IG
mean_diff <- sqrt(se_CG^2+se_IG^2)
se_mean_diff
<- mean_diff/se_mean_diff
z
<- 2*pnorm(z)
p
p
## [1] 0.02688307
wl1
(mit Hilfe der
t.test()
Funktion).t.test(wl1 ~ group, data = wloss)
##
## Welch Two Sample t-test
##
## data: wl1 by group
## t = -2.2132, df = 11.94, p-value = 0.04712
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -3.37451537 -0.02548463
## sample estimates:
## mean in group Control mean in group DietEx
## 4.5 6.2
Die Mittelwertsdifferenz beträgt 1.7kg [95% CI = 0.03 bis 3.37] zugunsten der Interventionsgruppe. Der p-Wert beträgt 0.047. Das heisst unter der Annahme, dass \(H_0\) korrekt ist, ist die Wahrscheinlichkeit, dass man eine solche oder eine noch extremere Differenz zwischen den Gruppen rein durch Zufall findet, 4.7%. Diese Differenz ist bei einem Signifikanzlevel von 5% statistisch signifikant.
CI()
,
group.CI()
oder t.test()
t.test()
Funktion