53  Lösungen Konfidenzintervalle (2 Stichproben)

Hier finden Sie die Lösungen zu den Übungsaufgaben von Abschnitt 44.9.

Die hier vorgestellten Lösungen stellen immer nur eine mögliche Vorgehensweisen dar und sind sicherlich nicht der Weisheit letzter Schluss. In R führen viele Wege nach Rom, und wenn Sie mit anderem Code zu den richtigen Ergebnissen kommen, dann ist das völlig in Ordnung.

53.1 Lösung zur Aufgabe 44.9.1

a) Erstellen Sie ein Datenframe mit den Variablen vorher und nachher und übertragen Sie die Daten.
df <- data.frame(
  vorher = c(147, 163, 121, 205, 132, 190, 176, 147),
  nachher = c(150, 171, 132, 208, 141, 184, 182, 145)
)
b) Berechnen Sie den Mittelwert der monatlichen Umsätze vor und nach der Kampagne. Sind die Mittelwerte unterschiedlich? Hat die Kampagne den Absatz des Arzneimittels erhöht?
mean(df$vorher)
[1] 160.125
mean(df$nachher)
[1] 164.125

Der Mittelwert ist nach der Kampagne höher.

c) Berechnen Sie die Konfidenzintervalle für den durchschnittlichen Unterschied mit \(\alpha = 0,05\) und \(\alpha = 0,01\).
# t-Tests durchführen
a5 <- t.test (df$vorher, df$nachher, paired=TRUE, conf.level=0.95)  
a1 <- t.test (df$vorher, df$nachher, paired=TRUE, conf.level=0.99)  

# nur Konfidenzintervalle anzeigen
as.numeric(a5$conf.int)
[1] -8.8129585  0.8129585
as.numeric(a1$conf.int)
[1] -11.122852   3.122852

Beide Intervalle “reißen” die \(0\). Das bedeutet, dass der wahre Unterschied auch 0 sein könnte.

d) Können wir dieselbe Schlussfolgerung ziehen, wenn wir die Verkäufe nach der Kampagne der beiden letzten Apotheken ändern und \(190\) statt \(182\) und \(165\) statt \(145\) angeben? Was passiert mit den Konfidenzintervallen?
# Daten neu eingeben
df <- data.frame(
  vorher = c(147, 163, 121, 205, 132, 190, 176, 147),
  nachher = c(150, 171, 132, 208, 141, 184, 190, 165)
)
# t-Tests durchführen
a5 <- t.test (df$vorher, df$nachher, paired=TRUE, conf.level=0.95)  
a1 <- t.test (df$vorher, df$nachher, paired=TRUE, conf.level=0.99)  

# nur Konfidenzintervalle anzeigen
as.numeric(a5$conf.int)
[1] -13.740228  -1.259772
as.numeric(a1$conf.int)
[1] -16.735113   1.735113

Das 95%-Intervall lässt einen Unterschied vermuten. Das 99%-Intervall hingegen enthält immer noch die 0.

53.2 Lösung zur Aufgabe 44.9.2

a) Übertragen Sie die Daten in ein Datenframe mit den Variablen Hof1 und Hof2.
# Daten übertragen
Hof1 <- data.frame(Fett = c(0.34, 0.34,
          0.32, 0.35,
          0.33, 0.33,
          0.32, 0.32,
          0.33, 0.30,
          0.31, 0.32))
Hof1$Hof <- "Hof 1"     

Hof2 <- data.frame(Fett = c(0.28, 0.29,
          0.30, 0.32,
          0.32, 0.31,
          0.29, 0.29,
          0.31, 0.32,
          0.29, 0.31,
          0.33, 0.32,
          0.32, 0.33))
Hof2$Hof <- "Hof 2"     

milch <- rbind(Hof1, Hof2)
milch$Hof <- factor(milch$Hof)
b) Berechnen Sie das 95%-Konfidenzintervall für den durchschnittlichen Fettunterschied in der Milch von Hof1 und Hof2.
# Daten übertragen
# zuvor auf gleiche Varainz prüfen
var.test(Hof1$Fett, Hof2$Fett)$p.value
[1] 0.626044

Der Test ist nicht signifikant, die Varianz ist in beiden Höfen gleich.

