双方向のデータ構造を調べたい場合は、対数線形モデルを検討することもできます。
2つのサンプルが一致すると想定し(つまり、2つの一連の位置の間に何らかの依存関係がある)、データが実際にはスコアまたは順序付き応答と見なすことができるカウントであることを考慮に入れる場合(@caracal )、次に、ペアの周辺モデルを確認することもできます。これには通常、正方形の分割表の分析が含まれます。必ずしもこのような正方形のテーブルになるとは限らないかもしれませんが、パッシブな文などの数の上限を決定することもできます。とにかく、一致したペアのモデルについては、Agrestiの第10章、カテゴリデータ分析で詳しく説明しています。正方表の順序カテゴリの関連モデルは、準対称性をテストしています(他の一つのケースからカテゴリの効果の差は、カテゴリスコアの線形トレンドに従う)、条件対称(又はπ Aπa b< πa b、∀、B)、そして、準均一なアソシエーション(等間隔スコアの場合には、均一なローカル会合を意味主対角線、オフリニア・バイ・リニア関連)。順序準対称性(OQS)は線形ロジットモデルの特殊なケースであり、限界均一性のみの単純なモデルと比較できます。πa b> πa b∀ 、B通常の準対称性+周辺均一性対称性であるため、LRテストで成立します。=
Agrestiの表記(頁429)に続いて、我々は考える、変数のスコアを命じX(行)で、変数Y(列で)。aまたはbは任意の行または列を示します。OQSモデルは、次の対数線形モデルとして読み取ります。あなた1≤ ⋯ ≤ U私バツYab
logμab=λ+λa+λb+βub+λab
どこのすべてのためのA < B。名目上のデータのための通常のQSモデルと比較すると、ログμ B = λ + λ X A + λ Y 、B + λ B、λ bは = 0は、我々が課すOQSモデルでは、2つの変数間の独立性を意味しますλ YのBλa b= λb aa < bログμa b= λ + λバツa+ λYb+ λa bλa b= 0λYb- λバツb= βあなたb(したがって、線形トレンドのアイデアを導入します)。等価ロジット表現は、のための≤ B。ログ(πa b/ πb a)= β(ub- Ua)≤ B
場合は、我々はこのモデルの特殊なケースとして、対称性を持っています。場合βは≠ 0、我々は確率的であるマージン、注文したβ > 0のカラム平均が高い平均値(およびそれ以上行と比較されていることを意味| βを|、大きなは、2つのジョイント確率分布との違いは、π Bとπをb a are、これは行と列の周辺分布の違いに反映されます)。β = 0の検定β= 0β≠ 0β> 0| β|πa bπb aβ= 0限界均一性のテストに対応します。推定の解釈簡単である:変数に関するスコアと推定確率Xであり、Xの上のスコアよりも正単位Yは、であるEXP (β X )回逆確率。あなたの特定のケースでは、それがあることを意味βが他にある特定のスピーカー与える影響を定量化することが可能かもしれません。βバツバツYexp(β^x )β^
注目すべきことに、すべてのRコードは、アグレスティのカテゴリカルデータ分析に伴うSマニュアルでローラトンプソンによって提供されました。
以下、Rコードの例をいくつか示します。これを使用して、独自のデータでそれを操作できます。それでは、最初にいくつかのデータを生成してみましょう:
set.seed(56)
d <- as.data.frame(replicate(2, rpois(420, 1.5)))
colnames(d) <- paste("S", 1:2, sep="")
d.tab <- table(d$S1, d$S2, dnn=names(d)) # or xtabs(~S1+S2, d)
library(vcdExtra)
structable(~S1+S2, data=d)
# library(ggplot2)
# ggfluctuation(d.tab, type="color") + labs(x="S1", y="S2") + theme_bw()
視覚的には、クロス分類は次のようになります。
S2 0 1 2 3 4 5 6
S1
0 17 35 31 8 7 3 0
1 41 41 30 23 7 2 0
2 19 43 18 18 5 0 1
3 11 21 9 15 2 1 0
4 0 3 4 1 0 0 0
5 1 0 0 2 0 0 0
6 0 0 0 1 0 0 0
これで、OQSモデルを適合させることができます。glm()
対称性に基本関数とカスタム設計行列を使用したLaura Thompsonとは異なり、gnmパッケージに依存できます。ただし、上記のモデルでを推定するには、数値スコアのベクトルを追加する必要があります。β
library(gnm)
d.long <- data.frame(counts=c(d.tab), S1=gl(7,1,7*7,labels=0:6),
S2=gl(7,7,7*7,labels=0:6))
d.long$scores <- rep(0:6, each=7)
summary(mod.oqs <- gnm(counts~scores+Symm(S1,S2), data=d.long,
family=poisson))
anova(mod.oqs)
ここで、我々はβ = 0.123このように、確率をそのスピーカーBスコア4スピーカーAスコア3である場合EXP (0.123 )= 1.13スピーカーAは、4のスコアを持っていながら、スピーカーBは3のスコアを持っていること回確率。β^= 0.123exp(0.123 )= 1.13
最近、同様の機能を提供しているように見えるcatspec Rパッケージに出くわしましたが、試しませんでした。UseRで良いチュートリアルがありました!このすべてについての2009年:Rの一般化非線形モデルの概要、および付属のビネット、Rの一般化非線形モデルも参照してください:gnmパッケージの概要。
β^
table.10.5 <- data.frame(expand.grid(PreSex=factor(1:4),
ExSex=factor(1:4)),
counts=c(144,33,84,126,2,4,14,29,0,2,6,25,0,0,1,5))
table.10.5$scores <- rep(1:4,each=4)
summary(mod.oqs <- gnm(counts~scores+Symm(PreSex,ExSex), data=table.10.5,
family=poisson)) # beta = -2.857
anova(mod.oqs) # G^2(5)=2.10