Nicht parametrisch für Zweiwege-ANOVA (3x3)

8

Meine abhängige Variable ist kontinuierlich, nicht normal (nach links verschoben nach Shapiro-Wilk-Test). Ich habe zwei unabhängige Variablen (Behandlungsgruppe nach Farbe, Lebensmitteltyp). Innerhalb jeder unabhängigen Variablen gibt es 3 Ebenen. Die Anzahl der Beobachtungen für jede unabhängige Variable ist nicht gleich.

Ich habe nichtparametrische Tests wie den Friedman-Test und den Scheirer-Ray-Hare-Test nachgeschlagen, von denen keiner geeignet erscheint (aufgrund der ungleichen Anzahl von Beobachtungen).

Gibt es alternative Tests, die jemand vorschlagen könnte? Ich benutze SAS.

mbee
quelle

Antworten:

8

Welche Frage versuchst du zu beantworten?

Wenn Sie einen Gesamttest für alles wünschen, was vor sich geht. Die Null ist, dass sowohl die Haupteffekte als auch die Interaktion alle 0 sind. Dann können Sie alle Datenpunkte durch ihre Ränge ersetzen und einfach eine reguläre ANOVA durchführen, um sie mit einem Intercept / Grand Mean zu vergleichen einziges Modell. Dies ist im Grunde, wie viele der nichtparametrischen Tests funktionieren. Wenn Sie die Ränge verwenden, werden die Daten in eine gleichmäßige Verteilung (unter der Null) umgewandelt, und Sie erhalten eine gute Annäherung, indem Sie sie als normal behandeln (der zentrale Grenzwertsatz gilt für die Uniform für die Stichprobe Größen über etwa 5 oder 6).

Für andere Fragen können Sie Permutationstests verwenden. Wenn Sie einen der Haupteffekte und die Interaktion zusammen testen möchten (aber zulassen, dass der andere Haupteffekt ungleich Null ist), können Sie den zu testenden Prädiktor permutieren. Wenn Sie die Interaktion testen möchten, während beide Haupteffekte ungleich Null sind, können Sie nur das reduzierte Modell der Haupteffekte anpassen und die angepassten Werte und Residuen berechnen, dann die Residuen zufällig permutieren und die permutierten Residuen wieder zu addieren Werte angepasst und das vollständige Anova-Modell einschließlich der Interaktion angepasst. Wiederholen Sie dies einige Male, um die Nullverteilung für die Größe des Interaktionseffekts zu erhalten, die mit der Größe des Interaktionseffekts aus den Originaldaten verglichen werden kann.

Möglicherweise gibt es dafür SAS-Code. Ich habe einige grundlegende Tutorials zur Verwendung von SAS für Bootstrap- und Permutationstests gesehen (der schnellste Weg scheint darin zu bestehen, den Datenschritt zu verwenden, um alle Datensätze in einer großen Tabelle zu erstellen und dann by zu verwenden Verarbeitung zur Durchführung der Analysen). Persönlich verwende ich R für diese Art von Dingen, kann also bei der Verwendung von SAS nicht hilfreicher sein.


Bearbeiten

Hier ist ein Beispiel mit R-Code:

> fit1 <- aov(breaks ~ wool*tension, data=warpbreaks)
> summary(fit1)
             Df Sum Sq Mean Sq F value   Pr(>F)    
