Data Creator โ€” Hilfe & Dokumentation
Was ist der Data Creator? โ–ธ

Der Data Creator erzeugt parametrische Beispieldatensรคtze fรผr Lehr- und Simulationszwecke. Du legst das Design fest (Between- und/oder Within-Faktoren, Likelihood, Clusterstruktur) und gibst direkt die theoretischen Mittelwerte ein โ€” der Code รผbernimmt die Datenerzeugung.

Ergebnis: CSV-Export (Wide & Long), vollstรคndiger R-Code (mit faux::sim_design, glmmTMB, Power-Simulation), und eine interaktive Vorschau.

Der Data Creator ist kein Analysewerkzeug โ€” er hilft beim Studiendesign, Poweranalyse und Prior Predictive Checking.

Between vs. Within Faktoren โ–ธ

Between-Subject-Faktor: Jede Versuchsperson gehรถrt zu genau einer Gruppe (z.B. Kontroll- vs. Experimentalgruppe). Varianz entsteht zwischen Personen.

Within-Subject-Faktor: Dieselbe Person wird mehrfach gemessen (z.B. Zeitpunkte t1, t2, t3). Messwiederholung erzeugt Korrelation zwischen den Levels. Der Data Creator unterstรผtzt aktuell einen Within-Faktor.

Die Kombination aus beiden heiรŸt Mixed Design (= Split-Plot). In brms: bf(Y ~ gruppe * time + (1 | id))

Levelnames: Kommagetrennt eingeben, z.B. A, B, C. Leerzeichen werden automatisch in Unterstriche umgewandelt.

Likelihood & Modellskala (ฮท) โ–ธ

Alle Mittelwerte werden auf der Modellskala ฮท (linearer Prรคdiktor) eingegeben:

  • GauรŸ: ฮท = E[Y] direkt (Identity-Link)
  • Poisson / NegBin: ฮท = log(E[Y]) โ†’ E[Y] = exp(ฮท)
  • Bernoulli / Beta / Binomial: ฮท = logit(p) โ†’ p = 1/(1+exp(โˆ’ฮท))
  • Lognormal: ฮท = E[log(Y)] โ†’ Median = exp(ฮท)
  • Gamma: ฮท = log(E[Y]), ฯ† = Shape (Variabilitรคt)
  • Student-t: ฮท = E[Y], ฮฝ = Freiheitsgrade (kleiner ฮฝ = schwerere Schwรคnze)

Der โ‡„ Rohskala-Button erlaubt die Eingabe auf der Antwortskala E[Y] โ€” intern wird alles auf ฮท umgerechnet.

Der Scale Converter (unter der Likelihood-Auswahl) zeigt die Umrechnung ฮท โ†” E[Y] interaktiv fรผr beliebige Werte.

Mittelwert-Grid & Standardabweichungen โ–ธ

Das Mittelwert-Grid zeigt alle Design-Zellen. Fรผr ein 2ร—3-Design (2 Between-Levels ร— 3 Within-Levels) entstehen 6 Zellen.

Die SD-Zeile legt die Residual-Streuung pro Zelle fest โ€” auf der Modellskala (ฯƒ fรผr GauรŸ, wird bei anderen Likelihoods intern verwendet).

Fรผr Nicht-GauรŸ-Likelihoods steuert ฯƒ nicht direkt die Varianz der Zielverteilung, sondern die Varianz der Normalapproximation auf ฮท-Ebene, aus der dann die Zielverteilung transformiert wird.

Korrelationsmatrix (Within-Design) โ–ธ

Wenn ein Within-Faktor aktiv ist, entstehen korrelierte Messwiederholungen. Die Korrelationsmatrix (Tab 2) bestimmt, wie stark die Zeitpunkte miteinander zusammenhรคngen.

  • Compound Symmetry (CS): Alle Off-Diagonal-Eintrรคge gleich ฯ (einfachstes Modell)
  • AR(1): ฯ^|j-k| โ€” nahegelegene Zeitpunkte korrelieren stรคrker (typisch fรผr Lรคngsschnitt)
  • Custom: Freie Eingabe jedes Matrixelements (muss positiv-definit sein)

Der rote Rahmen bei Custom zeigt an, dass die Matrix nicht positiv-definit ist und keine gรผltige Kovarianzmatrix ergibt.

Bei Nicht-GauรŸ-Likelihoods: Die Korrelationsstruktur wirkt als GauรŸ-Approximation auf ฮท-Ebene โ€” das ist bei moderaten Korrelationen vertretbar.

