更新:私の問題が準完全分離と呼ばれていることがわかったので、これを反映するように質問を更新しました(Aaronに感謝)。
私は29人の人間の参加者(因子code
)が一連の試行に取り組みresponse
、1または0 であった実験からのデータセットを持っていp.validity
ます。type
(肯定と拒否)、およびcounterexamples
(少数と多数):
d.binom <- read.table("http://pastebin.com/raw.php?i=0yDpEri8")
str(d.binom)
## 'data.frame': 464 obs. of 5 variables:
## $ code : Factor w/ 29 levels "A04C","A14G",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ response : int 1 1 1 1 0 1 1 1 1 1 ...
## $ counterexamples: Factor w/ 2 levels "few","many": 2 2 1 1 2 2 2 2 1 1 ...
## $ type : Factor w/ 2 levels "affirmation",..: 1 2 1 2 1 2 1 2 1 2 ...
## $ p.validity : Factor w/ 2 levels "invalid","valid": 1 1 2 2 1 1 2 2 1 1 ...
全体として、少数の0のみがあります。
mean(d.binom$response)
## [1] 0.9504
仮説の1つは、の影響があるということですvalidity
が、予備分析では、の影響がある可能性があることが示唆されていcounterexamples
ます。従属データがあるので(各参加者がすべての試験に取り組みました)、データにGLMMを使用したいと思います。残念ながら、counterexamples
(少なくとも1つのレベルについて)データを準完全に分離します。
with(d.binom, table(response, counterexamples))
## counterexamples
## response few many
## 0 1 22
## 1 231 210
これはモデルにも反映されています。
require(lme4)
options(contrasts=c('contr.sum', 'contr.poly'))
m2 <- glmer(response ~ type * p.validity * counterexamples + (1|code),
data = d.binom, family = binomial)
summary(m2)
## [output truncated]
## Fixed effects:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 9.42 831.02 0.01 0.99
## type1 -1.97 831.02 0.00 1.00
## p.validity1 1.78 831.02 0.00 1.00
## counterexamples1 7.02 831.02 0.01 0.99
## type1:p.validity1 1.97 831.02 0.00 1.00
## type1:counterexamples1 -2.16 831.02 0.00 1.00
## p.validity1:counterexamples1 2.35 831.02 0.00 1.00
## type1:p.validity1:counterexamples1 2.16 831.02 0.00 1.00
パラメータの標準エラーは非常に異常です。私の最終的な目標は特定の影響が重要かどうかを評価することなので、標準誤差はまったく重要ではありません。
- 準完全分離をどのように処理できますか?私が欲しいのは、特定の効果が重要であるかどうかを判断できる見積もりを取得することです(たとえば、
PRmodcomp
from package を使用しますpkrtest
が、これはここで説明されていない別のステップです)。
他のパッケージを使用するアプローチも問題ありません。