penguins-rope

regression
bayes
rope
Published

December 10, 2024

1 Aufgabe

Wir untersuchen folgende Forschungsfrage:

Unterscheiden sich die Körpermasse von Pinguinen der Arten Adelie und Gentoo signifikant voneinander?

Hinweise:

  • Dabei verstehen wir hier unter “signifikant” einen Unterschied von mindestens 500g (in Bezug auf die Grenzen eines 89%-HDI).
  • Weniger als der genannte Wert würde forschungsinhaltlich ein vernachlässigbar geringer Wert bedeuten.
  • Beachten Sie die üblichen Hinweise des Datenwerks.

Achtung: Viele Forscher verstehen unter “signifikant” etwas ganz anderes. (Interessanterweise sind sich aber einige Forscher nicht sicher, was sie darunter verstehen. Fragen Sie sie doch mal.)

Wir berechnen folgendes Modell zur Beantwortung der Forschungsfrage:

library(rstanarm)   # Bayes-Modelle
library(tidyverse)
library(easystats)

penguins_url <- "https://vincentarelbundock.github.io/Rdatasets/csv/palmerpenguins/penguins.csv"

penguins <- read.csv(penguins_url)
m <- stan_glm(body_mass_g ~ species, 
              data = penguins, 
              refresh = 0,  # unterdrückt Ausgabe der Posteriori-Stichproben
              seed = 42  # zur Reproduzierbarkeit
)

Dann betrachten wir die Parameter des Modells:

m_params <- parameters(m, ci_method = "HDI", ci =.89)
m_params
Parameter Median CI CI_low CI_high pd Rhat ESS Prior_Distribution Prior_Location Prior_Scale
(Intercept) 3700.6231 0.89 3638.81696 3757.2271 1.00000 0.9993739 4057.018 normal 4201.754 2004.886
speciesChinstrap 32.4854 0.89 -81.93567 140.5625 0.68525 0.9999821 4281.545 normal 0.000 5015.916
speciesGentoo 1374.4328 0.89 1283.91409 1469.9053 1.00000 1.0002181 4453.515 normal 0.000 4171.626













2 Lösung

Wie man in der Tabelle sieht, ist der Unterschied der Körpermasse von Pinguinen der Arten Adelie und Gentoo signifikant. Der Unterschied beträgt mind. 1283.9140872 g, laut dem Modell und dem 89%-HDI.

Das sieht man auch im Diagramm:

m_params |> plot(show_intercept = TRUE)

Und noch etwas deutlicher in diesem Diagramm:

m |> hdi(ci = .89, parameters = "speciesGentoo") |> 
  plot() +
  annotate("rect", xmin = -500, xmax = 500, ymin = 0, ymax = Inf, alpha = 0.5, fill = "pink") +
  labs(subtitle = "ROPE shown in pink color")

Die Rope-Statistiken sagen klar, dass wir die ROPE-Hypothese ablehnen können für 500g Unterschied:

m |> rope(range = c(-500, 500))
Parameter CI ROPE_low ROPE_high ROPE_Percentage Effects Component
(Intercept) 0.95 -500 500 0 fixed conditional
speciesChinstrap 0.95 -500 500 1 fixed conditional
speciesGentoo 0.95 -500 500 0 fixed conditional

Das sieht man auch im ROPE-Diagramm gut (ROPE als blaues Rechteck dargestellt):

m |> rope(range = c(-500, 500)) |> plot()