回答:
どのような質問に答えようとしていますか?
進行中のすべての全体的なテストが必要な場合、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
ezPerm
機能を利用してez
いるのでできるようにしていますdv ~ iv1 * iv2 | subj
。それは私にp値を与えますが、著者はその解釈に反対します(私はあなたがこれを手動で実行する方法を説明していることを知っていますが、私は強力なプログラミングの形成がありますが、統計用語の私の知識はちょうど改善し始めています)
@Greg Snowへの+1。彼のノンパラメトリック使用ランク戦略に沿って、順序ロジスティック回帰を使用できます。これにより、複数の要素とそれらの間の相互作用を持つモデルを適合させることができます。関連するSASドキュメントはこちらです。SASでこれを行う方法についてのチュートリアルがUCLAの優れた統計ヘルプWebサイトにあり、ここにインディアナ大学の別のチュートリアルがあります。
clmm()
通常のパッケージで使用する必要があります。