Nicht-parametrische zweifaktorielle ANOVA
Nicht-parametrische zweifaktorielle ANOVA
Liebe Forenmitglieder,
ich starte gerade einen neuen Versuch, mich in R einzuarbeiten, da ich mit den herkömmlichen SPSS-Funktionen nicht weiterkomme.
Leider stoße ich auch direkt an meine Grenzen, was R betrifft, und wollte euch deshalb um Rat bitte.
In meinem Datensatz habe ich zwei UVs und vier AVs. Gleich mehrere Voraussetzungen für parametrische Analysen sind nicht erfüllt, weshalb ich nach nicht-parametrischen Verfahren suche.
Die AVs korrelieren übrigens untereinander, sodass ich am liebsten einen zweifaktoriellen multivariaten Ansatz wählen würde. Leider habe ich dazu keine R-Funktion gefunden, mein einziger Hinweis stammt aus dem R-Buch von Andy Field, dass man seine Niederlage bei so komplexen Designs einfach akzeptieren sollte..
Ich hatte mir daher überlegt, nun doch separate nicht-parametrische zweifaktorielle ANOVAs zu rechnen.
Hierzu bin ich auf die Funktionen t2way oder pbad2way gestoßen.
Leider sind die Zellbesetzungen in meinem Datensatz extrem unterschiedlich, ist diese Art der Analyse dann überhaupt möglich?
Außerdem habe ich es bisher noch nicht geschafft, die NA-Werte aus dem Datensatz zu streichen, R antwortet mir deshalb nur, dass die Zellbesetzungen nicht übereinstimmen und bricht die Analyse ab.
Meine Fragen wären daher noch einmal ganz konkret:
- Wie kann ich die fehlenden Werte im Datensatz als solche kennzeichnen, sodass sie nicht die Analyse behindert?
- Und kann ich die nicht-parametrischen ANOVAs mit meinen unterschiedlichen Stichprobengrößen überhaupt berechnen?
Für einen Tipp wäre ich unheimlich dankbar.
Viele Grüße und einen schönen Start in den Tag,
Laura
ich starte gerade einen neuen Versuch, mich in R einzuarbeiten, da ich mit den herkömmlichen SPSS-Funktionen nicht weiterkomme.
Leider stoße ich auch direkt an meine Grenzen, was R betrifft, und wollte euch deshalb um Rat bitte.
In meinem Datensatz habe ich zwei UVs und vier AVs. Gleich mehrere Voraussetzungen für parametrische Analysen sind nicht erfüllt, weshalb ich nach nicht-parametrischen Verfahren suche.
Die AVs korrelieren übrigens untereinander, sodass ich am liebsten einen zweifaktoriellen multivariaten Ansatz wählen würde. Leider habe ich dazu keine R-Funktion gefunden, mein einziger Hinweis stammt aus dem R-Buch von Andy Field, dass man seine Niederlage bei so komplexen Designs einfach akzeptieren sollte..
Ich hatte mir daher überlegt, nun doch separate nicht-parametrische zweifaktorielle ANOVAs zu rechnen.
Hierzu bin ich auf die Funktionen t2way oder pbad2way gestoßen.
Leider sind die Zellbesetzungen in meinem Datensatz extrem unterschiedlich, ist diese Art der Analyse dann überhaupt möglich?
Außerdem habe ich es bisher noch nicht geschafft, die NA-Werte aus dem Datensatz zu streichen, R antwortet mir deshalb nur, dass die Zellbesetzungen nicht übereinstimmen und bricht die Analyse ab.
Meine Fragen wären daher noch einmal ganz konkret:
- Wie kann ich die fehlenden Werte im Datensatz als solche kennzeichnen, sodass sie nicht die Analyse behindert?
- Und kann ich die nicht-parametrischen ANOVAs mit meinen unterschiedlichen Stichprobengrößen überhaupt berechnen?
Für einen Tipp wäre ich unheimlich dankbar.
Viele Grüße und einen schönen Start in den Tag,
Laura
Re: Nicht-parametrische zweifaktorielle ANOVA
Hallo Laura,
zu den NA's kann ich Dir folgenden Hinweis geben und vielleicht kannst Du darüber den nächsten Schritt gehen?
zu den NA's kann ich Dir folgenden Hinweis geben und vielleicht kannst Du darüber den nächsten Schritt gehen?
Viele Grüße,
Student
-----------------------------------------------------------------------------------------------------------------------
faes.de, Datenanalyse mit R & das Ad-Oculos-Projekt
Das Ad-Oculos-Projekt auf YouTube
Habe Mut, dich deines eigenen Verstandes zu bedienen! (Kant)
Student
-----------------------------------------------------------------------------------------------------------------------
faes.de, Datenanalyse mit R & das Ad-Oculos-Projekt
Das Ad-Oculos-Projekt auf YouTube
Habe Mut, dich deines eigenen Verstandes zu bedienen! (Kant)
Re: Nicht-parametrische zweifaktorielle ANOVA
Hallo Laura,
Vielleicht hilft es, die Art der Studie, die erhobenen Daten samt Skalenniveaus, die Zahl der Beobachtungen und die eigentliche Fragestellung zu erklären, um selbst wieder mit etwas mehr Abstand darüber nachdenken zu können?
Vielleicht wären auch vier getrennte Regressionen zielführend für die Fragestellung? Das kann nur beantworten, wer die Fragestellung kennt. Wir also (noch?) nicht.
Viele Grüße zurück,
Bernhard
Wenn Du von uns Vorschläge für alternative Auswertefunktionen hören willst, wäre es vielleicht ganz gut, dazu zu schreiben, welche Voraussetzungen nicht erfüllt sind.
Wenn man seine Probleme nicht mit dem Standardbaukasten der Lösungen angehen kann, sollte man sich die Frage stellen, wo genau man falsch abgebogen ist und warum man jetzt an einer Stelle steht, die die SPSS-Programmierer nicht vorgesehen haben. Ist es wirklich so ein einzigartiges Problem? Vielleicht denkst Du auch viel komplizierter als nötig, weil Du vor lauter Bäumen den Wald nicht mehr siehst?einziger Hinweis stammt aus dem R-Buch von Andy Field, dass man seine Niederlage bei so komplexen Designs einfach akzeptieren sollte..
Vielleicht hilft es, die Art der Studie, die erhobenen Daten samt Skalenniveaus, die Zahl der Beobachtungen und die eigentliche Fragestellung zu erklären, um selbst wieder mit etwas mehr Abstand darüber nachdenken zu können?
Das mag jetzt ein völlig abwegiger Gedanke sein, aber vielleicht könntest Du Deine vier korrelierten Abhängigen ja mit einer Hauptkomponentenanalyse auf eine gemeinsame erste Hauptkomponente reduzieren und hättest dann wieder das gesamte Spektrum der Verfahren, die nur eine AV haben, zur Auswahl?Für einen Tipp wäre ich unheimlich dankbar.
Vielleicht wären auch vier getrennte Regressionen zielführend für die Fragestellung? Das kann nur beantworten, wer die Fragestellung kennt. Wir also (noch?) nicht.
Viele Grüße zurück,
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: Nicht-parametrische zweifaktorielle ANOVA
Hallo Bernhard und student,
erst einmal ein großes Dankeschön für eure schnellen Antworten!
Bei dem Datensatz handelt es sich um 740 Personen, die verschiedene Fragebogen (unter anderem zur Persönlichkeit, gesundheitlichen Beschwerden, Verhalten etc.) ausgefüllt hatten. In der Studie möchte ich untersuchen, ob sowohl das individuelle Persönlichkeitsmuster (Faktor 1, 4 Faktorstufen, nominalskaliert) als auch die Dauer gesundheitlicher Beschwerden (Faktor 2, 4 Faktorstufen, ordinalskaliert) einen Einfluss auf die Intensität der gesundheitlichen Beschwerden haben. Ein Hauptproblem ist wohl die extrem ungleiche Zellbesetzung. Beispielsweise habe ich in zwei Zellen ein n > 100, in zwei weiteren wiederum ein n = 4 oder 5.
Alle vier Variablen korrelieren signifikant positiv miteinander (zwischen rs = .54 und rs = .72). Dies spräche für MANOVA, allerdings sind die AV’s für die einzelnen Gruppenkombinationen nur in wenigen Fällen normalverteilt. Zudem wird auch der Box’s M-Test signifikant (p < .001), wodurch ich nicht von homogenen Varianz-Kovarianz-Matrizen ausgehen kann. Der Levene-Test ist ebenfalls für drei der vier AV’s signifikant.
Das andere Problem betrifft mein Datenformat bzw. die fehlenden Werte. In meinem letzten Post hatte ich mich wohl etwas unglücklich ausgedrückt: Über die Funktionen melt() und cast() habe ich meine in ein Wide-Format umgewandelt. Aufgrund der ungleichen Zellbesetzungen sind dadurch auch die NA-Werte entstanden. D.h. es sind eigentlich keine „echten“ NAs, sondern durch die Umformatierung erzeugte. Deshalb bin ich bei den Tipps und Tricks leider nicht fündig geworden (dennoch vielen Dank für den Hinweis, Student!). Gibt es hier eine Möglichkeit, R zu sagen, dass die NAs gestrichen werden sollen?
Nochmals vielen Dank für eure ganze bisherige Mühe und Zeit.
Viele Grüße, Laura
erst einmal ein großes Dankeschön für eure schnellen Antworten!
Bei dem Datensatz handelt es sich um 740 Personen, die verschiedene Fragebogen (unter anderem zur Persönlichkeit, gesundheitlichen Beschwerden, Verhalten etc.) ausgefüllt hatten. In der Studie möchte ich untersuchen, ob sowohl das individuelle Persönlichkeitsmuster (Faktor 1, 4 Faktorstufen, nominalskaliert) als auch die Dauer gesundheitlicher Beschwerden (Faktor 2, 4 Faktorstufen, ordinalskaliert) einen Einfluss auf die Intensität der gesundheitlichen Beschwerden haben. Ein Hauptproblem ist wohl die extrem ungleiche Zellbesetzung. Beispielsweise habe ich in zwei Zellen ein n > 100, in zwei weiteren wiederum ein n = 4 oder 5.
Bei den gesundheitlichen Beschwerden handelt es sich um 4 Variablen (meine AV’s). Drei der vier AV's sind streng genommen ordinalskaliert (obwohl sie in der Forschungsliteratur oft metrisch behandelt werden.) Eigentlich wäre allein dadurch MANOVA schon ausgeschlossen.Wenn Du von uns Vorschläge für alternative Auswertefunktionen hören willst, wäre es vielleicht ganz gut, dazu zu schreiben, welche Voraussetzungen nicht erfüllt sind.
Alle vier Variablen korrelieren signifikant positiv miteinander (zwischen rs = .54 und rs = .72). Dies spräche für MANOVA, allerdings sind die AV’s für die einzelnen Gruppenkombinationen nur in wenigen Fällen normalverteilt. Zudem wird auch der Box’s M-Test signifikant (p < .001), wodurch ich nicht von homogenen Varianz-Kovarianz-Matrizen ausgehen kann. Der Levene-Test ist ebenfalls für drei der vier AV’s signifikant.
Ich möchte auch gerne über jede einzelne Variable eine Aussage treffen, sodass der Ansatz einer Hauptkomponentenanalyse leider eher nicht in Frage kommt. Da ich bisher kein Verfahren gefunden habe, dass mir eine nicht-parametrische multivariate und multifaktorielle Analyse erlaubt (auch nicht in R), dachte ich an separate nicht-parametrische, zweifaktorielle ANOVAs. Hier bin ich dann über die oben genannten Funktionen t2way oder pbad2way gestolpert. Vielleicht denke ich auch tatsächlich zu kompliziert, und es gibt doch eine einfachere Lösung?Das mag jetzt ein völlig abwegiger Gedanke sein, aber vielleicht könntest Du Deine vier korrelierten Abhängigen ja mit einer Hauptkomponentenanalyse auf eine gemeinsame erste Hauptkomponente reduzieren und hättest dann wieder das gesamte Spektrum der Verfahren, die nur eine AV haben, zur Auswahl?
Das andere Problem betrifft mein Datenformat bzw. die fehlenden Werte. In meinem letzten Post hatte ich mich wohl etwas unglücklich ausgedrückt: Über die Funktionen melt() und cast() habe ich meine in ein Wide-Format umgewandelt. Aufgrund der ungleichen Zellbesetzungen sind dadurch auch die NA-Werte entstanden. D.h. es sind eigentlich keine „echten“ NAs, sondern durch die Umformatierung erzeugte. Deshalb bin ich bei den Tipps und Tricks leider nicht fündig geworden (dennoch vielen Dank für den Hinweis, Student!). Gibt es hier eine Möglichkeit, R zu sagen, dass die NAs gestrichen werden sollen?
Nochmals vielen Dank für eure ganze bisherige Mühe und Zeit.
Viele Grüße, Laura
Re: Nicht-parametrische zweifaktorielle ANOVA
Hallo Laura,
zum Punkt
zum Punkt
Wenn ich Dich richtig verstehe und in meine "Erfahrungsschublade" schaue, habe ich die besten Erfahrungen gemacht, wenn ich mir vor einer long/wide-Transformation Gedanken über den Umgang mit NA's mache. Das schloss sogar ein, wenn bestimmte Merkmale besonders schwach besetzt waren, auf diese zu verzichten. Durch die Transformation dürfen keine neuen NA's auftauchen...Aufgrund der ungleichen Zellbesetzungen sind dadurch auch die NA-Werte entstanden.
Viele Grüße,
Student
-----------------------------------------------------------------------------------------------------------------------
faes.de, Datenanalyse mit R & das Ad-Oculos-Projekt
Das Ad-Oculos-Projekt auf YouTube
Habe Mut, dich deines eigenen Verstandes zu bedienen! (Kant)
Student
-----------------------------------------------------------------------------------------------------------------------
faes.de, Datenanalyse mit R & das Ad-Oculos-Projekt
Das Ad-Oculos-Projekt auf YouTube
Habe Mut, dich deines eigenen Verstandes zu bedienen! (Kant)
Re: Nicht-parametrische zweifaktorielle ANOVA
Man könnte ja auch für jede abhängige Variable eine eigene Regression rechnen und daraus die Aussagen über die einzelnen Variablen entnehmen.
Es gibt Funktionen, die gerne Daten im long-Format sehen und solche, die gerne Daten im wide-Format sehen. Solange also die anzuwendende Methode nicht klar ist, gibt es noch keine Funktion und solange die Funktion noch nicht klar ist, erscheint mir die Umwandlung verfrüht. Ich finde, den Kopf darüber solltest Du Dir später machen.Über die Funktionen melt() und cast() habe ich meine in ein Wide-Format umgewandelt.
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: Nicht-parametrische zweifaktorielle ANOVA
Hallo ihr beiden,
nochmals vielen Dank für eure Zeit und Mühe!
Die Überlegung, eine eigene Analyse für jede AV zu rechnen, hat mich dann aber nochmal zum Nachdenken gebracht. Ich kann für jede AV eine einzelne Hypothese ableiten, wodurch der univariate Ansatz auch gar nicht so ungeeignet wäre.
Deshalb möchte ich mich noch einmal an den nicht-parametrischen zweifaktoriellen ANOVAs versuchen, die im WRS2 Paket von Wilcox zu finden sind.
Hierzu müssen die Daten - sofern ich das richtig verstanden habe - in ein Wide-Format umgewandelt werden.
Ich habe mich übrigens auch an der Funktion spread() versucht, um die Daten zu transformieren.
Heraus kam aber:
Ein anderer Versuch (gemäß Field, 2012) war folgender (über eine Hilfsvariable "row", die die Zeilen innerhalb einer Faktorstufenkombination durchnummeriert):
Ich erhalte dann meine 16 Faktorstufenkombinationen als Spalten mit jeweils 135 Zeilen, da die größte Zellbesetzung ein n = 135 hat. Hat eine Kombination nur n = 5, werden die restlichen 130 Zeilen mit NA aufgefüllt.
Kann man dieses Problem irgendwie umgehen? Oder bedeutet es, dass ich meine nicht-parametrische ANOVA nur mit gleicher Zellbesetzung rechnen kann?
Viele Grüße,
Laura
nochmals vielen Dank für eure Zeit und Mühe!
Vielen Dank für deinen Vorschlag, Bernhard! Ich habe mir dazu auch einige Gedanken gemacht und auch noch mal die Fachliteratur in meinem Bereich gewälzt (und nicht zuletzt das "übliche" Vorgehen an unserem Lehrstuhl berücksichtigt). Mein Fazit war, dass ANOVA/MANOVA für meine Art der Fragestellung inkl. kategorialen Prädiktoren am häufigsten angewendet wurden, Regressionen dagegen eher, wenn es sich um metrische Prädiktoren handelte. Deshalb tendiere ich weiterhin zu ANOVA/MANOVA.Man könnte ja auch für jede abhängige Variable eine eigene Regression rechnen und daraus die Aussagen über die einzelnen Variablen entnehmen.
Die Überlegung, eine eigene Analyse für jede AV zu rechnen, hat mich dann aber nochmal zum Nachdenken gebracht. Ich kann für jede AV eine einzelne Hypothese ableiten, wodurch der univariate Ansatz auch gar nicht so ungeeignet wäre.
Deshalb möchte ich mich noch einmal an den nicht-parametrischen zweifaktoriellen ANOVAs versuchen, die im WRS2 Paket von Wilcox zu finden sind.
Hierzu müssen die Daten - sofern ich das richtig verstanden habe - in ein Wide-Format umgewandelt werden.
Danke für den Hinweis, student! Ich überlege tatsächlich, ob ich den 2. Faktor (Dauer der gesundheitlichen Probleme) nicht dichotomisiere, sodass nur noch 8 statt 16 Zellen bleiben.Wenn ich Dich richtig verstehe und in meine "Erfahrungsschublade" schaue, habe ich die besten Erfahrungen gemacht, wenn ich mir vor einer long/wide-Transformation Gedanken über den Umgang mit NA's mache. Das schloss sogar ein, wenn bestimmte Merkmale besonders schwach besetzt waren, auf diese zu verzichten. Durch die Transformation dürfen keine neuen NA's auftauchen...
Ich habe mich übrigens auch an der Funktion spread() versucht, um die Daten zu transformieren.
Code: Alles auswählen
> Mydata_wide <- spread(mydata, key = Gruppe, value = AV1)
Code: Alles auswählen
Fehler: Each row of output must be identified by a unique combination of keys.
Keys are shared for 740 rows:
Code: Alles auswählen
install.packages("WRS2")
library(WRS2)
install.packages("reshape")
library(reshape)
Mydata.Melt<-melt(Mydata, id = c("row", "Gruppe", "Dauer"), measured = c("AV1"))
Mydata.Wide<-cast(Mydata.Melt, row ~ Gruppe + Dauer)
Mydata.Wide$row<-NULL
Kann man dieses Problem irgendwie umgehen? Oder bedeutet es, dass ich meine nicht-parametrische ANOVA nur mit gleicher Zellbesetzung rechnen kann?
Viele Grüße,
Laura
Fehlermeldung bei nicht-parametrischer zweifaktorieller ANOVA
Hallo zusammen,
ich habe noch weiter recherchiert und auch ein Paper zum WRS2-Paket gelesen.
Das geforderte Datenformat ist hier nicht explizit angegeben, weshalb ich davon ausgehe, dass auch das long format funktionieren sollte.
Wenn ich nun allerdings die Formel
verwende, erhalte ich folgende Fehlermeldung:
Bezieht sich die Meldung auf Faktor 1 "Gruppe"? Was ist damit gemeint, und kann ich diesen Fehler beheben?
Aus Posts im Internet zu dieser Fehlermeldung bin ich noch nicht ganz schlau geworden, da ihr Beginn, also in meinem Fall
wohl je nach Funktion etwas unterschiedlich zu sein scheint.
Viele Grüße und vielen Dank,
Laura
ich habe noch weiter recherchiert und auch ein Paper zum WRS2-Paket gelesen.
Das geforderte Datenformat ist hier nicht explizit angegeben, weshalb ich davon ausgehe, dass auch das long format funktionieren sollte.
Wenn ich nun allerdings die Formel
Code: Alles auswählen
t2way(formula = AV1 ~ Gruppe*Dauer, data = Mydata, tr = 0.2)
Code: Alles auswählen
Fehler in x[[grp[i]]] : attempt to select less than one element in get1index
Aus Posts im Internet zu dieser Fehlermeldung bin ich noch nicht ganz schlau geworden, da ihr Beginn, also in meinem Fall
Code: Alles auswählen
x[[grp[i]]]
Viele Grüße und vielen Dank,
Laura
Re: Nicht-parametrische zweifaktorielle ANOVA
Hallo Laura,
hast Du auch dies durchsucht?
https://stackoverflow.com/search?q=atte ... +get1index
Gruß, Jörg
hast Du auch dies durchsucht?
https://stackoverflow.com/search?q=atte ... +get1index
Gruß, Jörg
Re: Nicht-parametrische zweifaktorielle ANOVA
Hallo Jörg,
danke dir für den Link! Mit Stackoverflow hatte ich es tatsächlich schon als erstes versucht.
Ich fürchte, mir fehlt hier leider noch das nötige R-Basiswissen, um diese Beispiele auf meine Daten zu übertragen.
Könnte der Fehler an meinem Datenformat liegen? Müsste ich die Faktoren/AVs zuerst noch anderweitig definieren?
Viele Grüße,
Laura
danke dir für den Link! Mit Stackoverflow hatte ich es tatsächlich schon als erstes versucht.
Ich fürchte, mir fehlt hier leider noch das nötige R-Basiswissen, um diese Beispiele auf meine Daten zu übertragen.
Könnte der Fehler an meinem Datenformat liegen? Müsste ich die Faktoren/AVs zuerst noch anderweitig definieren?
Viele Grüße,
Laura