3レベルの分割表を処理する適切な方法


12

いくつかの種、それらが収集された宿主植物、およびその収集が雨の日に起こったかどうか(これは実際に重要です!)のカウントデータを含む3レベルの分割表があります。Rを使用すると、偽のデータは次のようになります。

count    <- rpois(8, 10)
species  <- rep(c("a", "b"), 4)
host     <- rep(c("c","c", "d", "d"), 2)
rain     <- c(rep(0,4), rep(1,4))
my.table <- xtabs(count ~ host + species + rain)


, , rain = 0

    species
host  a  b
   c 12 15
   d 10 13

, , rain = 1

    species
host  a  b
   c 11 12
   d 12  7

今、私は2つのことを知りたい:種は宿主植物に関連していますか?「雨かどうか」はこの関連付けに影響しますか?私はこれに使用loglm()MASSました:

 # Are species independent to host plants, given the effect of rain?
loglm(~species + host + rain + species*rain + host*rain, data=my.table)

 # Given any relationship between host plants and species, does rain change it?
loglm(~species + host + rain + species*host)

これは私の快適さのレベルから少し外れているので、モデルを正しく設定し、これらの質問にアプローチするための最良の方法であることを確認したかったのです。

回答:


10

最初の質問を解釈する方法は2つあります。これは、質問した2つの方法に反映されています。「種は宿主植物に関連していますか?」そして、「雨の影響を考えると、種は宿主植物に依存していないのですか?」

最初の解釈は、共同独立のモデルに対応します。これは、種と宿主は依存しているが、雨が降ったかどうかは共同で独立していると述べています。

pshr=pshpr

pshr(s,h,r)shrpsh(s,h,)pr

2番目の解釈は、条件付き独立性のモデルに対応します。これは、雨が降ったかどうかにかかわらず、種と宿主は独立していると述べています。

psh|r=ps|rph|rpshr=psrphr/pr

psh|r(s,h,r)r

Rでこれらのモデルをテストできます(loglinうまく動作しますが、私はよりよく知っていますglm):

count <- c(12,15,10,13,11,12,12,7)
species <- rep(c("a", "b"), 4)
host <- rep(c("c","c", "d", "d"), 2)
rain <- c(rep(0,4), rep(1,4))
my.table <- xtabs(count ~ host + species + rain)
my.data <- as.data.frame.table(my.table)
mod0 <- glm(Freq ~ species + host + rain, data=my.data, family=poisson())
mod1 <- glm(Freq ~ species * host + rain, data=my.data, family=poisson())
mod2 <- glm(Freq ~ (species + host) * rain, data=my.data, family=poisson())
anova(mod0, mod1, test="Chi") #Test of joint independence
anova(mod0, mod2, test="Chi") #Test of conditional independence

mod1mod2mod0pshr=psphprsummary(mod2)

最初の質問にアプローチする別の方法はfisher.test(xtabs(count ~ host + species))、折りたたまれた2x2テーブルでフィッシャーの正確検定()を実行するか、mantelhaen.test(xtabs(count ~ host + species + rain))2層2x2テーブルでマンテルヘンツェルテスト()を実行するか、層化を順列する置換テストを記述することです(2番目の解釈)。

2番目の質問を言い換えると、種と宿主の関係は雨が降ったかどうかに依存しますか?

mod3 <- glm(Freq ~ species*host*rain - species:host:rain, data=my.data, family=poisson())
mod4 <- glm(Freq ~ species*host*rain, data=my.data, family=poisson())
anova(mod3, mod4, test=”Chi”)
pchisq(deviance(mod3), df.residual(mod3), lower=F)

完全なモデルmod4は飽和状態になっていますが、mod3上記で行ったような逸脱を調べることで、問題の効果をテストできます。


Lockedoff、特にソート私自身の考えから私を助けてくれてありがとう、条件付きと共同独立モデルとの違いWRT
ワットデビッド・

1

hostrainhostrain

Rコマンドは次のようになります。

glm(式=種〜ホスト+雨、家族=二項(ロジット)、重み=カウント)

p


1
ロジスティック回帰は問題ないように見えますが、行と列の合計が修正されるという追加の制約があります。これは、ポアソンデータの場合ではない場合があります。答えはそれほど変わらないと思います。
-suncoolsu

1

最初は、veganパッケージから制約付きの順序付け手法の1つを試すことを提案しましたが、実際には2つの分割表があるため、これが役立つとは思いません。この例の 2番目の部分[PDF:Rデモンストレーション-カテゴリ分析]が役立つことを願っています。


リンクが壊れていると思います、あなたはここでこのカテゴリー的なものを意味しましたか?役に立った、ありがとう!
デビッドw

はい、URLのスペースが壊れているようです。
ILS
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.