我有一个数据集plink.raw,我正在测试maker CN00020133 (有3级0、1、2)是否与phenotype5相关联。我想使用GLM或fisher提取测试来比较0 vs 1和2 vs1:
table(plink.raw$phenotype5,plink.raw$CN00020133)
1 0 2
0 3559 0 7
1 14806 54 123发布于 2019-12-15 18:51:59
你有一个完全分离的例子,也被称为哈克-唐纳效应发生。如果您CN00020133==0,它们都有1作为表型,这使得很难估计的标准误差的系数。上面有相当多的资料,比如Alexej的博客,布赖恩·里普利( Brian Ripley ),本·博尔克笔记。
如果您需要检验"1“效应的显着性,一个解决方案是使用似然比检验:
df = rbind(
data.frame(phenotype=rep(0:1,c(3559,14806)),CN00020133="1"),
data.frame(phenotype=rep(0:1,c(0,54)),CN00020133="0")
)
anova(glm(phenotype ~ CN00020133,data=df,family=binomial),test="Chisq")
Analysis of Deviance Table
Model: binomial, link: logit
Response: phenotype
Terms added sequentially (first to last)
Df Deviance Resid. Df Resid. Dev Pr(>Chi)
NULL 18418 18082
CN00020133 1 23.227 18417 18059 1.44e-06 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1与fisher测试相比,这给出了不同的p值,因为它是不同的分布(二项分布与超几何分布)。但是,或多或少您可以得出结论,使用"0“作为参考,有一个附加的"1”效应。
费思的逻辑回归在R中有一个实现,你可以试着去看,但我必须说我对此不太熟悉:
library("logistf")
logistf(phenotype ~ CN00020133,data=df,family=binomial)https://stackoverflow.com/questions/59330843
复制相似问题