二元配置分散分析(3x3)のノンパラメトリック


8

私の従属変数は連続的で、非正規です(Shapiro-Wilkテストによると左に歪んでいます)。私は2つの独立した変数を持っています(色別のグループ、食品の種類)。各独立変数には3つのレベルがあります。各独立変数の観測数は等しくありません。

私はフリードマン検定やシャイラーレイヘア検定などのノンパラメトリック検定を調べましたが、どちらも適切ではないようです(観測数が異なるため)。

誰かが提案できる代替テストはありますか?SASを使用しています。

回答:


8

どのような質問に答えようとしていますか?

進行中のすべての全体的なテストが必要な場合、nullは主効果と交互作用の両方がすべて0であることを意味します。すべてのデータポイントをそれらのランクに置き換え、通常の分散分析を実行して切片/大平均と比較できます。モデルのみ。これは基本的に、ノンパラメトリックテストの多くが機能し、ランクを使用してデータを(nullの下で)均一な分布に変換し、それを通常のように扱うことによって適切な近似を得ます(中央極限定理はサンプルの均一性に適用されます)約5または6以上のサイズ)。

他の質問については、順列テストを使用できます。主効果の1つと相互作用を一緒にテストする場合(ただし、他の主効果をゼロ以外にすることを許可する場合)、テストする予測子を並べ替えることができます。両方の主効果をゼロ以外にして相互作用をテストしたい場合は、主効果の縮小モデルのみを近似し、近似値と残差を計算してから、残差をランダムに並べ替え、置換された残差をフィットされた値と相互作用を含む完全なanovaモデルをフィットします。これを何度も繰り返して、相互作用効果のサイズのnull分布を取得し、元のデータの相互作用効果のサイズと比較します。

このようなことを行うための既存のSASコードがある可能性があります。ブートストラップと置換テストにSASを使用するいくつかの基本的なチュートリアルを見ました(最も簡単な方法は、データステップを使用して1つの大きなテーブルにすべてのデータセットを作成し、次に分析を行うための処理)。個人的に私はこのタイプのものにRを使用しているので、SASの使用にこれ以上の助けはありません。


編集する

Rコードを使用した例を次に示します。

> 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

1
+1。Tukeyの中央研磨は、それが必要なすべての場合にモデルをフィッティングするのに適しています。それを順列テストと組み合わせるのは興味深いことですが(おそらく少し計算集約的です)。
whuber

回答ありがとうございます。これは探索的研究の詳細です。両方の独立変数に基づいて従属変数に違いがあるかどうかを調べるためだけです。
mbee 2012年

@GregSnow、このためにRでどのパッケージを使用していますか?のezPerm機能を利用してezいるのでできるようにしていますdv ~ iv1 * iv2 | subj。それは私にp値を与えますが、著者はその解釈に反対します(私はあなたがこれを手動で実行する方法を説明していることを知っていますが、私は強力なプログラミングの形成がありますが、統計用語の私の知識はちょうど改善し始めています)
toto_tico

1
@toto_tico、私はアドオンパッケージを使用していません。順列テストは、通常のRコードだけで十分に簡単です。上記の組み込みデータセットを使用した例を含めました。
Greg Snow

@GregSnow、なぜ残差サンプル(resid(fit2))でサンプリングするのですか?サンプリングはdv(warpbreaks $ breakl)で行っていると思いました。私の直感は、順列検定で読んだものは1つの因子についてのものであり、物事は複数の因子についてより複雑になることを教えてくれます。
toto_tico 2015年

3

@Greg Snowへの+1。彼のノンパラメトリック使用ランク戦略に沿って、順序ロジスティック回帰を使用できます。これにより、複数の要素とそれらの間の相互作用を持つモデルを適合させることができます。関連するSASドキュメントはこちらです。SASでこれを行う方法についてのチュートリアルがUCLAの優れた統計ヘルプWebサイトにありここにインディアナ大学の別のチュートリアルがあります


しかし、このアプローチは別の質問に答えていませんか?ANOVA設定では、連続変数が結果であり、因子内/因子間の二乗和をテストしています。順序ロジスティック回帰では、その連続変数の値に従って因子のメンバーシップを予測しようとしています。これらが同様の推論を与える状況は確かにありますが、これらが一般的な同等の手順であることは私には明らかではありません。Y = BXの回帰が常にX = BYと同じになるわけではないのと同じように。
Ryan Simmons

基本的に、「これらのグループはXによって異なりますか」という質問だと思います。および「Xを使用して、これらのグループに個人を分類するにはどうすればよいですか?」非常に特殊な状況でのみ同じであり、ロジスティック回帰の代わりにANOVAを使用して、同等の結果を得ることができるとは限りません。
Ryan Simmons、

@RyanSimmons、あなたは必ずしも何かを分類する必要はありません。OLRモデルのテストは、一部のグループが他のグループよりも一般的に大きなY値に関連付けられているかどうかのテストです。Y値の順序コンポーネントのみを使用しています。クラスカルウォリス、マンホイットニーなどの検定は、OLRの特殊なケースです。
ガン-モニカの回復

@gung、問題の設計内の部分はどうですか?通常のロジスティック回帰でそれは可能ですか?
toto_tico 2015年

1
@toto_tico、私は他のスレッドであなたに答えました。clmm()通常のパッケージで使用する必要があります。
ガン-モニカの回復
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.