Cluster / Random Effects (ฯ„โ‚€, ฯ„โ‚, ฯโ‚€โ‚) โ–ธ

Der Cluster-Toggle fรผgt eine Gruppenstruktur hinzu (z.B. Schรผler in Klassen). Jede Klasse bekommt einen zufรคlligen Intercept uโ‚€โฑผ ~ N(0, ฯ„โ‚€ยฒ).

ฯ„โ‚€ (Random-Intercept-SD): Wie stark unterscheiden sich Klassen im Mittelniveau? GrรถรŸerer ฯ„โ‚€ = mehr Heterogenitรคt zwischen Clustern.

ฯ„โ‚ (Random-Slope-SD): Wenn ฯ„โ‚ > 0, bekommt jede Klasse auch einen zufรคlligen Slope fรผr den gewรคhlten Prรคdiktor. Formel: (1 + Methode | Klasse)

ฯโ‚€โ‚ (Intercept-Slope-Korrelation): Korrelation zwischen uโ‚€ und uโ‚. Positiv bedeutet: Klassen mit hohem Basisniveau zeigen auch stรคrkere Effekte. Wird รผber Cholesky-Zerlegung erzeugt.

Slope auf: Wรคhle, welcher Prรคdiktor den Random Slope bekommt โ€” Between- oder Within-Faktor mรถglich. Das bestimmt die brms-Formel.

ICC: Intraclass Correlation = ฯ„โ‚€ยฒ/(ฯ„โ‚€ยฒ+ฯƒยฒ). Typische Werte: Schulen ~0.10โ€“0.20, Familien ~0.15โ€“0.45.

Kovariablen (kontinuierliche Prรคdiktoren) โ–ธ

Kovariablen sind kontinuierliche Prรคdiktoren, die zusรคtzlich zu Between/Within-Faktoren generiert werden (max. 2). Sie erscheinen als Spalten im CSV und in der Formelvorschau.

ฮผ / ฯƒ: Globaler Mittelwert und Standardabweichung der Kovariable.

ฮผ je Gruppe: Wenn Between-Faktoren vorhanden sind, kann der Mittelwert pro Gruppe variieren โ€” das erzeugt eine Konfundierung zwischen Kovariable und Faktor (typischer Anwendungsfall fรผr G-Computation).

ฯ mit cov1: Wenn 2 Kovariablen definiert sind, kรถnnen sie รผber eine Cholesky-Zerlegung korreliert generiert werden. Im R-Code wird MASS::mvrnorm() verwendet.

  • Kovariablen sind immer between-subjects (zeitinvariant): bei Within-Design eine Spalte pro Subjekt, die durch pivot_longer() automatisch repliziert wird.
  • Kovariablen-Namen werden im R-Code durch cleanR() sanitiert (Leerzeichen โ†’ Unterstriche, Sonderzeichen entfernt).
Formel & Modellspezifikation โ–ธ

Die Formelvorschau (Tab 1) zeigt lme4- und brms-kompatible Formeln. Bei mehreren Faktoren wird automatisch das volle Interaktionsmodell (A * B * W) vorgeschlagen โ€” das robusteste Modell bei Messwiederholung.

A * B expandiert zu A + B + A:B (Haupteffekte + Interaktion). A * B * W ergibt alle 2-Wege und die 3-Wege-Interaktion.

Der Random-Effect-Term (1 | Klasse) erscheint automatisch wenn Cluster aktiv. Mit Random Slope: (1 + Zeit | Klasse).

Visualisierung & Plot-Optionen โ–ธ

Rohdaten / Mittelwerte: Zeigt Einzelpunkte (subsampelt), Boxplots (Between) oder Mittelwertslinien (Within) + Spaghetti-Linien pro Cluster.

Effektplot: Zeigt Median (50. Pct.) + Band von 16. bis 84. Pct. (~ยฑ1 SD bei Normalverteilung). Klarer, aber ohne Rohdaten.

Gruppen-Selektor: Bei mehreren Between-Faktoren kannst du auswรคhlen, welcher Faktor die Farben/Linien bestimmt. "Alle Kombinationen" zeigt alle Zellen gleichzeitig.

X-Achse-Selektor (Between-only, โ‰ฅ2 Between-Faktoren): Welcher Faktor geht auf die X-Achse? Der Gruppen-Selektor bestimmt dann die Farb-Gruppierung.

R-Code Export & faux::sim_design() โ–ธ

