Anova - Fehlende Variablen im Longformat
Moderator: EDi
-
- Beiträge: 4
- Registriert: Mo Jan 11, 2021 4:49 pm
Anova - Fehlende Variablen im Longformat
Hallo,
ich schreibe zurzeit meine Bachelor-Arbeit und stecke in R fest. Konkret möchte ich eine Anova durch führen, zunächst mit einer UV und dann mit zweien, daher dachte ich, ich nutze mehr oder weniger den gleichen Befehl.
Die zugehörigen Daten konnte ich einlesen und ins Longformat über den Befehl:
daten_zufriedenheit_weiterarbeiten.long<-melt(daten_zufriedenheit_weiterarbeiten,id.vars = c("ID"),varying=c("Slogan","Zufriedenheit"))
umschreiben. Das ganze sieht stimmig aus, siehe Anhang.
Wenn ich jetzt die Anova über:
fit<- ezANOVA(wid = ID,dv = Zufriedenheit,between = "Slogan",type = 3,data = daten_zufriedenheit_weiterarbeiten.long,return_aov = TRUE)
durchführen will, kommt als Fehler:
Fehler in ezANOVA_main(data = data, dv = dv, wid = wid, within = within, :
"Zufriedenheit" is not a variable in the data frame provided.
R scheint also die Variablen nicht zu kennen, egal ob ich " oder ' verwende, es bleibt gleich, nutze ich die Funktion names, kann ich die Variablen allerdings umbenennen, daher verstehe ich den Fehler nicht. Kann mir jemand weiter helfen?
Vielen Dank!
ich schreibe zurzeit meine Bachelor-Arbeit und stecke in R fest. Konkret möchte ich eine Anova durch führen, zunächst mit einer UV und dann mit zweien, daher dachte ich, ich nutze mehr oder weniger den gleichen Befehl.
Die zugehörigen Daten konnte ich einlesen und ins Longformat über den Befehl:
daten_zufriedenheit_weiterarbeiten.long<-melt(daten_zufriedenheit_weiterarbeiten,id.vars = c("ID"),varying=c("Slogan","Zufriedenheit"))
umschreiben. Das ganze sieht stimmig aus, siehe Anhang.
Wenn ich jetzt die Anova über:
fit<- ezANOVA(wid = ID,dv = Zufriedenheit,between = "Slogan",type = 3,data = daten_zufriedenheit_weiterarbeiten.long,return_aov = TRUE)
durchführen will, kommt als Fehler:
Fehler in ezANOVA_main(data = data, dv = dv, wid = wid, within = within, :
"Zufriedenheit" is not a variable in the data frame provided.
R scheint also die Variablen nicht zu kennen, egal ob ich " oder ' verwende, es bleibt gleich, nutze ich die Funktion names, kann ich die Variablen allerdings umbenennen, daher verstehe ich den Fehler nicht. Kann mir jemand weiter helfen?
Vielen Dank!
Re: Anova - Fehlende Variablen im Longformat
Hi!
Laut dem Screenshot hast Du drei Variablen: "ID", "variable" und "value". Keine der Variablen heißt Slogan oder Zufriedenheit. Die Variable "variable" nimmt aber die Werte "Slogan" und "Zufriedenheit" an. Kann es sein, dass Dir Dein Datensatz "zu lang" geraten ist? Was sagt denn?
Für Hilfe hier im Forum ist es übrigens immer besser, Daten als gültigen R-Code in [code.]-Tags zu posten als Screenshots. Oft ist es für Ratschläge hier hilfreich auch zu wissen, worum es geht bzw. was genau Du mit den Daten da machen willst.
HTH,
Bernhard
Laut dem Screenshot hast Du drei Variablen: "ID", "variable" und "value". Keine der Variablen heißt Slogan oder Zufriedenheit. Die Variable "variable" nimmt aber die Werte "Slogan" und "Zufriedenheit" an. Kann es sein, dass Dir Dein Datensatz "zu lang" geraten ist? Was sagt denn
Code: Alles auswählen
str(daten_zufriedenheit_weiterarbeiten)
Für Hilfe hier im Forum ist es übrigens immer besser, Daten als gültigen R-Code in [code.]-Tags zu posten als Screenshots. Oft ist es für Ratschläge hier hilfreich auch zu wissen, worum es geht bzw. was genau Du mit den Daten da machen willst.
HTH,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
-
- Beiträge: 4
- Registriert: Mo Jan 11, 2021 4:49 pm
Re: Anova - Fehlende Variablen im Longformat
Hallo Bernhard,
vielen Dank, Slogan und Zufriedenheit waren im Wideformat meine Variablen, um eine Anova durchführen zu können, muss ich die doch in long Format (also untereinander) umschreiben oder nicht?
[str]
zeigt mir
'data.frame': 215 obs. of 3 variables:
$ ID : int 1 2 3 4 5 6 7 8 9 10 ...
$ Slogan : chr "3" "4" "4" "4" ...
$ Zufriedenheit: num 5.12 5.12 5.38 6.88 6.25 ...
wie setze ich den [code.] genau ein? ich hatte es mit [code.]Befehle[code.] und mögliche Varianten davon versucht, dann setz ich das gern um
vielen Dank, Slogan und Zufriedenheit waren im Wideformat meine Variablen, um eine Anova durchführen zu können, muss ich die doch in long Format (also untereinander) umschreiben oder nicht?
[str]
zeigt mir
'data.frame': 215 obs. of 3 variables:
$ ID : int 1 2 3 4 5 6 7 8 9 10 ...
$ Slogan : chr "3" "4" "4" "4" ...
$ Zufriedenheit: num 5.12 5.12 5.38 6.88 6.25 ...
wie setze ich den [code.] genau ein? ich hatte es mit [code.]Befehle[code.] und mögliche Varianten davon versucht, dann setz ich das gern um
Re: Anova - Fehlende Variablen im Longformat
Den Punkt in [code.] muss man weglassen, das konnte ich nur oben nicht.
sowas wie
[code]datensatz <- data.frame(id = 1:6, slogan = c("a", "b", "a", "b", "a", "b"), zufriedenheit = rnorm(6))
summary(lm(zufriedenheit ~ slogan, data = datensatz))
[/code]
wird dann zu (nächster Post)
sowas wie
[code]datensatz <- data.frame(id = 1:6, slogan = c("a", "b", "a", "b", "a", "b"), zufriedenheit = rnorm(6))
summary(lm(zufriedenheit ~ slogan, data = datensatz))
[/code]
wird dann zu (nächster Post)
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Re: Anova - Fehlende Variablen im Longformat
...wird dann zu
Mit der Syntax von ezANOVA bin ich (noch) nicht vertraut. Diese Daten würden sich jetzt anbieten, die Abhängigkeit von zufriedenheit je nach slogan zu untersuchen. Gehe ich recht in der Annahme, dass Du jede ID mehrfach untersucht hast und deshalb jetzt eine repeated measures ANOVA rechnen willst?
LG,
Bernhard
Code: Alles auswählen
datensatz <- data.frame(id = 1:6, slogan = c("a", "b", "a", "b", "a", "b"), zufriedenheit = rnorm(6))
summary(lm(zufriedenheit ~ slogan, data = datensatz))
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
-
- Beiträge: 4
- Registriert: Mo Jan 11, 2021 4:49 pm
Re: Anova - Fehlende Variablen im Longformat
Hallo Bernhard,
danke für die Antworten, ich bin inzwischen deutlich weiter, stoße aber auf den nächsten Fehler.
Zunächst brauche ich kein Long-Format, da ich eine Anova im between subject design habe. Es gibt also keine 2 Zeitpunkte aber 2 Unabhängige Variablen (hier Slogan und Alter). Daher ist der Ursprungsfehler nicht mehr aktuell, meine Daten sehen jetzt so aus, da ich über Subset die relevanten Gruppen gebildet habe:
'data.frame': 112 obs. of 4 variables:
$ ID : int 2 3 4 5 6 7 8 9 10 12 ...
$ Alter : num 4 1 3 1 3 5 3 1 2 5 ...
$ Slogan : num 4 4 4 4 4 4 1 1 4 1 ...
$ Zufriedenheit: num 5.12 5.38 6.88 6.25 7 ...
mit:
ID Alter Slogan
Min. : 2.0 Min. :1.000 Min. :1.000
1st Qu.: 59.5 1st Qu.:2.000 1st Qu.:1.000
Median :113.0 Median :3.000 Median :1.000
Mean :111.2 Mean :2.759 Mean :2.446
3rd Qu.:169.2 3rd Qu.:4.000 3rd Qu.:4.000
Max. :215.0 Max. :5.000 Max. :4.000
Zufriedenheit
Min. :1.250
1st Qu.:4.875
Median :5.562
Mean :5.477
3rd Qu.:6.500
Max. :7.000
Verwende ich jetzt
erhalte ich als Fehler: Fehler in names(dn) <- dnn : Versuch ein Attribut von NULL zu setzen.
Was mache ich falsch?
Danke,
Jan
danke für die Antworten, ich bin inzwischen deutlich weiter, stoße aber auf den nächsten Fehler.
Zunächst brauche ich kein Long-Format, da ich eine Anova im between subject design habe. Es gibt also keine 2 Zeitpunkte aber 2 Unabhängige Variablen (hier Slogan und Alter). Daher ist der Ursprungsfehler nicht mehr aktuell, meine Daten sehen jetzt so aus, da ich über Subset die relevanten Gruppen gebildet habe:
Code: Alles auswählen
str(dataHypone)
$ ID : int 2 3 4 5 6 7 8 9 10 12 ...
$ Alter : num 4 1 3 1 3 5 3 1 2 5 ...
$ Slogan : num 4 4 4 4 4 4 1 1 4 1 ...
$ Zufriedenheit: num 5.12 5.38 6.88 6.25 7 ...
mit:
Code: Alles auswählen
summary(dataHypone)
Min. : 2.0 Min. :1.000 Min. :1.000
1st Qu.: 59.5 1st Qu.:2.000 1st Qu.:1.000
Median :113.0 Median :3.000 Median :1.000
Mean :111.2 Mean :2.759 Mean :2.446
3rd Qu.:169.2 3rd Qu.:4.000 3rd Qu.:4.000
Max. :215.0 Max. :5.000 Max. :4.000
Zufriedenheit
Min. :1.250
1st Qu.:4.875
Median :5.562
Mean :5.477
3rd Qu.:6.500
Max. :7.000
Verwende ich jetzt
Code: Alles auswählen
fit<-ezANOVA(wid ="ID",dv = "Zufriedenheit",between = "Slogan",type = 3,data = dataHypone,return_aov = TRUE)
Was mache ich falsch?
Danke,
Jan
Re: Anova - Fehlende Variablen im Longformat
Hallo Jan,
schön, dass Du voran kommst.
Also wollen wir eine klassische zweifaktorielle Anova rechnen, mit Slogan und Alter als unabhängigen und Zufriedenheit als abhängiger Variable.
Normalerweise sind Gruppenzugehörigkeiten ja etwas nominales, deshalb störe ich mich hier daran, dass die Gruppenvariablen als "numeric" hinterlegt sind und nicht als factor. Da fehlt mir jetzt aber ganz klar die Kenntnis der Funktion "ezANOVA" um zu sagen, ob das ok oder ein Problem ist. Wenn die Funktion keine Warnung ausgibt, wird es wohl irgendwie ok sein(?).
LG,
Bernhard
schön, dass Du voran kommst.
da ich eine Anova im between subject design habe. Es gibt also keine 2 Zeitpunkte aber 2 Unabhängige Variablen (hier Slogan und Alter).
Also wollen wir eine klassische zweifaktorielle Anova rechnen, mit Slogan und Alter als unabhängigen und Zufriedenheit als abhängiger Variable.
Das verstehe ich nicht. Wie kann man mit subset Gruppen bilden?meine Daten sehen jetzt so aus, da ich über Subset die relevanten Gruppen gebildet habe:
Code: Alles auswählen
str(dataHypone)
'data.frame': 112 obs. of 4 variables:
$ ID : int 2 3 4 5 6 7 8 9 10 12 ...
$ Alter : num 4 1 3 1 3 5 3 1 2 5 ...
$ Slogan : num 4 4 4 4 4 4 1 1 4 1 ...
$ Zufriedenheit: num 5.12 5.38 6.88 6.25 7 ...
Ich weiß nicht, warum da Anführungszeichen um die Spaltennamen stehen. Erforderlich sind die bestimmt nicht, vielleicht verwirren sie ezANOVA. Das würde ich als erstes ändern und schauen, ob der Fehler dann noch kommt oder nicht mehr. Das andere verwirrende ist das Fehlen der unabhängigen Variablen Alter - es sollte doch eine zweifaktorielle Anova werden? Zuletzt habe ich keine Ahnung, warum die Funktion die Spalte ID brauchen sollte, wenn wir keine within-Analyse machen.Verwende ich jetztCode: Alles auswählen
fit<-ezANOVA(wid ="ID",dv = "Zufriedenheit",between = "Slogan",type = 3,data = dataHypone,return_aov = TRUE)
Das ist hier von meinem Sofa aus gar nicht einzuordnen. Ich würde erstmal die Anführungszeichen weglassen und wenn der Fehler davon unbeeindruckt bleibt Alter und Slogan in faktoren umwandelst und wenn der Fehler auch davon unbeeindruckt bleibt schlage ich vor, dass Du ein reproduzierbares Beispiel einstellst, beispielsweise das Ergebnis vonerhalte ich als Fehler: Fehler in names(dn) <- dnn : Versuch ein Attribut von NULL zu setzen.
Code: Alles auswählen
dput(dataHypone)
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Re: Anova - Fehlende Variablen im Longformat
So, ich habe mir mal das Paket ez installiert und ausprobiert.
Zunächst einmal eine numerische id und zwei numerische UVs:
Wie vermutet beschwert sich die Funktion sofort über die metrischen UVs und nimmt sie nicht als Gruppierungs-, sondern als Covariate.
Wandelt man die ID und die Gruppierungsvariablen in factors um, dannn läuft die Funktion:
HTH,
Bernhard
Zunächst einmal eine numerische id und zwei numerische UVs:
Code: Alles auswählen
library(ez)
bsp <- data.frame(id = 1:75, a = rep(1:5,15), b = rep(1:5, each = 15), c = rnorm(25))
str(bsp)
ezANOVA(data = bsp, dv = c, wid = id, between = list(a,b), type = 2)
Wandelt man die ID und die Gruppierungsvariablen in factors um, dannn läuft die Funktion:
Code: Alles auswählen
library(ez)
bsp <- data.frame(id = factor(1:75), a = factor(rep(1:5,15)), b = factor(rep(1:5, each = 15)), c = rnorm(25))
str(bsp)
ezANOVA(data = bsp, dv = c, wid = id, between = list(a,b), type = 2)
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
-
- Beiträge: 4
- Registriert: Mo Jan 11, 2021 4:49 pm
Re: Anova - Fehlende Variablen im Longformat
Hallo Bernhard,
zunächst: Herzlichen Dank! Anova ist geglückt! Ich konnte alle Hypothesen durchtesten.
Ich bin jetzt an der Interpretation und ggfs. Visualisierung der Ergebnisse.
Jan
zunächst: Herzlichen Dank! Anova ist geglückt! Ich konnte alle Hypothesen durchtesten.
Ich bin jetzt an der Interpretation und ggfs. Visualisierung der Ergebnisse.
Jan