Übungsprogramm MBIOB16 WS 2014/15 Aufgabenblatt 6

Werbung
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
Herunterladen