# t.Test
d <- t.test(Fett ~ Hof, data=milch, var.equal=TRUE)
# Konfidenzintervall anzeigen
as.numeric(d$conf.int)
[1] 0.00584816 0.02956851
c) Kann man daraus schließen, dass der Unterschied zwischen den Milchfettmittelwerten der Betriebe signifikant ist? Welcher Betrieb hat Milch mit mehr Fett? Wie viel mehr Fett hat die Milch von Hof1 als die Milch von Hof2?
d <- t.test(Fett ~ Hof, data=milch, var.equal=TRUE)  
d

    Two Sample t-test

data:  Fett by Hof
t = 3.0691, df = 26, p-value = 0.004973
alternative hypothesis: true difference in means between group Hof 1 and group Hof 2 is not equal to 0
95 percent confidence interval:
 0.00584816 0.02956851
sample estimates:
mean in group Hof 1 mean in group Hof 2 
          0.3258333           0.3081250 
# Unterschied
d$estimate[1] - d$estimate[2]
mean in group Hof 1 
         0.01770833 

Hof1 hat 0.0177083 mehr Fett in der Milch als Hof2. Da das Intervall die 0 nicht mit einschließt, können wir von einem Signifikanten Unterschied ausgehen.

53.3 Lösung zur Aufgabe 44.9.3

a) Übertragen Sie die Daten in ein Datenframe mit den Variablen Antwort und Geschlecht.
# Daten übertragen
df <- data.frame(
  Antwort = c("nein", "ja", "nein", "nein", "nein", "ja", "nein", 
              "ja", "ja", "ja", "ja", "nein", "ja", "nein", "ja", 
              "nein", "nein",  "nein", "ja", "ja", "ja", "nein", 
              "nein", "ja", "nein", "nein", "ja", "ja", "nein", 
              "nein", "ja", "nein", "ja", "nein"),
  Geschlecht = c("m", "w", "w", "m", "m", "m", "w", "w", "w", "w", 
                 "m", "m", "w", "m", "w", "m", "m", "w", "m", "w", 
                 "w", "w", "m", "w", "m", "m", "w", "w", "m", "m", 
                 "w", "w", "w", "m")
)
b) Berechnen Sie das Konfidenzintervall für den Unterschied zwischen den Anteilen der Frauen und Männern, die die Bibliothek mindestens einmal pro Woche nutzen.
freq <- table(df)
prop.test(c(freq[["ja","m"]], freq[["ja","w"]]), 
          c(sum(freq[,"m"]), sum(freq[,"w"])), 
          alternative="two.sided", conf.level=0.95)

    2-sample test for equality of proportions with continuity correction

data:  c(freq[["ja", "m"]], freq[["ja", "w"]]) out of c(sum(freq[, "m"]), sum(freq[, "w"]))
X-squared = 7.6937, df = 1, p-value = 0.005541
alternative hypothesis: two.sided
95 percent confidence interval:
 -0.8755141 -0.1939304
sample estimates:
   prop 1    prop 2 
0.1875000 0.7222222 

Das Konfidenzintervall schließt die 0 nicht mit ein. Wir können von einem signifikanten Unterschied ausgehen.

53.4 Lösung zur Aufgabe 44.9.4

df <- data.frame(course = c(rep("bestanden", 55), rep("durchgefallen", 25),
                            rep("bestanden", 32), rep("durchgefallen", 58)),
                 time = c(rep("morgens", 80), rep("abends", 90))
                 
                 )
Gibt es signifikante Unterschiede zwischen den Prozentsätzen der Studierenden, die am Vormittag und am Nachmittag bestanden haben? Kann man daraus schließen, dass der Stundenplan die Ursache für diese Unterschiede ist?
freq <- table(df)
prop.test(c(freq[["bestanden","morgens"]], freq[["bestanden","abends"]]), 
          c(sum(freq[,"morgens"]), sum(freq[,"abends"])), 
          alternative="two.sided", conf.level=0.95)

    2-sample test for equality of proportions with continuity correction

data:  c(freq[["bestanden", "morgens"]], freq[["bestanden", "abends"]]) out of c(sum(freq[, "morgens"]), sum(freq[, "abends"]))
X-squared = 17.372, df = 1, p-value = 3.072e-05
alternative hypothesis: two.sided
95 percent confidence interval:
 0.1783764 0.4855125
sample estimates:
   prop 1    prop 2 
0.6875000 0.3555556 

Das Konfidenzintervall enthält nicht die 0. Wir können also von einem signifikanten Unterschied ausgehen.