wool          1    451   450.7   3.765 0.058213 .  
tension       2   2034  1017.1   8.498 0.000693 ***
wool:tension  2   1003   501.4   4.189 0.021044 *  
Residuals    48   5745   119.7                     
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1
> 
> fit2 <- aov(breaks ~ wool + tension, data=warpbreaks)
> 
> tmpfun <- function() {
+   new.df <- data.frame(breaks = fitted(fit2) + sample(resid(fit2)),
+                        wool = warpbreaks$wool,
+                        tension = warpbreaks$tension)
+   fitnew <- aov(breaks ~ wool*tension, data=new.df)
+   fitnew2 <- update(fitnew, .~ wool + tension)
+   c(coef(fitnew), F=anova(fitnew2,fitnew)[2,5])
+ }
> 
> out <- replicate(10000, tmpfun())
> 
> # based on only the interaction coefficients
> mean(out[5,] >= coef(fit1)[5])
[1] 0.002
> mean(out[6,] >= coef(fit1)[6])
[1] 0.0796
> 
> # based on F statistic from full-reduced model
> mean(out[7,] >= anova(fit2,fit1)[2,5])
[1] 0.022
Greg Snow
quelle
1
+1. Tukeys Medianpolitur eignet sich gut für die Anpassung des Modells, wenn dies alles ist, was benötigt wird. Es wäre interessant (aber vielleicht ein wenig rechenintensiv), dies mit einem Permutationstest zu koppeln.
whuber
Danke für die Antworten. Dies ist eher eine explorative Studie - nur um zu untersuchen, ob es Unterschiede in der abhängigen Variablen gibt, die auf beiden unabhängigen Variablen basieren.
mbee
@ GregSnow, welches Paket verwenden Sie in R dafür? Ich benutze die ezPermFunktion von, ezweil es mir erlaubt zu tun dv ~ iv1 * iv2 | subj. Es gibt mir einen p-Wert, aber der Autor rät von seiner Interpretation ab (ich weiß, dass Sie erklären, wie man dies manuell durchführt, aber obwohl ich eine starke Programmierbildung habe, beginnt sich mein Wissen über Statistikbegriffe gerade zu verbessern)
toto_tico
1
@toto_tico, ich verwende keine Add-On-Pakete. Permutationstests sind einfach genug, um nur normalen R-Code zu verwenden. Ich habe oben ein Beispiel mit einem integrierten Datensatz eingefügt.
Greg Snow
@ GregSnow, warum probierst du die Residuenprobe (Resid (fit2))? Ich dachte, dass die Abtastung in der DVD durchgeführt wurde (Warpbreaks $ Breakl). Meine Intuition sagt mir, dass das, was ich in Permutationstests gelesen habe, für einen Faktor war und die Dinge für mehrere Faktoren komplizierter werden.
toto_tico
3

+1 bis @Greg Snow. In Übereinstimmung mit seiner Strategie der nichtparametrischen Verwendung von Rängen können Sie die ordinale logistische Regression verwenden . Auf diese Weise können Sie ein Modell mit mehreren Faktoren und Wechselwirkungen zwischen diesen anpassen. Die entsprechende SAS-Dokumentation finden Sie hier . Es gibt eine Anleitung, wie man dies an den UCLA ausgezeichneten Statistiken Hilfe - Website in SAS tun hier , und ein weiteres Tutorial von der Indiana University hier .

gung - Monica wieder einsetzen
quelle
Beantwortet dieser Ansatz nicht eine andere Frage? In der ANOVA-Einstellung ist die kontinuierliche Variable das Ergebnis, und wir testen die Quadratsummen innerhalb / zwischen Faktoren. In einer ordinalen logistischen Regression versuchen Sie, die Faktorzugehörigkeit anhand der Werte dieser kontinuierlichen Variablen vorherzusagen. Zwar gibt es sicherlich Situationen, in denen Sie ähnliche Schlussfolgerungen ziehen können, aber mir ist nicht klar, dass dies im Allgemeinen äquivalente Verfahren sind. Ebenso wie die Regression von Y = BX nicht immer dieselbe sein wird wie X = BY.
Ryan Simmons
Im Wesentlichen denke ich die Fragen "Sind diese Gruppen nach X unterschiedlich?" und "Wie kann X verwendet werden, um Personen unter diesen Gruppen zu klassifizieren?" wird nur unter ganz bestimmten Umständen gleich sein, und dass Sie die logistische Regression nicht unbedingt durch ANOVA ersetzen und vergleichbare Ergebnisse erzielen können.
Ryan Simmons
@ RyanSimmons, du musst nicht unbedingt etwas klassifizieren. Der Test des OLR-Modells ist ein Test, wenn einige Gruppen typischerweise größeren Y-Werten zugeordnet sind als andere Gruppen. Sie verwenden einfach nur die Ordnungskomponente der Y-Werte. Tests wie Kruskal-Wallis, Mann-Whitney usw. sind Sonderfälle von OLR.
Gung - Reinstate Monica
@gung, was ist mit dem inneren Design-Teil des Problems? Ist es mit einer ordinalen logistischen Regression möglich?
toto_tico
1
@toto_tico, ich habe dir gerade auf dem anderen Thread geantwortet. Sie müssen clmm()im Ordnungspaket verwenden.
Gung - Reinstate Monica