library(easystats)
library(tidyverse)
library(rstanarm)
data(mtcars)
rope2
Aufgabe
Im Datensatz mtcars
: Ist der (mittlere) Unterschied im Spritverbrauch (mpg
) zwischen den beiden Gruppen Automatik vs. Schaltgetriebe vernachlässigbar?
Wir definieren “vernachlässigbar klein” als “höchstens eine Meile”.
Prüfen Sie rechnerisch, anhand des angegebenen Datensatzes, folgende Behauptung:
Behauptung: “Der Unterschied ist vernachlässigbar klein!”
Nutzen Sie das ROPE-Konzept mit den Standardwerten im Befehl rope
aus {easystats}
.
Wählen Sie die Antwortoption, die am besten zu der obigen Behauptung passt!
Antwortoptionen:
Answerlist
- Ja, die Behauptung ist korrekt.
- Nein, die Behauptung ist falsch.
- Die Daten sind bzw. das Modell nicht konkludent; es ist keine Entscheidung über die Behauptung möglich.
- Auf Basis der bereitgestellten Informationen ist keine Antwort möglich.
Lösung
Zur ersten Orientierung erstellen wir uns, rein deskriptiv, eine Darstellung des Spritverbrauchs beider Gruppen, z.B. so:
%>%
mtcars mutate(am = factor(am)) %>%
ggplot() +
aes(x = mpg, color = am, fill = am) +
geom_density(alpha = .5)
Man sieht direkt, dass es substanzielle Unterschiede zwischen den Mittelwerten beiden Gruppen gibt. Auch wenn sich die Verteilungen überlappen, sind die Mittelwerte doch vermutlich nicht (fast) identisch. Vermutlich wird das Modell, das wir gleich berechnen, uns wenig überraschen, sondern den deskriptiven Befund widerspiegeln.
Modell berechnen:
<- stan_glm(mpg ~ am,
m1_mtcars data = mtcars,
seed = 42,
refresh = 0)
Posteriori-Verteilung betrachten:
parameters(m1_mtcars)
Parameter | Median | 95% CI | pd | Rhat | ESS | Prior
------------------------------------------------------------------------------------------
(Intercept) | 17.14 | [14.85, 19.51] | 100% | 0.999 | 3739.00 | Normal (20.09 +- 15.07)
am | 7.21 | [ 3.72, 10.70] | 99.95% | 0.999 | 3755.00 | Normal (0.00 +- 30.20)
Die Funktion spucht im Default ein PI (ETI) aus, kein HDI.
Visualisieren der Posteriori-Verteilung:
plot(parameters(m1_mtcars), show_intercept = TRUE)
Hilfe zum Plot-Befehl von parameters
Rope berechnen:
<- rope(m1_mtcars, range = c(-1, 1)) # ±1 Meile Unterschied
rope_m1 rope_m1
# Proportion of samples inside the ROPE [-1.00, 1.00]:
Parameter | inside ROPE
-------------------------
(Intercept) | 0.00 %
am | 0.00 %
Rope visualisieren mit plot(rope_m1)
.
Man sieht, dass der “Berg” - die Posteriori-Verteilung bzw. der Bereich plausibler Werte - außerhalb des Rope-Bereichs liegt.
Wir können also die Hypothese, dass der Unterschied zwischen beiden Gruppen praktisch Null ist, verwerfen.
Natürlich ist das nur ein deskriptiver Befund, wir können nichts dazu sagen, ob der Unterschied auch ein kausaler Effekt ist.
Alternative Rope-Definition: Z-Standardisieren.
Ein kleiner Effekt ist, laut Kruschke 2018, ein Unterschied, der nicht größer ist als ±0.1 SD.
Mit diesen Angaben berechnen wir das ROPE erneut:
<-
m2_mtcars %>%
mtcars mutate(mpg_z = scale(mpg)) %>%
stan_glm(mpg_z ~ am,
seed = 42,
data = ., # Der Punkt bezieht sich auf die Tabelle im vorherigen Pfeifen-Schritt
refresh = 0)
rope(m2_mtcars)
# Proportion of samples inside the ROPE [-0.10, 0.10]:
Parameter | inside ROPE
-------------------------
(Intercept) | 0.24 %
am | 0.00 %
Im Standard bezieht sich rope()
auf ein 95%-ETI, wie uns die Hilfe verrät.
Answerlist
- Falsch
- Richtig
- Falsch
- Falsch
Categories:
- rope
- bayes
- regression
- exam-22