Fehlermeldung bei Untersuchung von Haupteffekten (ANOVA)

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

Antworten
ninabionda
Beiträge: 11
Registriert: Di Jun 06, 2023 12:55 pm

Fehlermeldung bei Untersuchung von Haupteffekten (ANOVA)

Beitrag von ninabionda »

Hallo zusammen,

nachdem ich eine Mixed Anova durchgeführt habe und diese einen signigikanten Interaktionseffekt zeigt, möchte ich in einem nächsten Schritt die einfachen Haupteffekte untersuchen und paarweise Vergleiche vornehmen.

Für die Untersuchung der einfachen Haupteffekte der UV "Messzeitpunkt" (Within Subject) verwende ich folgenden Code:

Code: Alles auswählen

 EHF_MZP <- Fragebogen.long %>%
  group_by(Gruppe) %>%
  anova_test(Score ~ Messzeitpunkt + Error(ID/Messzeitpunkt)) %>%
  get_anova_table() %>%
  adjust_pvalue(method = "bonferroni")
Ich bekomme folgende Fehlermeldung:

Code: Alles auswählen

ℹ In argument: `data = map(.data$data, .f, ...)`.
Caused by error in `map()`:
ℹ In index: 5.
Caused by error in `assertthat_iv_has_enough_levels()`:
! Variable Messzeitpunkthas only one level. Remove it from the model.
Die Variable "Messzeitpunkt" liegt allerdings durchaus als Faktor mit zwei Levels vor:

Code: Alles auswählen

is.factor(Fragebogen.long$Messzeitpunkt)

[1] TRUE

Code: Alles auswählen

nlevels(Fragebogen.long$Messzeitpunkt)

[1] 2

Hat jemand eine Idee, wo der Fehler liegen könnte?

Viele Grüße
Nina
bigben
Beiträge: 2781
Registriert: Mi Okt 12, 2016 9:09 am

Re: Fehlermeldung bei Untersuchung von Haupteffekten (ANOVA)

Beitrag von bigben »

Hallo Nina,

zwei Level haben bedeutet noch nicht, dass die auch beide vorkommen. Was sagen denn

Code: Alles auswählen

table(Fragebogen.long$Messzeitpunkt)
table(Fragebogen.long$Messzeitpunkt ,
      Fragebogen.long$Gruppe)
LG, Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
ninabionda
Beiträge: 11
Registriert: Di Jun 06, 2023 12:55 pm

Re: Fehlermeldung bei Untersuchung von Haupteffekten (ANOVA)

Beitrag von ninabionda »

Hallo Bernhard,

das stimmt, aber es sind tatsächlich beide Levels enthalten:

Code: Alles auswählen

> table(FKFragebogen.long$Messzeitpunkt)

  Aktivitäten P_Aktivitäten 
           95            95 

Code: Alles auswählen

> table(FKFragebogen.long$Messzeitpunkt ,
+       FKFragebogen.long$Gruppe)
               
                 0  1  2  3  4
  Aktivitäten    3 30 29 14 16
  P_Aktivitäten  3 30 29 14 16
Fällt dir noch etwas anderes ein, was eine solche Fehlermeldung hervorrufen könnte?
Ich bin echt ratlos...

Viele Grüße
Nina
bigben
Beiträge: 2781
Registriert: Mi Okt 12, 2016 9:09 am

Re: Fehlermeldung bei Untersuchung von Haupteffekten (ANOVA)

Beitrag von bigben »

Hallo Nina,

leider habe ich auch noch keine Antwort für Dein Problem. Ich bin nutze aber auch dplyr-Funktionen nicht und die Fehlermeldung ist nur bedingt hilfreich: Du weißt halt bei dieser dpylr-Kette nicht, wo der Fehler genau auftritt.

Du hast bestimmt schon sichergestellt, dass Gruppe und ID auch vernünftig gefüllt sind (und nicht beispielsweise zuviele NA die anderen Variablenunverwertbar machen); wenn nicht, ggf.

Code: Alles auswählen

Hmisc::describe(FKFragebogen.long$Score)
Hmisc::describe(FKFragebogen.long$ID)
oder, wenn Du Hmisc noch nicht installiert hast, halt

Code: Alles auswählen

summary(FKFragebogen.long$Score)
summary(FKFragebogen.long$ID)
Aber das wird schon passen.

Diese ganzen Automatiken von dplyr führen dazu, dass Du nicht genau weißt, wo der Fehler auftaucht. Ich stelle es mir fehlerträchtig vor, dass es in Gruppe 0 nur drei Einträge pro Messzeitpunkt gibt. Vielleicht ist das das Problem? So etwas würde ich manuell durchrechnen. Z. B.

Code: Alles auswählen

auszug <- subset(FKFragebogen.long, Gruppe == 1)
head(auszug)
plot(
mod1 <- aov(Score ~ Messzeitpunkt, data = auszug)  # erstmal ein ganz schlichtes Modell
summary(mod1)
mod2 <- aov(Score ~ Messzeitpunkt + Error(ID/Messzeitpunkt), data = auszug) # dann das Modell mit dem komplexeren Zusammenhang 
summary(mod2)
Und wenn das funktioniert, dann oben Gruppe == 0 einsetzen um zu schauen, ob es wirklich an der Gruppe 0 liegt. Falls Deine Gruppen auch Faktoren sind, dann halt nicht Gruppe == 1 sondern Gruppe == "1".
Also jedenfalls langsam herantasten, wo genau der Fehler auftritt.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Antworten