Es gab drei Dosis-Bedingungen. Außerdem wurde noch variiert, in welcher Weise das Vitamin C verabreicht wurde (Orangensaft vs. Askorbinsäure [wahrscheinlich aufgelöst in Wasser]). Gemessen (Kriterium bzw. AV) wurde die Länge der Odontoblasten (die Zellen, die für Zahnlänge verantwortlich sind).
Letzte Woche hatten Sie bereits den Einfluss des Faktors “Dosierung” geprüft. Heute können Sie den Einfluss des Faktors “Supplement” prüfen, also die Art, wie das Vitamin C verabreicht wurde (Orangensaft versus Ascorbinsäure).
Testen Sie die folgenden Hypothesen:
Hypothese 1: Die Art der Dosierung hat einen Effekt auf die Odontoblastenlänge.
Hypothese 2: Orangensaft ist “effektiver” als reine Ascorbinsäure.
Beginnen Sie die statistische Auswertung mit einer grafischen Veranschaulichung der Daten.
Erstellen Sie aussagekräftige Abbildungen.
Testen Sie die Hypothesen mit angemessenen Verfahren.
Zusatz:
Erstellen Sie ein lineares Modell mit Kriterium Odontoblastenlänge und Prädiktr Supplement. Vergleichen Sie den Output mit dem der Varianzanalyse und dem der Post-hoc Tests für Mittelwertsunterschiede.
data("ToothGrowth") # "Einlesen" der Daten (hier besser gesagt "aktivieren" der Daten)
head(ToothGrowth) # Anzeige der ersten 10 Einträge
## len supp dose
## 1 4.2 VC 0.5
## 2 11.5 VC 0.5
## 3 7.3 VC 0.5
## 4 5.8 VC 0.5
## 5 6.4 VC 0.5
## 6 10.0 VC 0.5
library(Rcmdr)
with(ToothGrowth, plotMeans(len, supp, error.bars="conf.int", level=0.95, xlab="Dosierung",
ylab="Odontoblastenlänge", main="Mittlere Odontoblastenlänge (Fehler = 95% KI)", connect=FALSE))
Boxplot(len~supp, data=ToothGrowth, id=list(method="y"))
stripchart(len ~ supp, vertical=TRUE, method="jitter", jitter = 0.1, ylab="Odontoblastenlänge",
xlab = "Suppelement", col = "blue", data=ToothGrowth)
densityPlot(len~supp, data=ToothGrowth, bw=bw.SJ, adjust=1, kernel=dnorm, method="adaptive",
xlab="Supplement", ylab="Odontoblastenlänge", main = "Verteilung der Odontoblastenlängen")
Der nötige Test heißt “Levene-Test”. ACHTUNG: der R-Commander lädt dazu einige Pakete.
library(mvtnorm, pos=17)
library(survival, pos=17)
library(MASS, pos=17)
library(TH.data, pos=17)
##
## Attaching package: 'TH.data'
## The following object is masked from 'package:MASS':
##
## geyser
library(multcomp, pos=17)
library(abind, pos=22)
Tapply(len ~ supp, var, na.action=na.omit, data=ToothGrowth) # variances by group
## OJ VC
## 43.63344 68.32723
leveneTest(len ~ supp, data=ToothGrowth, center="mean") # Test auf Var-Homog.
## Levene's Test for Homogeneity of Variance (center = "mean")
## Df F value Pr(>F)
## group 1 1.0973 0.2992
## 58
Der Levene-Test ist nicht signifikant. Das Kriterium der Varianzhomogenität kann als erfüllt betrachtet werden.
Zur Prüfung der Hypothese, dass Supplement einen Einfluss hat.
Im R-Commander-Menü dazu kann bereits der paarweise Vergleich der Mittelwerte aktiviert werden (Post-hoc-Tests). Hier aber zunächst nur der Output der Code und Output der ANOVA.
AnovaModel.1 <- aov(len ~ supp, data=ToothGrowth) # Erstellt das ANOVA-Modell
summary(AnovaModel.1) # Gibt den Output aus
## Df Sum Sq Mean Sq F value Pr(>F)
## supp 1 205 205.35 3.668 0.0604 .
## Residuals 58 3247 55.98
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Die einfaktorielle ANOVA ist nicht signifikant, \(F(1,58)~= 3.668\), \(p~= .0604\). Die Hypothese, Art der Verabreichung mit einer veränderten Odontoblastenlänge einhergeht, kann nicht als bestätigt betrachtet werden.
Die vom R-Commander genutzte Funktion der Einfaktoriellen ANOVA liefert keine Effektgrößen. Ein alternatives Paket, das das tut, ist das Paket “afex()”. Das müssen Sie ggf. installieren. Um damit eine ANOVA durchzuführen muss allerdings eine ID-Spalte in den Daten sein, die die einzelnen Beobachtungen kennzeichnet. In unserem Fall müssen wir diese zunächst den Daten hinzufügen.
t.test(len~supp, alternative='greater', conf.level=.95, var.equal=TRUE, data=ToothGrowth)
##
## Two Sample t-test
##
## data: len by supp
## t = 1.9153, df = 58, p-value = 0.0302
## alternative hypothesis: true difference in means is greater than 0
## 95 percent confidence interval:
## 0.4708204 Inf
## sample estimates:
## mean in group OJ mean in group VC
## 20.66333 16.96333
Die Hypothese kann angenommen werden, \(t(58)~= 1.92\), \(p~= .03\).
Anpassung eines linearen Modells (Regressionsanalyse)
LinearModel.2 <- lm(len ~ supp, data=ToothGrowth)
summary(LinearModel.2)
##
## Call:
## lm(formula = len ~ supp, data = ToothGrowth)
##
## Residuals:
## Min 1Q Median 3Q Max
## -12.7633 -5.7633 0.4367 5.5867 16.9367
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 20.663 1.366 15.127 <2e-16 ***
## suppVC -3.700 1.932 -1.915 0.0604 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 7.482 on 58 degrees of freedom
## Multiple R-squared: 0.05948, Adjusted R-squared: 0.04327
## F-statistic: 3.668 on 1 and 58 DF, p-value: 0.06039
man sieht hier, dass der T-Test oben dem Test des Regressionskoeffizienten entspricht.