Nicht-parametrische zweifaktorielle ANOVA

Allgemeine Statistik mit R, die Test-Methode ist noch nicht bekannt, ich habe noch keinen Plan!

Moderatoren: EDi, jogo

et75
Beiträge: 9
Registriert: Mi Jun 28, 2017 8:00 am

Nicht-parametrische zweifaktorielle ANOVA

Beitrag von et75 » Mi Jul 24, 2019 7:56 am

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

Benutzeravatar
student
Beiträge: 337
Registriert: Fr Okt 07, 2016 9:52 am

Re: Nicht-parametrische zweifaktorielle ANOVA

Beitrag von student » Mi Jul 24, 2019 1:46 pm

Hallo Laura,

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: https://www.faes.de
Datenanalyse mit R: https://www.r-statistik.de
Ad-Oculos-Projekt: https://www.ad-oculos.faes.de

Habe Mut, dich deines eigenen Verstandes zu bedienen! (Kant)

bigben
Beiträge: 1057
Registriert: Mi Okt 12, 2016 9:09 am

Re: Nicht-parametrische zweifaktorielle ANOVA

Beitrag von bigben » Mi Jul 24, 2019 3:11 pm

Hallo Laura,
et75 hat geschrieben:
Mi Jul 24, 2019 7:56 am
Gleich mehrere Voraussetzungen für parametrische Analysen sind nicht erfüllt, weshalb ich nach nicht-parametrischen Verfahren suche.
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.
einziger Hinweis stammt aus dem R-Buch von Andy Field, dass man seine Niederlage bei so komplexen Designs einfach akzeptieren sollte..
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?

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?
Für einen Tipp wäre ich unheimlich dankbar.
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?
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

et75
Beiträge: 9
Registriert: Mi Jun 28, 2017 8:00 am

Re: Nicht-parametrische zweifaktorielle ANOVA

Beitrag von et75 » Fr Jul 26, 2019 11:50 am

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.
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.
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.
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 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?
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 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

Benutzeravatar
student
Beiträge: 337
Registriert: Fr Okt 07, 2016 9:52 am

Re: Nicht-parametrische zweifaktorielle ANOVA

Beitrag von student » Fr Jul 26, 2019 4:12 pm

Hallo Laura,

zum Punkt
Aufgrund der ungleichen Zellbesetzungen sind dadurch auch die NA-Werte entstanden.
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...
Viele Grüße,
Student
-----------------------------------------------------------------------------------------------------------------------
faes.de: https://www.faes.de
Datenanalyse mit R: https://www.r-statistik.de
Ad-Oculos-Projekt: https://www.ad-oculos.faes.de

Habe Mut, dich deines eigenen Verstandes zu bedienen! (Kant)

bigben
Beiträge: 1057
Registriert: Mi Okt 12, 2016 9:09 am

Re: Nicht-parametrische zweifaktorielle ANOVA

Beitrag von bigben » Sa Jul 27, 2019 10:43 am

et75 hat geschrieben:
Fr Jul 26, 2019 11:50 am
Ich möchte auch gerne über jede einzelne Variable eine Aussage treffen, sodass der Ansatz einer Hauptkomponentenanalyse leider eher nicht in Frage kommt.
Man könnte ja auch für jede abhängige Variable eine eigene Regression rechnen und daraus die Aussagen über die einzelnen Variablen entnehmen.
Über die Funktionen melt() und cast() habe ich meine in ein Wide-Format umgewandelt.
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.

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

et75
Beiträge: 9
Registriert: Mi Jun 28, 2017 8:00 am

Re: Nicht-parametrische zweifaktorielle ANOVA

Beitrag von et75 » Di Jul 30, 2019 11:52 am

Hallo ihr beiden,

nochmals vielen Dank für eure Zeit und Mühe!
Man könnte ja auch für jede abhängige Variable eine eigene Regression rechnen und daraus die Aussagen über die einzelnen Variablen entnehmen.
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.
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.
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...
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.
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)
Heraus kam aber:

Code: Alles auswählen

Fehler: Each row of output must be identified by a unique combination of keys.
Keys are shared for 740 rows:
Ein anderer Versuch (gemäß Field, 2012) war folgender (über eine Hilfsvariable "row", die die Zeilen innerhalb einer Faktorstufenkombination durchnummeriert):

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
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

et75
Beiträge: 9
Registriert: Mi Jun 28, 2017 8:00 am

Fehlermeldung bei nicht-parametrischer zweifaktorieller ANOVA

Beitrag von et75 » Do Aug 01, 2019 12:59 pm

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

Code: Alles auswählen

t2way(formula = AV1 ~ Gruppe*Dauer, data = Mydata, tr = 0.2)
verwende, erhalte ich folgende Fehlermeldung:

Code: Alles auswählen

Fehler in x[[grp[i]]] : attempt to select less than one element in get1index
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

Code: Alles auswählen

x[[grp[i]]]
wohl je nach Funktion etwas unterschiedlich zu sein scheint.

Viele Grüße und vielen Dank,
Laura

jogo
Beiträge: 1474
Registriert: Fr Okt 07, 2016 8:25 am

Re: Nicht-parametrische zweifaktorielle ANOVA

Beitrag von jogo » Do Aug 01, 2019 1:04 pm

Hallo Laura,

hast Du auch dies durchsucht?
https://stackoverflow.com/search?q=atte ... +get1index

Gruß, Jörg

et75
Beiträge: 9
Registriert: Mi Jun 28, 2017 8:00 am

Re: Nicht-parametrische zweifaktorielle ANOVA

Beitrag von et75 » Do Aug 01, 2019 1:23 pm

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

Antworten