Der generierte R-Code ist vollstรคndig reproduzierbar und nutzt:

  • faux::sim_design() (DeBruine & Barr 2021) fรผr Within-Designs โ€” erzeugt korrelierte Normalverteilungen mit der angegebenen Kovarianzstruktur
  • base R (rnorm, rbinom, โ€ฆ) fรผr einfache Between-/No-Factor-Designs
  • MASS::mvrnorm() fรผr korrelierte Random-Effects (ฯ„โ‚€, ฯ„โ‚) und korrelierte Kovariablen

Nicht-GauรŸ-Likelihoods: sim_design() erzeugt immer normalverteilte ฮท-Werte. Diese werden danach via mutate(across(...)) in die Zielverteilung transformiert (z.B. rbinom(n(), 1, plogis(eta)) fรผr Bernoulli). Das ist eine GauรŸ-Approximation auf ฮท-Ebene โ€” fรผr moderate Korrelationen und nicht zu extreme Verteilungsparameter gut geeignet.

Wide โ†’ Long: Within-Designs erzeugen dat_wide (eine Spalte pro Zeitpunkt). pivot_longer() macht daraus dat_long โ€” das Format, das brms/lme4 erwartet. Kovariablen (between-subjects) werden dabei automatisch repliziert.

๐ŸŽฏ Exakte Parameter (Toggle oben): Erzwingt exakte Stichproben-Mittelwerte/SDs statt Zufallsstreuung โ€” nรผtzlich um z.B. zu prรผfen, ob ein Modell die wahren Populationsparameter exakt zurรผckgewinnt. Nutzt das empirical = TRUE-Prinzip (linear reskalieren, statt neu zu ziehen) und wirkt identisch in der JS-Vorschau/CSV und im generierten R-Code. Gilt vollstรคndig fรผr Gaussian/Student/Lognormal (Kovariablen, Cluster-Random-Effects, Y); bei Gamma/Bernoulli/Beta/Binomial/Poisson/NegBinomial nur fรผr die zugrundeliegende ฮท-/Cluster-Struktur โ€” die finale Ziehung bleibt dort zufรคllig, da es kein allgemeines exaktes Verfahren fรผr diese Familien gibt. Der Poweranalyse-Codeblock ignoriert den Toggle bewusst (Monte-Carlo-Power braucht echte Stichprobenstreuung).

Pakete (Installation):

  • install.packages("faux")
  • install.packages("glmmTMB")
  • install.packages("MASS") # meist vorinstalliert
  • install.packages("future.apply") # fรผr Power-Parallelisierung
Power-Simulation (auskommentierter Block) โ–ธ

Am Ende jedes generierten R-Codes befindet sich ein vollstรคndiger, auskommentierter Power-Simulations-Block. Die #-Zeichen entfernen und der Block ist direkt in R ausfรผhrbar.

Aufbau des Blocks:

  • library(glmmTMB) + library(car) โ€” Pakete fรผr GLMMs und Omnibus-Tests
  • N_sim <- 500 โ€” Simulationswiederholungen (500โ€“1000 fรผr stabile Schรคtzung)
  • sim_data_one(seed) โ€” erzeugt einen Datensatz mit deinen Parametern; bei Within-Design mit (1|id)
  • fit_and_test(seed) โ€” fittet Vollmodell, gibt benannten logischen Vektor zurรผck (ein Wert pro Term)
  • sapply() โ†’ Matrix (Zeilen = Terme, Spalten = Sims); rowMeans() = Power pro Term

Zwei Testvarianten im Block:

  • Option A (Standard): car::Anova(type="II") โ€” Wald-Omnibus-Tests fรผr alle Terme in einem Modell-Fit. Schnell, ein Fit pro Sim. Gibt Power pro Term aus. Wenn Interaktionen vorhanden sind und Haupteffekte konditional interpretiert werden sollen: options(contrasts = c("contr.sum", "contr.poly")) + type="III" (Kommentar im Code).
  • Option B (am Ende, auskommentiert): LRT via anova() โ€” Likelihood-Ratio-Tests durch Modellvergleich. Statistisch genauer (v.a. bei kleinen N und non-Gaussian), aber ~3โ€“6ร— langsamer. Enthรคlt:
    • Interaktionstest: Vollmodell vs. Additiv
    • Typ-II-Haupteffekte: Additiv vs. Additiv-ohne-X (kontrolliert fรผr alle anderen)
    • Jeder Faktor vs. Nullmodell (Y ~ 1 + RE)
    • Additives Modell vs. Null (alle Haupteffekte kombiniert)

