i具有一组具有二进制响应(0和1)的数据,两个分类变量(一个具有两个级别,另一个具有四个级别)。
library(data.table)
data<-data.table(Factor1=rep(c("A","B","C","D"),each=36),
Factor2=rep(c(rep("Red",18),rep("Blue",18)),4),
Response=rep(c(rep(1,11),rep(0,7),rep(0,18)),4))
我试图用glm()
对此进行分析,但我不确定是最好的方法。
model<-glm(Response~Factor1+Factor2,family = binomial(),data=data)
summary(model)
Call:
glm(formula = Response ~ Factor1 + Factor2, family = binomial(),
data = data)
Deviance Residuals:
Min 1Q Median 3Q Max
-1.37438 -0.00008 -0.00008 0.99245 0.99245
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.957e+01 1.267e+03 -0.015 0.988
Factor1B 8.942e-15 6.838e-01 0.000 1.000
Factor1C 7.681e-15 6.838e-01 0.000 1.000
Factor1D 7.345e-15 6.838e-01 0.000 1.000
Factor2Red 2.002e+01 1.267e+03 0.016 0.987
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 177.264 on 143 degrees of freedom
Residual deviance: 96.228 on 139 degrees of freedom
AIC: 106.23
Number of Fisher Scoring iterations: 18
据此,系数都不重要。但是我看到了数据,显然"红色"one_answers"蓝色"之间存在差异。
data[,sum(Response),by=c("Factor1","Factor2")]
Factor1 Factor2 V1
1: A Red 11
2: A Blue 0
3: B Red 11
4: B Blue 0
5: C Red 11
6: C Blue 0
7: D Red 11
8: D Blue 0
我期望系数因子2很重要,但事实并非如此。我认为这也许是因为此系数的埃文塔德错误很高。
如果我检查几率比率,我会发现该系数的值很高。但是我不知道这是否足以说是红色或蓝色的显着影响。
exp(cbind(coef(model)))
[,1]
(Intercept) 3.181005e-09
Factor1B 1.000000e+00
Factor1C 1.000000e+00
Factor1D 1.000000e+00
Factor2Red 4.940037e+08
您是否建议另一种分析此方法?
因子2红色与蓝色很重要。我相信逻辑模型可能是不稳定的,因为facter2 = blue的响应的平均值和标准偏差为0。您可以运行Fisher的精确测试 - 请参阅https://stat.ethz.ch/r-manual/r的文档。-devel/library/stats/html/fisher.test.html
尝试以下操作:
fisher.test(data$Factor2, data$Response, conf.level = 0.95)$conf.int
这是一个有益的情节:
library(ggplot2)
data$Factor1Factor2 <- interaction(data$Factor1, data$Factor2)
ggplot(data, aes(x = Factor1Factor2, y = Response, fill = Factor1)) +
geom_boxplot()