53.5 Lösung zur Aufgabe 44.9.5

df <- data.frame(vorher = c(182, 232, 191, 200, 148, 249, 276, 213, 241, 280, 262),
                 nachher = c(198, 210, 194, 220, 138, 220, 219, 161, 210, 213, 226)
                 )
a) Berechnen Sie das 95%-Konfidenzintervall für den durchschnittlichen Unterschied der Cholesterinwerte vor und nach den körperlichen Übungen.
t.test(df$vorher, df$nachher, paired=TRUE, conf.level=0.95)

    Paired t-test

data:  df$vorher and df$nachher
t = 2.756, df = 10, p-value = 0.02027
alternative hypothesis: true mean difference is not equal to 0
95 percent confidence interval:
  4.614342 43.567477
sample estimates:
mean difference 
       24.09091 
b) Berechnen Sie das 99%-Konfidenzintervall für den durchschnittlichen Unterschied der Cholesterinwerte vor und nach den körperlichen Übungen
t.test(df$vorher, df$nachher, paired=TRUE, conf.level=0.99)

    Paired t-test

data:  df$vorher and df$nachher
t = 2.756, df = 10, p-value = 0.02027
alternative hypothesis: true mean difference is not equal to 0
99 percent confidence interval:
 -3.61228 51.79410
sample estimates:
mean difference 
       24.09091 
c) Auf Grundlage der zuvor berechneten Intervalle, welchen Schluss bezüglich des Einflusses von körperlichen Aktivitäten auf den Cholesterinspiegel können Sie ziehen?
d <- t.test(df$vorher, df$nachher, paired=TRUE, conf.level=0.99)
as.numeric(d$conf.int)
[1] -3.61228 51.79410

Das 99% Intervall enthält die 0. Auf diesem Niveau können wir den Unterschied nicht bestätigen.

53.6 Lösung zur Aufgabe 44.9.6

df <- data.frame(satisf = c(rep("zufrieden", 140), rep("unzufrieden", 60),
                            rep("zufrieden", 180), rep("unzufrieden", 120)),
                 haus = c(rep("Haus 1", 200), rep("Haus 2", 300))
                 )
a) Berechnen Sie das 95%-Konfidenzintervall für den Anteilsunterschied an zufriedenen Patienten in beiden Häusern.
freq <- table(df)
prop.test(c(freq[["zufrieden","Haus 1"]], freq[["zufrieden","Haus 2"]]), 
          c(sum(freq[,"Haus 1"]), sum(freq[,"Haus 2"])), 
          alternative="two.sided", conf.level=0.95)

    2-sample test for equality of proportions with continuity correction

data:  c(freq[["zufrieden", "Haus 1"]], freq[["zufrieden", "Haus 2"]]) out of c(sum(freq[, "Haus 1"]), sum(freq[, "Haus 2"]))
X-squared = 4.7833, df = 1, p-value = 0.02874
alternative hypothesis: two.sided
95 percent confidence interval:
 0.01153209 0.18846791
sample estimates:
prop 1 prop 2 
   0.7    0.6 
b) Wenn \(\alpha = 0,01\) ist, können dann Rückschlüsse gezogen werden, ob der Unterschied der Anteile zufriedener Patienten signifikant ist?
prop.test(c(freq[["zufrieden","Haus 1"]], freq[["zufrieden","Haus 2"]]), 
          c(sum(freq[,"Haus 1"]), sum(freq[,"Haus 2"])), 
          alternative="two.sided", conf.level=0.99)

    2-sample test for equality of proportions with continuity correction

data:  c(freq[["zufrieden", "Haus 1"]], freq[["zufrieden", "Haus 2"]]) out of c(sum(freq[, "Haus 1"]), sum(freq[, "Haus 2"]))
X-squared = 4.7833, df = 1, p-value = 0.02874
alternative hypothesis: two.sided
99 percent confidence interval:
 -0.01495727  0.21495727
sample estimates:
prop 1 prop 2 
   0.7    0.6 

Wenn \(\alpha = 0,01\) verwendet wird, enthält das Intervall die 0. Auf diesem Niveau können wir keinen signifikanten Unterschied zeigen.

53.7 Lösung zur Aufgabe 44.9.7