Within-Design und ID-Variable: Bei Within-Faktoren enthรคlt die Power-Formel immer (1 | id), damit die wiederholten Messungen korrekt modelliert werden. Das id stammt aus faux::sim_design() und รผberlebt den pivot_longer()-Schritt.

glmmTMB-Familien โ€” Unterschied zu brms/lme4:

  • Student-t: t_family() โ€” nicht gaussian()!
  • Lognormal: lognormal() โ€” nicht gaussian(link="log")!
  • Gamma: Gamma(link = "log")
  • Beta: beta_family(link = "logit")
  • Neg. Binomial: nbinom2(link = "log") (NB2-Parametrisierung)

Parallelisierung: library(future.apply); plan(multisession) โ†’ future_sapply() statt sapply(). Speedup ~3โ€“6ร— je nach Rechner.

Interpretation: Power von 80 % = in 80 von 100 Replikationen des Experiments wรคre der Effekt bei deinen gewรคhlten Parametern signifikant nachweisbar.

Hรคufige Fragen & Fallstricke โ–ธ

Warum stimmen JS-Simulation und R-Code nicht exakt รผberein?
JS nutzt mulberry32 als PRNG, R den Mersenne Twister. Gleicher Seed โ†’ รคhnliche, aber nicht identische Zufallszahlen. Fรผr exakte รœbereinstimmung: empirical = TRUE in faux::sim_design() โ€” dann entsprechen die Stichprobenkennwerte exakt den eingestellten Werten.

Warum erscheinen Faktornamen im R-Code anders als eingegeben?
Namen mit Leerzeichen oder Sonderzeichen (z.B. "Reaktions Zeit (ms)") werden automatisch bereinigt: Leerzeichen/Bindestriche โ†’ Unterstriche, รผbrige Sonderzeichen werden entfernt. Im CSV-Header und in der Formelvorschau werden ebenfalls die bereinigten Namen verwendet.

Kovariablen in Within-Designs (Wide โ†’ Long):
Kovariablen sind between-subjects und erscheinen daher im Wide-Format als eine Spalte. Nach pivot_longer() wird die Kovariable automatisch fรผr jede Messung repliziert โ€” das ist das korrekte Long-Format fรผr brms/lme4.

Nicht-GauรŸ-Likelihoods und Korrelationsmatrix:
faux::sim_design() erzeugt intern immer normalverteilte ฮท-Werte (linearer Prรคdiktor). Die Korrelationsstruktur (Tab 2) wirkt auf dieser ฮท-Ebene. Nach der Transformation in die Zielverteilung (z.B. Poisson, Beta) ist die Pearson-Korrelation zwischen den Within-Levels niedriger als ฯ. Bei starker Nicht-Normalitรคt (z.B. Bernoulli mit extremen ps) kann der Unterschied erheblich sein.

Gamma-Parametrisierung:
Im Data Creator wird Gamma(ฮผ, ฯ†) mit Log-Link verwendet: ฮผ = exp(ฮท), Shape = ฯ†, Rate = ฯ†/ฮผ. Das entspricht brms' Gamma(link="log")-Parametrisierung. Die Varianz ist ฮผยฒ/ฯ† โ€” je grรถรŸer ฯ†, desto kleiner die relative Variabilitรคt.

Beta-Parametrisierung:
Beta(ฮผ, ฯ†) mit ฮผ = logitโปยน(ฮท), ฮฑ = ฮผยทฯ†, ฮฒ = (1-ฮผ)ยทฯ†. ฯ† ist der Prรคzisionsparameter: grรถรŸeres ฯ† = schmalere Verteilung um ฮผ. Typischer Wertebereich fรผr ฯ† in Likert-Daten: 5โ€“20.

ICC berechnen:
ICC = ฯ„โ‚€ยฒ / (ฯ„โ‚€ยฒ + ฯƒยฒ). Fรผr GauรŸ-Design: ฯ„โ‚€ = 0.5, ฯƒ = 1 โ†’ ICC โ‰ˆ 0.20. Typische Richtwerte: Schulen ~0.10โ€“0.20, Familien ~0.20โ€“0.40, Messungen an Personen ~0.50โ€“0.70.

Weiterfรผhrende Literatur โ–ธ
Mittelwerte auf Antwortskala eingeben (inverse Link)
Fรผge Faktoren hinzu, um die Mittelwert-Matrix zu konfigurieren.
Kein Within-Faktor definiert. Korrelationsmatrix nicht verfรผgbar.
Cluster-Struktur nicht aktiviert.
Modellformel-Vorschau
lme4:Y ~ 1
brms:Y ~ 1