Dieses Kapitel wird in den nächsten Wochen geschrieben. Ich plane zum Ende des SoSe 2025 eine neue Version des Kapitels erstellt zu haben. Während das Kapitel entsteht, funktioniert so manaches dann nicht so wie es soll.
Das Modell
Beginnen wir also mit der Festlegung welche Art der Analyse wir rechnen wollen. Wichtig ist hier, dass du einen normmalverteiten Messwert \(y\) vorliegen hast und ein oder mehrere Faktoren \(f\). Was sind im Kontext von R Faktoren? Ein Faktor ist eine Behandlung oder eben eine Spalte in deinem Datensatz, der verschiedene Gruppen oder Kategorien beinhaltet. Wir nennen diese Kategorien Level. In den folgenden Datenbeispielen ist die Spalte animal ein Faktor mit drei Leveln. Wir haben dort nämlich die Sprungweiten von drei Floharten gemessen. Jetzt kann es aber auch sein, dass du neben einem Faktor noch eine numeriche Kovariate \(c\) gemessen hast. Oder aber du hast zwei Messwerte, die du dann gemeinsam mit einem Faktor vergleichen willst. Diese drei Analysetypen wollen wir uns in den folgenden Tabs mal näher anschauen.
33.1 MANOVA (multivariat)
Am Ende des Kapitels schauen wir uns noch einen weiteren Spezialfall an. Nämlich den Fall, dass wir nicht nur einen Messwert \(y\) vorliegen haben sondern eben mehrere die wir simultan auswerten wollen. Das klingt jetzt erstmal etwas schräg, aber es wird dann klarer, wenn wir uns die Sachlage einmal an einem Beispiel anschauen.
\(f_A \times f_B\) gleich einem beispielhaften Interaktionsterm erster Ordnung
Die ganze multivariate Analyse ist dann etwas seltener, da wir hier dann doch schon einiges an Fallzahl brauchen, damit es dann auch einen Sinn macht. Einiges an Fallzahl heißt dann hier, dass wir dann schon mehr als sechs Beobachtungen in einer Gruppe haben sollten. Wenn du weniger hast, kann es sein, dass du keine signifikanten Unterschiede findest.
Daneben gibt es natürlich noch Spezialfälle wie die gemischte ANOVA (eng. mixed ANOVA), wenn wir Beobachtungen wiederholt messen. Dieses Modell schauen wir uns dann auch nochmal an. Der Unterschied in der Modellierung ist ein Fehlerterm (eng. Error), den wir dann nochmal mit angeben müssen. Dazu dann aber mehr in dem Kapitel zur repeated & mixed ANOVA.
Gueorguieva und Krystal (2004) mit der wissenschaftlichen Veröffentlichung Move Over ANOVA
“Mixed-effects models use all available data, can properly account for correlation between repeated measurements on the same subject, have greater flexibility to model time effects, and can handle missing data more appropriately. Their flexibility makes them the preferred choice for the analysis of repeatedmeasures data” — Gueorguieva und Krystal (2004)
“However, the fundamental difference is that in a mixed ANOVA, the subjects that undergo each condition (e.g., a control and treatment) are different, whereas in a two-way repeated measures ANOVA, the subjects undergo both conditions (e.g., they undergo the control and the treatment).” — Two-way repeated measures ANOVA using SPSS Statistics
Weitere Tutorien für die repeated & mixed ANOVA
Wir oben schon erwähnt, kann dieses Kapitel nicht alle Themen der ANOVA abarbeiten. Daher präsentiere ich hier eine Liste von Literatur und Links, die mich für dieses Kapitel hier inspiriert haben. Nicht alles habe ich genutzt, aber vielleicht ist für dich was dabei.
Friedrich S, Konietschke F, Pauly M. 2019. Resampling-based analysis of multivariate data and repeated measures designs with the R package MANOVA. RM.
Gueorguieva R, Krystal JH. 2004. Move over anova: progress in analyzing repeated-measures data andits reflection in papers published in the archives of general psychiatry. Archives of general psychiatry 61: 310–317.
```{r echo = FALSE}#| message: false#| echo: false#| warning: falsepacman::p_load(tidyverse, readxl, knitr, kableExtra, Hmisc, plyr, patchwork, ggforce, see, sjPlot, tinytable, conflicted)set.seed(202434)conflicts_prefer(dplyr::summarise)conflicts_prefer(dplyr::summarize)conflicts_prefer(dplyr::mutate)conflicts_prefer(magrittr::set_names)```# Die MANOVA {#sec-anova-manova}*Letzte Änderung am `r format(fs::file_info("stat-tests-anova-manova.qmd")$modification_time, '%d. %B %Y um %H:%M:%S')`*> *"The 'C' students run the world" --- [Harry Truman](https://www.stormrake.com/blogs/post/the-world-is-run-by-c-students)*::: {.callout-caution appearance="simple"}## Stand des Kapitels: Konstruktion (seit 02.2025)Dieses Kapitel wird in den nächsten Wochen geschrieben. Ich plane zum Ende des SoSe 2025 eine neue Version des Kapitels erstellt zu haben. Während das Kapitel entsteht, funktioniert so manaches dann nicht so wie es soll.:::#### Das Modell {.unnumbered .unlisted}Beginnen wir also mit der Festlegung welche Art der Analyse wir rechnen wollen. Wichtig ist hier, dass du einen normmalverteiten Messwert $y$ vorliegen hast und ein oder mehrere Faktoren $f$. Was sind im Kontext von R Faktoren? Ein Faktor ist eine Behandlung oder eben eine Spalte in deinem Datensatz, der verschiedene Gruppen oder Kategorien beinhaltet. Wir nennen diese Kategorien Level. In den folgenden Datenbeispielen ist die Spalte `animal` ein Faktor mit drei Leveln. Wir haben dort nämlich die Sprungweiten von drei Floharten gemessen. Jetzt kann es aber auch sein, dass du neben einem Faktor noch eine numeriche Kovariate $c$ gemessen hast. Oder aber du hast zwei Messwerte, die du dann gemeinsam mit einem Faktor vergleichen willst. Diese drei Analysetypen wollen wir uns in den folgenden Tabs mal näher anschauen.## MANOVA (multivariat)Am Ende des Kapitels schauen wir uns noch einen weiteren Spezialfall an. Nämlich den Fall, dass wir nicht nur einen Messwert $y$ vorliegen haben sondern eben mehrere die wir simultan auswerten wollen. Das klingt jetzt erstmal etwas schräg, aber es wird dann klarer, wenn wir uns die Sachlage einmal an einem Beispiel anschauen.$$(y_1, y_2, ..., y_j) \sim f_A + f_B + ... + f_P + f_A \times f_B $$mit- $(y_1, y_2)$ gleich der Messwerte oder Outcomes- $f_A + f_B + ... + f_P$ gleich experimenteller Faktoren- $f_A \times f_B$ gleich einem beispielhaften Interaktionsterm erster OrdnungDie ganze multivariate Analyse ist dann etwas seltener, da wir hier dann doch schon einiges an Fallzahl brauchen, damit es dann auch einen Sinn macht. Einiges an Fallzahl heißt dann hier, dass wir dann schon mehr als sechs Beobachtungen in einer Gruppe haben sollten. Wenn du weniger hast, kann es sein, dass du keine signifikanten Unterschiede findest.Daneben gibt es natürlich noch Spezialfälle wie die gemischte ANOVA (eng. *mixed ANOVA*), wenn wir Beobachtungen wiederholt messen. Dieses Modell schauen wir uns dann auch nochmal an. Der Unterschied in der Modellierung ist ein Fehlerterm (eng. *Error*), den wir dann nochmal mit angeben müssen. Dazu dann aber mehr in dem [Kapitel zur repeated & mixed ANOVA](#sec-anova-mixed).Die MANOVA[Testing the Assumptions of ANOVAs](https://cran.r-project.org/web/packages/afex/vignettes/assumptions_of_ANOVAs.html#sphericity)[One-Way MANOVA in R](https://www.datanovia.com/en/lessons/one-way-manova-in-r/)::: panel-tabset## `{base}`## `{MANOVA.RM}`[Das R Paket `{MANOVA.RM}`](https://cran.r-project.org/web/packages/MANOVA.RM/vignettes/Introduction_to_MANOVA.RM.html)@friedrich2019resampling## `{car}`## `{afex}`## `{WRS2}`:::## Allgemeiner Hintergrund@gueorguieva2004move mit der wissenschaftlichen Veröffentlichung [Move Over ANOVA](https://jamanetwork.com/journals/psych/articlepdf/481967/ynv20002.pdf?casa_token=5gc0qQuqNFUAAAAA:SJWnX8rH6__-lxXqiF0FDGQISXgXE0JQlRgtY7EE76IFnuECNjsOvKzUIwu9hmZFrKdLJbIahfQ)> *"Mixed-effects models use all available data, can properly account for correlation between repeated measurements on the same subject, have greater flexibility to model time effects, and can handle missing data more appropriately. Their flexibility makes them the preferred choice for the analysis of repeatedmeasures data"* --- @gueorguieva2004move> *"However, the fundamental difference is that in a mixed ANOVA, the subjects that undergo each condition (e.g., a control and treatment) are different, whereas in a two-way repeated measures ANOVA, the subjects undergo both conditions (e.g., they undergo the control and the treatment)."* --- [Two-way repeated measures ANOVA using SPSS Statistics](https://statistics.laerd.com/spss-tutorials/two-way-repeated-measures-anova-using-spss-statistics.php#:~:text=A%20mixed%20ANOVA%20is%20very,factors%20on%20the%20dependent%20variable.)::: callout-tip## Weitere Tutorien für die repeated & mixed ANOVAWir oben schon erwähnt, kann dieses Kapitel nicht alle Themen der ANOVA abarbeiten. Daher präsentiere ich hier eine Liste von Literatur und Links, die mich für dieses Kapitel hier inspiriert haben. Nicht alles habe ich genutzt, aber vielleicht ist für dich was dabei.- [Repeated Measures ANOVA in R](https://www.datanovia.com/en/lessons/repeated-measures-anova-in-r/)- [Mixed ANOVA in R](https://www.datanovia.com/en/lessons/mixed-anova-in-r/):::## Genutzte R PaketeWir wollen folgende R Pakete in diesem Kapitel nutzen.```{r echo = TRUE}#| message: false#| warning: falsepacman::p_load(tidyverse, magrittr, broom, WRS2, scales, readxl, see, car, patchwork, emmeans, interactions, effectsize, afex, report, conflicted)conflicts_prefer(dplyr::mutate)conflicts_prefer(dplyr::summarize)conflicts_prefer(dplyr::filter)cbbPalette <- c("#000000", "#E69F00", "#56B4E9", "#009E73", "#F0E442", "#0072B2", "#D55E00", "#CC79A7")```An der Seite des Kapitels findest du den Link *Quellcode anzeigen*, über den du Zugang zum gesamten R-Code dieses Kapitels erhältst.## Daten#### Mit Messwiederholung und Subjekt gleich {.unnumbered .unlisted}```{r}repated_fac3_tbl <-read_excel("data/fleas_complex_data.xlsx", sheet ="repeated") |>select(animal, stage, t0:t3) |>rowid_to_column(".id") |>pivot_longer(cols = t0:t3,values_to ="jump_length",names_to ="time_num") |>mutate(animal =as_factor(animal),stage =factor(stage, level =c("juvenile", "adult")),time_fac =as_factor(time_num),jump_length =round(jump_length, 2))``````{r}#| echo: false#| message: false#| warning: false#| label: tbl-repeated-table#| tbl-cap: "foo."repeated_raw_tbl <-read_excel("data/fleas_complex_data.xlsx", sheet ="repeated") |>select(animal, stage, t0:t3) |>mutate_if(is.numeric, round, 2)rbind(head(repeated_raw_tbl, n =3),rep("...", times =ncol(repeated_raw_tbl)),tail(repeated_raw_tbl, n =3)) |>tt(width =1, align ="c", theme ="striped")``````{r}#| echo: false#| eval: true#| message: false#| warning: false#| label: fig-ggplot-anova-repeated#| fig-align: center#| fig-height: 4.5#| fig-width: 8#| fig-cap: "Darstellung der Varianzhomogenität und Varianzheterogenität in einem Barplot. *[Zum Vergrößern anklicken]*"ggplot(repated_fac3_tbl, aes(x = time_num, y = jump_length, shape = stage,color = animal, linetype = stage,group =interaction(animal, stage))) +theme_minimal() +geom_point(position =position_dodge(0.2)) +stat_summary(fun = mean, geom ="line",position =position_dodge(0.2)) +scale_color_okabeito() +theme(legend.position ="top")```#### Mit Messwiederholung und Subjekt ungleich {.unnumbered .unlisted}```{r}mixed_fac3_tbl <-read_excel("data/fleas_complex_data.xlsx", sheet ="mixed") |>select(animal, stage, spring:winter) |>rowid_to_column(".id") |>pivot_longer(cols = spring:winter,values_to ="jump_length",names_to ="season_num") |>mutate(animal =as_factor(animal),stage =factor(stage, level =c("juvenile", "adult")),season_fac =as_factor(season_num),jump_length =round(jump_length, 2))``````{r}#| echo: false#| message: false#| warning: false#| label: tbl-mixed-table#| tbl-cap: "foo."mixed_raw_tbl <-read_excel("data/fleas_complex_data.xlsx", sheet ="mixed") |>select(animal, stage, spring:winter) |>mutate_if(is.numeric, round, 2)rbind(head(mixed_raw_tbl, n =3),rep("...", times =ncol(mixed_raw_tbl)),tail(mixed_raw_tbl, n =3)) |>tt(width =1, align ="c", theme ="striped")``````{r}#| echo: false#| eval: true#| message: false#| warning: false#| label: fig-ggplot-anova-mixed#| fig-align: center#| fig-height: 4.5#| fig-width: 8#| fig-cap: "Darstellung der Varianzhomogenität und Varianzheterogenität in einem Barplot. *[Zum Vergrößern anklicken]*"ggplot(mixed_fac3_tbl, aes(x = season_fac, y = jump_length, shape = stage,color = animal, linetype = stage,group =interaction(animal, stage))) +theme_minimal() +geom_point(position =position_dodge(0.2)) +stat_summary(fun = mean, geom ="line",position =position_dodge(0.2)) +scale_color_okabeito() +theme(legend.position ="top")```## Repeated measurement ANOVAHier eine kurze Betrachtung. Mehr dazu in dem [Kapitel zu gemischten Modellen](#sec-mixed)::: panel-tabset## `{base}`## `{car}`## `{afex}`## `{WRS2}`:::## Mixed ANOVAHier eine kurze Betrachtung. Mehr dazu in dem [Kapitel zu gemischten Modellen](#sec-mixed)::: panel-tabset## `{base}`## `{car}`## `{afex}`## `{WRS2}`:::## Referenzen {.unnumbered}