# lade Datensatz
load(url("https://www.produnis.de/R/data/neonates.RData"))
a) Berechnen Sie das 95%-Konfidenzintervall für den durchscnnittlichen Unterschied des Geburtsgewichts zwischen Kindern von Raucherinnen und Nichtraucherinnen. Wie groß ist der durchschnittliche Gewichtsunterschied?
# subsets
k1 <- subset(neonates, smoke=="Yes")
k2 <- subset(neonates, smoke=="No")

# t-Test
d <- t.test(k1$weight, k2$weight, conf.level = 0.95)

# Konfidenzgrenzen
as.numeric(d$conf.int)
[1] -0.3714943 -0.2179094
# Unterschied
d$estimate[2] - d$estimate[1]
mean of y 
0.2947018 

Der Unterschied beträg 0.29kg.

b) Berücksichtigen Sie nur die Daten der Mütter, die während der Schwangerschaft nicht geraucht haben. Berechnen Sie das 95%-Konfidenzintervall für den durchscnnittlichen Unterschied des Geburtsgewichts zwischen Kindern von Müttern, die vor der Schwangerschaft geraucht haben, und den Nichtraucherinnen.
# subsets
k  <- subset(neonates, smoke=="No")
k1 <- subset(k, smoke.before=="Yes")
k2 <- subset(k, smoke.before=="No")

# t-Test
d <- t.test(k1$weight, k2$weight, conf.level = 0.95)

# Konfidenzgrenzen
as.numeric(d$conf.int)
[1] -0.23226491  0.03252437
# Unterschied
d$estimate[2] - d$estimate[1]
 mean of y 
0.09987027 

Das Konfidenzintervall enthält die 0, das heisst, wir können nicht von einem signifikanten Unterschied ausgehen.

c) Berechnen Sie das 95%-Konfidenzintervall für den durchschnittlichen Unterschied von APGAR-1-Werten und APGAR-5-Werten. Wie entwickeln sich Neugeborene in den ersten 5 Minuten nach der Geburt?
# t-Test
d <- t.test(neonates$apgar1, neonates$apgar5, conf.level = 0.95)

# Konfidenzgrenzen
as.numeric(d$conf.int)
[1] -0.8093862 -0.3593638
# Unterschied
d$estimate[2] - d$estimate[1]
mean of y 
 0.584375 

Nach 5 Minuten haben die Neugeborenen einen im Schnitt 0,58 Punkte höheren APGAR-Wert.

d) Wenn Neugeborene mit einem APGAR-1-Wert \(\leq3\) in einem kritischen Zustand sind, berechnen Sie das 90%-Konfidenzintervall für den Unterschied der Anteile von Neugeborenen in kritischem Zustand zwischen Müttern, die während der Schwangerschaft geraucht haben und den Nichtraucherinnen.
# neue Variable "kritisch"
neonates$kritisch <- "normal"
# nur solche mit APGAR<4 sind kritisch
neonates$kritisch[neonates$apgar1<4] <- "kritisch" 

freq <- table(neonates$kritisch, neonates$smoke)

d <- prop.test(c(freq[["kritisch","No"]], freq[["kritisch","Yes"]]), 
               c(sum(freq[,"No"]), sum(freq[,"Yes"])), 
               alternative="two.sided", conf.level=0.90)



# Konfidenzgrenzen
as.numeric(d$conf.int)
[1] -0.22157738 -0.07478626
# Unterschied
d$estimate[2] - d$estimate[1]
   prop 2 
0.1481818 

Bei Raucherinnen sind durchschnittlich 15% mehr Neugeborene im kritischen Zustand zu finden als bei Nichtraucherinnen.

e) Hat das Alter der Mutter einen signifikanten Einfluss auf den Anteil an Neugeborenen in kritischem Zustand?
# neue Variable "kritisch"
neonates$kritisch <- "normal"
# nur solche mit APGAR<4 sind kritisch
neonates$kritisch[neonates$apgar1<4] <- "kritisch" 

freq <- table(neonates$kritisch, neonates$age)

d <- prop.test(c(freq[["kritisch","greater than 20"]], 
                 freq[["kritisch","less than 20"]]), 
               c(sum(freq[,"greater than 20"]), 
                 sum(freq[,"less than 20"])), 
               alternative="two.sided", conf.level=0.95)



# Konfidenzgrenzen
as.numeric(d$conf.int)
[1] -0.151048570  0.006238353
# Unterschied
d$estimate[2] - d$estimate[1]
    prop 2 
0.07240511 

Das 95% Intervall enthält die 0. Wir können keinen signifikanten Unterschied feststellen.