1 Übungsprogramm MBIOB16 WS 2014/15 Aufgabenblatt 6 - Lösungen mit R/R-Console > > > > > > # Aufgabe 35 xA <- c(2.61, 3.22, 3.65, 3.73, 3.23, 3.92, 2.15, 2.48, 2.13, 2.72) xB <- c(3.72, 2.74, 3.68, 3.95, 3.20, 3.24, 3.94, 3.81, 2.71, 4.14) nA <- length(xA); mwA <- mean(xA); sA <- sd(xA) nB <- length(xB); mwB <- mean(xB); sB <- sd(xB) print(cbind(nA, mwA, sA)); print(cbind(nB, mwB, sB)) nA mwA sA [1,] 10 2.984 0.6566616 nB mwB sB [1,] 10 3.513 0.5099248 > # a) Mittelwertvergleich mit unabhängigen Stichproben > # H0: muA = muB vs. H1: muA <> muB > t.test(xA, xB) Welch Two Sample t-test data: xA and xB t = -2.0121, df = 16.96, p-value = 0.06037 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: -1.08379609 0.02579609 sample estimates: mean of x mean of y 2.984 3.513 > > > > + + # b) Mindest-n varp <- ((nA-1)*sA^2+(nB-1)*sB^2)/(nA+nB-2); sp <- sqrt(varp) Delta <- abs(mwA-mwB); sicherheit <- 0.9 power.t.test(delta = Delta, sd = sp, sig.level = 0.05, power = sicherheit, type = "two.sample", alternative = "two.sided") Two-sample t test power calculation n delta sd sig.level power alternative = = = = = = 26.95171 0.529 0.5878894 0.05 0.9 two.sided NOTE: n is number in *each* group > > > > # c) # Überprüfung der Varianzhomogenität # H0: sigma^2_A = sigma^2_B vs. H1: ... <> ... var.test(xA, xB) F test to compare two variances data: xA and xB F = 1.6583, num df = 9, denom df = 9, p-value = 0.4628 alternative hypothesis: true ratio of variances is not equal to 1 95 percent confidence interval: 0.4119057 6.6764261 sample estimates: ratio of variances 1.65833 > # Überprüfung der Normalverteilungsannahme > # H0: Grundgesamtheit_A ist normalverteilt > shapiro.test(xA) Aufgabenblatt-6_WS2014_Loesungen_R-Console.docx 2 Shapiro-Wilk normality test data: xA W = 0.924, p-value = 0.3919 > # H0: Grundgesamtheit_B ist normalverteilt > shapiro.test(xB) Shapiro-Wilk normality test data: xB W = 0.8968, p-value = 0.2019 Ergebnisse: a) 2-seitiger Mittelwertvergleich mit dem Welch-Test: Wegen P=0.060 >= 0.05 kann H0 (Mittelwerte sind gleich) auf dem 5%-Niveau nicht abgelehnt werden. b) Delta = |mwA – mwB| = 0.529; alpha = 0.05; beta = 0.1; gepoolte Varianz = [(nA-1)sA^2 + (nB-1)sB^2]/(nA+nB-2), die Wurzel daraus ergibt die gepoolte Standardabweichung sd= 0.588; n_mindest = 27 (exakte Rechnung mit R-Prozdeur power.t.test()). c) Überprüfung der Varianzhomogenität (F-Test): Wegen P=0.463 >= 0.05 kann H0 (Übereinstimmung der Varianzen) auf dem 5%-Niveau nicht abgelehnt werden; Überprüfung der Normalverteilungsannahme (Shapiro-Wilk-Test): Labor A: P=39.19% >= 5%, kein Widerspruch zur Normalverteilungsannahme; Labor B: P=20.19% >= 5%, kein Widerspruch zur Normalverteilungsannahme (jeweils auf 5%-Niveau) # Aufgabe 36 BBS <- c(50, 54, 52, 48, 43, 39, 45, 38, 41, 39) TUG <- c(7.2, 8.0, 9.6, 10.8, 11.4, 12.2, 13.4, 14.0, 15.7, 16.8) nBBS <- length(BBS); mwBBS <- mean(BBS); sBBS <- sd(BBS) nTUG <- length(TUG); mwTUG <- mean(TUG); sTUG <- sd(TUG) print(cbind(nBBS, mwBBS, sBBS)); print(cbind(nTUG, mwTUG, sTUG)) nBBS mwBBS sBBS [1,] 10 44.9 5.820462 nTUG mwTUG sTUG [1,] 10 11.91 3.149056 > # a) Regression von BBS auf TUG > # a1) Überprüfung der Adäquatheit des linearen Modells > plot(TUG, BBS); abline(lm(BBS~TUG)) 40 45 BBS 50 > > > > > > 8 10 12 14 16 TUG > # a2) Schätzung der Regressionparameter und > # Abhängigkeitsprüfung (H0: Anstieg=0 vs. Anstieg <> 0) > mod <- lm(BBS~TUG); summary(mod) Call: Aufgabenblatt-6_WS2014_Loesungen_R-Console.docx 3 lm(formula = BBS ~ TUG) Residuals: Min 1Q Median -5.451 -2.564 1.524 3Q 2.295 Max 3.526 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 63.3277 4.3895 14.427 5.21e-07 *** TUG -1.5472 0.3575 -4.328 0.00252 ** --Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 3.377 on 8 degrees of freedom Multiple R-squared: 0.7008, Adjusted R-squared: 0.6633 F-statistic: 18.73 on 1 and 8 DF, p-value: 0.002518 > # a3) Überprüfung der Verteilung der Residuen > res <- mod$residuals; shapiro.test(res) Shapiro-Wilk normality test data: res W = 0.8824, p-value = 0.1392 qqnorm(res); qqline(res) 0 -2 -4 Sample Quantiles 2 Normal Q-Q Plot -1.5 -1.0 -0.5 0.0 0.5 1.0 1.5 Theoretical Quantiles > # a4) Bestimmtheitsmaß > B <- var(mod$fitted.values)/var(BBS); B [1] 0.7007509 > # b) Bestimmung des erwarteten BBS-Wertes zu vorgegebenem TUG=12 > TUG=12 > b0 <- coefficients(mod)[[1]]; b1 <- coefficients(mod)[[2]] > BBS12 <- b0+b1*12; print(cbind(TUG, BBS12)) TUG BBS12 [1,] 12 44.76075 > # oder > predict(mod, data.frame(TUG=c(12))) 1 44.76075 Ergebnisse: a) Das Streudiagramm zeigt, dass die Abhängigkeit der Variablen BBS von TUG durch ein lineares Regressionsmodell dargestellt werden kann. Wegen P=0.25% < 5% ist der Anstieg auf dem 5%-Niveau signifikant von null verschieden; die Gleichung der Regressionsgeraden ist: BBS_erwartet = b0 + b1*TUG = 63.33 – 1.547*TUG; Aufgabenblatt-6_WS2014_Loesungen_R-Console.docx 4 wegen P=13.92% >= 5% (Shapiro-Wilk-Test) ist die Verteilung der Residuen auf dem 5%-Niveau mit der Normalverteilungsannahme verträglich; entsprechend zeigt das Normal-QQ-Plot eine (noch) vertretbare lineare Anordnung der Datenpunkte. Das Bestimmtheitsmaß wird als Quotient der Varianz der geschätzten BBS-Werte und der Varianz der beobachteten BBS-Werte bestimmt: B=70.1%; dies bedeutet, dass 70% der Variation der BBS-Werte aus der Variation der TUG-Werte erklärt werden kann. b) Zum vorgegebenen TUG=12 erhält man mit der Regressionsfunktion den mittleren BBS-Wert BBS_erwartet=44.76. # > > > > Aufgabe 37 daten <- matrix(c(19, 30, 31, 20), ncol=2) colnames(daten) <- c("k. Verb.", "Verb.") rownames(daten) <- c("Medikament", "Placebo") daten k. Verb. Verb. Medikament 19 31 Placebo 30 20 > > # a) Vergleich von 2 Wahrscheinlichkeiten > # H0: pM = pP vs. pM <> nP > # pM, pP =Ws für k.Verbess. in Gruppe M ("Medikament") bzw. P ("Placebo") > # Vorausssetzung für Normalverteilungsapproximation: > # mM(1-mM/nM)>9, nP(1-mP/nP)>9 > # nM, nP= Anz. d. Testpersonen in Gruppe M bzw. P > # mM, mP= Anz. d. Testpersonen mit k.Verb. in Gruppe M bzw. P > prop.test(daten) 2-sample test for equality of proportions with continuity correction data: daten X-squared = 4.0016, df = 1, p-value = 0.04546 alternative hypothesis: two.sided 95 percent confidence interval: -0.431154274 -0.008845726 sample estimates: prop 1 prop 2 0.38 0.60 > # Prüfung der Voraussetzung > nM <- sum(daten[1,]); nP <- sum(daten[2,]) > mM <- daten[1,1]; mP <- daten[2,1] > mM*(1-mM/nM); mP*(1-mP/nP) # beide Ausdrücke müssen > 9 sein! [1] 11.78 [1] 12 Ergebnisse: a) Die Frage ist, ob sich die Anteile 19/50 und 30/50 der Personen mit k. Verb. in den beiden Gruppen unterscheiden. Wegen P=4.55% < 5% ist die Nullhypothese (Anteile unterscheiden sich nicht) auf dem 5%-Niveau abzulehnen. Wegen (19/50)*(1-19/50)=11.78 > 9 und (30/50)*(1-30/50) = 12 > 9 kann die R-Funktion prop.test() angewendet werden. Ein Testaufgang wird auf dem Testniveau alpha als signifikant bezeichnet, wenn die Nullhypothese abgelehnt wird (d.h. P < alpha gilt). b) Der P-Wert ist die Wahrscheinlichkeit, dass die Testgröße gleich ist der beobachteten Realisierung der Testgröße oder einen in Richtung von H1 extremeren Wert annimmt. > > + + > > # Aufgabe 38 zeit <- c(584, 552, 565, 548, 525, 394, 448, 432, 456, 411, 327, 348, 436, 396, 353) produkt <- factor(rep(1:3, each=5)) daten <- data.frame(zeit, produkt); daten zeit produkt 1 584 1 Aufgabenblatt-6_WS2014_Loesungen_R-Console.docx 5 2 3 4 5 6 7 8 9 10 11 12 13 14 15 552 565 548 525 394 448 432 456 411 327 348 436 396 353 1 1 1 1 2 2 2 2 2 3 3 3 3 3 > # a) Globaler Mittelwertvergleich > # H0: "Mittelwert der Produktreihen stimmen überein" > mod <- aov(zeit~produkt, data=daten); summary(mod) Df Sum Sq Mean Sq F value Pr(>F) produkt 2 87670 43835 43.2 3.29e-06 *** Residuals 12 12178 1015 --Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 > # b) Überprüfung der Voraussetzungen > # b1) Daten in Widerspruch zur Normalverteilungsannahme? > res <- mod$residuals; shapiro.test(res) Shapiro-Wilk normality test data: res W = 0.9686, p-value = 0.8363 > qqnorm(res); qqline(res) 20 0 -40 -20 Sample Quantiles 40 60 Normal Q-Q Plot -1 0 1 Theoretical Quantiles > # b2) Überprüfung der Varianzhomogenität > z <- abs(res); modz <- aov(z ~ produkt); summary(modz) Df Sum Sq Mean Sq F value Pr(>F) produkt 2 1026 512.7 2.342 0.138 Residuals 12 2627 218.9 > # oder > library(car); leveneTest(zeit ~ produkt, center=mean) Levene's Test for Homogeneity of Variance (center = mean) Df F value Pr(>F) group 2 2.3422 0.1384 12 Aufgabenblatt-6_WS2014_Loesungen_R-Console.docx 6 > # c) Paarweise Mittelwertvergleiche (HSD-Test) > TukeyHSD(mod); boxplot(zeit ~ produkt) Tukey multiple comparisons of means 95% family-wise confidence level Fit: aov(formula = zeit ~ produkt, data = daten) 350 400 450 500 550 $produkt diff lwr upr p adj 2-1 -126.6 -180.3507 -72.849333 0.0001110 3-1 -182.8 -236.5507 -129.049333 0.0000028 3-2 -56.2 -109.9507 -2.449333 0.0403417 1 2 3 Ergebnisse: a) Der Globaltest der ANOVA zeigt mit P=3.29E-6 < 0.05 an, dass auf 5%igem Testniveau mindestens 2 Mittelwerte verschieden sind. b) Die Verteilung der Residuen steht im Einklang mit der Normalverteilungsannahme (Shapiro-Wilk-Test, P=83.63>=5%; auch das Normal-QQ-Plot zeigt nur eine geringe Streuung um die Orientierungsgerade; die Homogenität der Varianzen kann wegen P=13.84%>=5% auf 5%igem Testniveau nicht abgelehnt werden. c) Mit dem HSD-Test von Tukey erkennt man, dass sich (auf 5%igem simultanen Testniveau) die Mittelwerte aller drei Produkte (Produkt 1: P=0.00011 < 0.05, Produkt 2: P=0.0000028 < 0.05, Produkt 3: P=0.040 < 0.05) signifikant unterscheiden. > > > > # Aufgabe 39 x <- c(0.491, 0.488, 0.493, 0.538, 0.493, 0.478, 0.506, 0.459, 0.471, 0.480) n <- length(x); xquer <- mean(x); s <- sd(x); mu0=0.5 print(cbind(n, xquer, s)) n xquer s [1,] 10 0.4897 0.02146858 > # a) Test auf Unterschreitung (t-Test) > # H0: mu >= 0.5 vs. mu < 0.5 > t.test(x, mu=0.5, sig.level=0.01, alternative="less", con.level=0.95) One Sample t-test data: x t = -1.5172, df = 9, p-value = 0.08177 alternative hypothesis: true mean is less than 0.5 95 percent confidence interval: -Inf 0.5021449 sample estimates: mean of x 0.4897 Aufgabenblatt-6_WS2014_Loesungen_R-Console.docx 7 > > > > > > # b) Mindeststichprobenumfang Delta <- 0.01; beta <- 0.1; sigma <- s; alpha <- 0.01 # Berechnung mit Faustformel q1 <- qnorm(1-alpha); q2 <- qnorm(1-beta) nn <- sigma^2/Delta^2*(q1+q2)^2 print(cbind(q1, q2, nn), digits=4) q1 q2 nn [1,] 2.326 1.282 60 > # Berechnung mit R-Funktion power.t.test() > power.t.test(delta = Delta, sd = s, sig.level = alpha, power=1-beta, + type = "one.sample", alternative = "one.sided") One-sample t test power calculation n delta sd sig.level power alternative = = = = = = 62.7369 0.01 0.02146858 0.01 0.9 one.sided Ergebnisse: a) Wegen P=8.18% >= 5% kann H0 auf 5%igem Testniveau nicht ablehnt werden. b) Eine Unterschreitung des Sollwertes 0,5 um Delta=0.01 kann mit dem 1-Stichprobet-Test auf 5%igem Testniveau mit einer Sicherheit von 90% als signifikant werden, wenn die Stichprobe zumindest 63 Einheiten umfasst (die näherungsweise gültige Faustformel liefert 60 Einheiten). Aufgabenblatt-6_WS2014_Loesungen_R-Console.docx