In diesem dritten (letzten) Teil der Einführung wollen wir uns abschließend noch weitere Tests ansehen, die Sie schon aus Quanti I kennen:
Wir benutzen zwei verschiedene Datensätze (“Uebung3_Korrelationen” und “Uebung3_Rang”), diese natürlich wieder als csv-Dateien in Stud-IP finden.
Der erste Datensatz “Uebung3_Korrelationen”: Enthält Daten einer fiktiven (Beobachtungs-) Untersuchung, in der man sich für den Zusammenhang zwischen der Dauer, die jemand damit verbringt, ein Instrument zu erlernen, und der gemessenen Intelligenz interessiert. Die csv-Datei besteht aus drei Spalten. Die erste Spalte listet die Teilnehmernummer der Personen (50 Personen). Die zweite Spalte (X) listet die Stunden, die jemand im Monat mit Instrumentlernen verbringt. Die letzte Spalte (Y) enthält die gemessenen IQ-Werte.
Der zweite Datensatz “Uebung3_Rang”: Enthält Daten eines fiktiven Experiments in dem untersucht wurde, ob sich der “Kater”, der nach dem Genuss von Alkohol vs. Ecstasy ensteht, unterschiedlich auf die Depressivität der Konsumenten auswirken. Dazu wurden zwei Versuchsgruppen (jeweils 10 Leute) zufällig ausgewählt. Die eine Gruppe bekam eine vorher definierte Dosis Alkohol; die andere eine vorher definierte Dosis Ecstasy. Die erste Spalte enthält die UV Kodierung und die zweite Spalte enthält die gemessenen Depressionswerte gemessen am Morgen nach dem Rauschzustand.
Beide Datensätze einlesen über “readr”
library(readr)
KorrelDaten_Uebung3 <- read_delim("Uebung3_Korrelationen.csv", ";", escape_double = FALSE, trim_ws = TRUE)
RangDaten_Uebung3 <- read_delim("Uebung3_Rang.csv", ";", escape_double = FALSE, trim_ws = TRUE)
##
## -- Column specification --------------------------------------------------------
## cols(
## drug = col_character(),
## sundayBDI = col_double()
## )
Ein Blick in die Korrelationsdaten:
head(KorrelDaten_Uebung3, 10) # dieser Code zeigt euch die ersten (deshalb "head") 10 Zeilen des Datensatzes.
## # A tibble: 10 x 3
## TN_Nr X_Intelligenz Y_Instrumentlernen
## <dbl> <dbl> <dbl>
## 1 1 75 36
## 2 2 107 23
## 3 3 114 81
## 4 4 113 65
## 5 5 97 65
## 6 6 96 40
## 7 7 117 81
## 8 8 118 71
## 9 9 126 70
## 10 10 113 40
Ein Blick in die Rangdaten:
RangDaten_Uebung3
## # A tibble: 20 x 2
## drug sundayBDI
## <chr> <dbl>
## 1 Ecstasy 15
## 2 Ecstasy 35
## 3 Ecstasy 16
## 4 Ecstasy 18
## 5 Ecstasy 19
## 6 Ecstasy 17
## 7 Ecstasy 27
## 8 Ecstasy 16
## 9 Ecstasy 13
## 10 Ecstasy 20
## 11 Alcohol 16
## 12 Alcohol 15
## 13 Alcohol 20
## 14 Alcohol 15
## 15 Alcohol 16
## 16 Alcohol 13
## 17 Alcohol 14
## 18 Alcohol 19
## 19 Alcohol 18
## 20 Alcohol 18
Als erstes den R Commander öffnen und “KorrelDaten_Uebung3” als aktuelle Datenmatrix auswählen.
library(Rcmdr)
#library(RcmdrMisc)
Wie immer sollte man sich zunächst einen Überblick über die Daten verschaffen und dazu eine Abbildung erstellen. Überlegen Sie kurz, welche Abbildung hier angemessen ist. Was für Variablen haben wir? Auf welchen Skalenniveaus sind diese gemessen?
Sowohl Prädiktor (IQ-Wert) und Kriterium (Instrumentlernzeit) sind kontinuierliche Variablen die beide mindestens auf Intervallskalenniveau gemessen worden sind. Wie lässt sich deren Zusammenhang grafisch darstellen? Am besten mit einem Streudiagramm.
Ziel: Zusammenhang zwischen Instrumentlerndauer und IQ-Wert grafisch mit Hilfe eines Streudiagramms (“Scatterplot”) abbilden.
Vorgehen: R-Commander –> Grafiken –> Streudiagramm –> X-Variable = “X_Intelligenz” und Y-Variable = “Y_Instrumentlernen” –> Ok
Hier der entsprechende Code:
scatterplot(Y_Instrumentlernen~X_Intelligenz, regLine=FALSE, smooth=FALSE, boxplots=FALSE, data=KorrelDaten_Uebung3)
Gibt es einen Zusammenhang? Ist der Zusammenhang positiv oder negativ?
Mit Hilfe einer “Regressionslinie” (auch Kleinstequadratlinie genannt) lässt sich besser erkennen, ob es einen linearen Zusammenhang zwischen den Variablen gibt. Erstellen Sie die Grafik erneut mit R-Commander und schauen Sie unter “Optionen” nach, wo sich sich die gesuchte Einstellung verbirgt.
Hier der entsprechende Code:
scatterplot(Y_Instrumentlernen~X_Intelligenz, regLine=TRUE, smooth=FALSE, boxplots=FALSE, xlab="IQ-Werte",
ylab="Instrumentlerndauer (Stunden pro Monat)", main="Zusammenhang IQ und Instrumentlerndauer", cex=1.5, data=KorrelDaten_Uebung3)
# Wie Sie sehen können, ist der Code fast identisch mit dem Code davor. Die einzige Änderung ist, dass "regLine" von "FALSE" auf "TRUE" gesetzt wurde. "regLine" ist die Regressionslinie. "TRUE" heißt, dass sie nun angezeigt werden soll.
# Was passiert, wenn Sie auch "smooth" auf "TRUE" setzen?
Mit Hilfe der Regressionslinie ist besser erkennbar, dass es einen positiven Zusammenhang zwischen IQ und Instrumentlerndauer gibt. Je höher der IQ, umso mehr Zeit verbringt eine Person damit, ein Instrument zu erlernen.
Wie lässt sich dieser grafisch diagnostizierte Zusammenhang nun numerisch beschreiben? Wie bekommt man den Korrelationskoeffizienten? Wie kann man prüfen, ob der gemessene Zusammenhang statistisch von null verschieden ist? Welcher Korrelationskoeffizient muss hier eigentlich berechnent werden?
Ziel: Korrelationskoeffizient berechnen und den Zusammenhang auf Signifikanz prüfen.
Vorgehen: R-Commander –> Statistik –> Deskriptive Statistik –> Test auf Signifikanz der Korrelation –> beide Variablen markieren –> Bei “Typ der Korrelation” “Perasons Produkt-Moment” auswählen. Als letztes noch die Richtung der Hypothese festlegen. Wir belassen es bei “zweiseitig”. –> ok.
Hier auch der Code:
with(KorrelDaten_Uebung3, cor.test(X_Intelligenz, Y_Instrumentlernen, alternative="two.sided", method="pearson"))
##
## Pearson's product-moment correlation
##
## data: X_Intelligenz and Y_Instrumentlernen
## t = 3.2706, df = 48, p-value = 0.001991
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.1685717 0.6303378
## sample estimates:
## cor
## 0.4268891
Der Korrelationskoeffizient “r” wird als allerletztes unter “cor” gezeigt: r = 0.427.
Der Output beginnt mit dem Signifikanztest (in diesem Fall ein t-Test) der Korrelation. Dieser Test ist signifikant (p < .05). Darunter wird das 95% KI von r angezeigt (es reicht von 0.169 bis 0.630).
In einem Forschungsbericht könnte man das Ergebnis dieser Analyse wie folgt berichten:
“It was found that IQ-values and training intensity (measured in hours) were positively related: The higher the participants’ IQ-values, the longer they tended to practice with their instruments. The measured correlation coefficient was r = .427, 95% CI [0.167, 0.630], suggesting that the relation is moderate. Since the 95% CI excludes 0 as a plausible value of r, the measured correlation was statistically significant. However, the CI also shows that r was measured rather imprecisely in the present study and that values between r = .167 (small relationship) and r = .630 (strong relationship) are plausible values. Future studies with higher measurement precision (i.e., higher statistical power) need to be conducted to obtain a more precise estimation of the discovered relation.”
Hier wurde auf das KI verwiesen, um zu berichten, dass die H0 zurückgewiesen wurde. Man hätte alternativ auch das t-Test-Ergebnis bereichten können, z.B. so:
“…The measured correlation coefficient was r = .427, 95% CI [0.167, 0.630], suggesting that the relation is moderate. A t-Test confirmed that this relationship was significant, t(48) = 3.27, p < .01…”
Den Korrelationskoeffizienten haben wir über die Korrelations-Test-Option in R-Commander bekommen. Eine andere Möglichkeit ist:
R-Commander –> Deskriptive Statistik –> Korrelationsmatrix –> beide Variablen auswählen und noch ein Häkchen bei “Paarweise p-Werte” setzen.
Hier der Code:
rcorr.adjust(KorrelDaten_Uebung3[,c("X_Intelligenz","Y_Instrumentlernen")], type="pearson", use="complete")
##
## Pearson correlations:
## X_Intelligenz Y_Instrumentlernen
## X_Intelligenz 1.0000 0.4269
## Y_Instrumentlernen 0.4269 1.0000
##
## Number of observations: 50
##
## Pairwise two-sided p-values:
## X_Intelligenz Y_Instrumentlernen
## X_Intelligenz 0.002
## Y_Instrumentlernen 0.002
##
## Adjusted p-values (Holm's method)
## X_Intelligenz Y_Instrumentlernen
## X_Intelligenz 0.002
## Y_Instrumentlernen 0.002
Der erste Teil des Outputs zeigt eine 2 x 2 Tabelle in der alle Korrelationen gelistet sind. Die Einträge, bei denen “1.0000” steht, sind die Zellen, in denen jede Variable einfach mit sich selbst korreliert wurde. Das muss natürlich immer 1 sein. Der Zusammenhang zwischen Instrumentlernen und IQ ist natürlich wieder 0.427. Die Tabelle enthält die Informationen einfach mehrmals.
Darunter im Output kommt das Ergebnis des Signifikanztests. Auch hier ist die Information wieder doppelt.
Als letztes zeigt der Output noch die p-Werte in adjustierter Form (dazu später im Semester mehr).
Welche Möglichkeit, den Korrelationskoeffizienten zu bestimmen und zu testen, finden Sie besser? Warum?
Kommen wir nun zum zweiten Datensatz: Depressionswerte nach Alkohol- vs. Ecstasykonsum.
Wir nehmen an, dass die Depressionswerte lediglich auf Rangskalenniveau gemessen worden sind. Deshalb kann hier kein t-Test gerechnet werden und wir berechnen stattdessen den Wilcoxon-Rangsummen-Test. Schauen Sie in den Quanti-I-Unterlagen nach, wenn Sie nicht mehr wissen, was dabei eigentlich passiert.
Ziel: Rangdaten mittels Rangsummentest statistich analysieren.
Vorgehen: R-Commander –> als Datenmatrix jetzt “Rangdaten_Uebung3” auswählen –> Nichtparametrische Tests –> Wilcoxon-Test für unabhängige Stichproben. Die Variablen sollten bereits ausgewählt sein. Unter Optionen kann noch “Normal Approximation” ausgewählt werden wodurch der Test auf Basis der Normalverteilung berechnet wird. Diese Berechnung ist einfacher als eine Berechnung mit “Exakt”. Eigentlich sollte diese Option aber nur ausgewählt werden, wenn man einen sehr großen Datensatz hat. Ansonsten wäre “Exakt” eigentlich besser. Wir nehmen trotzdem jetzt “Normal Approximation”. –> ok.
Hier der Code:
with(RangDaten_Uebung3, tapply(sundayBDI, drug, median, na.rm=TRUE))
## Alcohol Ecstasy
## 16.0 17.5
wilcox.test(sundayBDI ~ drug, alternative='two.sided', exact=FALSE, correct=FALSE, data=RangDaten_Uebung3)
##
## Wilcoxon rank sum test
##
## data: sundayBDI by drug
## W = 35.5, p-value = 0.2692
## alternative hypothesis: true location shift is not equal to 0
Der erste Teil des Outputs zeigt die Mediane der beiden beiden Gruppen. Beide sind sehr ähnlich.
Danach folgt der Outpout des Rangtests. “W” ist die Teststatistik. Der p-Wert zeigt, dass die H0 beibehalten werden muss (p = .27).
Wie kann man eigentlich Rangdaten grafisch veranschaulichen? Mittelwerte sind bei Rangdaten nicht sinnvoll aber Mediane kann man sich anschauen. Eine nette Form der Abbildung sind sogenannte Box-Plots.
Ziel: Erstellen eines Box-Plots mit R-Commander
Vorgehen: R-Commander –> Grafiken –> Boxplot –> Grafik für die Gruppen –> Optionen können so belassen werden –> ok.
Hier der Code:
Boxplot(sundayBDI~drug, data=RangDaten_Uebung3, id=list(method="y"))
## Warning in Boxplot.default(mf[[response]], x, id = list(method = id.method, :
## NAs durch Umwandlung erzeugt
## [1] "2" "7"
Die horizontalen schwarzen Linien sind die Mediane der Werte. Die Boxen innerhalb derer diese Linien liegen sind der Interquartilsabstand. Die “Fehlerbalken” sind keine Fehlerbalken sondern Markierungen für Minimum und Maximum. Punkte mit Zahlen sind “statistsiche Ausreißer” (auch dazu später im Semester mehr). Das Programm hat Person Nr. 2 und Person Nr. 7 als solche statistsichen Ausreißer identifiziert.
Als letztes noch ein Chi-Quadrat-Test mit dem Therapieabbruch-Beispiel, das sie schon aus Quanti I kennen. Eine genauere Erläuterung finden Sie auch in dem PDF zu dieser Einführungssitzung.
library(abind, pos=23)
.Table <- matrix(c(2,8,11,38,32,33), 2, 3, byrow=TRUE)
dimnames(.Table) <- list("Abbruch"=c("Ja", "Nein"), "Ausbildung"=c("PPT", "MPT", "P"))
.Table # Counts
## Ausbildung
## Abbruch PPT MPT P
## Ja 2 8 11
## Nein 38 32 33
rowPercents(.Table) # Row Percentages
## Ausbildung
## Abbruch PPT MPT P Total Count
## Ja 9.5 38.1 52.4 100 21
## Nein 36.9 31.1 32.0 100 103
.Test <- chisq.test(.Table, correct=FALSE)
.Test
##
## Pearson's Chi-squared test
##
## data: .Table
## X-squared = 6.3519, df = 2, p-value = 0.04175
remove(.Test)
remove(.Table)
Interpretieren Sie das Ergebnis.