Answers:
可以使用一个偏移:glm
与family="binomial"
对数优势比或分对数尺度的估计参数,所以对应于对数概率的0或0.5的概率。如果要与p的概率进行比较,则希望基线值为q = logit(p )= log (p /(1 - p ))。现在是统计模型
从标准设置仅更改了最后一行。在R代码中:
offset(q)
该式中qlogis(p)
rep(q,100)
。x = rbinom(100, 1, .7)
dd <- data.frame(x, q = qlogis(0.7))
summary(glm(x ~ 1 + offset(q), data=dd, family = "binomial"))
glm(y ~ offset(q)-1, family=binomial, data=dd)
并lrtest
从lmtest
包中使用。培生卡方检验是GLM模型的得分检验。Wald / LRT / Score都是一致的测试,应该在相当大的样本量中提供等效的推断。
anova()
glm上的R进行LR测试
lrtest
确实打印。
anova(.,test="Chisq")
吧?
查看您的GLM参数的置信区间:
> set.seed(1)
> x = rbinom(100, 1, .7)
> model<-glm(x ~ 1, family = "binomial")
> confint(model)
Waiting for profiling to be done...
2.5 % 97.5 %
0.3426412 1.1862042
这是对数奇数的置信区间。
对于我们有log (o d d s )= log p。因此,检验p=0.5的假设等同于检查置信区间是否包含0。这一假设不成立,因此该假设被拒绝。
现在,对于任意,您可以计算对数奇数,并检查它是否在置信区间内。
基于glm.summary函数中z- / t值的p值用作假设检验是(完全)正确/不正确的。
这是令人困惑的语言。报告的值称为z值。但是在这种情况下,他们使用估计的标准误差代替了真实的偏差。因此,实际上它们更接近t值。比较以下三个输出:
1)summary.glm
2)t检验
3)z检验
> set.seed(1)
> x = rbinom(100, 1, .7)
> coef1 <- summary(glm(x ~ 1, offset=rep(qlogis(0.7),length(x)), family = "binomial"))$coefficients
> coef2 <- summary(glm(x ~ 1, family = "binomial"))$coefficients
> coef1[4] # output from summary.glm
[1] 0.6626359
> 2*pt(-abs((qlogis(0.7)-coef2[1])/coef2[2]),99,ncp=0) # manual t-test
[1] 0.6635858
> 2*pnorm(-abs((qlogis(0.7)-coef2[1])/coef2[2]),0,1) # manual z-test
[1] 0.6626359
它们不是精确的p值。使用二项式分布精确地计算p值会更好(目前具有计算能力,这不是问题)。假设误差为高斯分布,则t分布不准确(它高估了p,超过“ alpha”级别在“现实”中发生的频率较小)。请参阅以下比较:
# trying all 100 possible outcomes if the true value is p=0.7
px <- dbinom(0:100,100,0.7)
p_model = rep(0,101)
for (i in 0:100) {
xi = c(rep(1,i),rep(0,100-i))
model = glm(xi ~ 1, offset=rep(qlogis(0.7),100), family="binomial")
p_model[i+1] = 1-summary(model)$coefficients[4]
}
# plotting cumulative distribution of outcomes
outcomes <- p_model[order(p_model)]
cdf <- cumsum(px[order(p_model)])
plot(1-outcomes,1-cdf,
ylab="cumulative probability",
xlab= "calculated glm p-value",
xlim=c(10^-4,1),ylim=c(10^-4,1),col=2,cex=0.5,log="xy")
lines(c(0.00001,1),c(0.00001,1))
for (i in 1:100) {
lines(1-c(outcomes[i],outcomes[i+1]),1-c(cdf[i+1],cdf[i+1]),col=2)
# lines(1-c(outcomes[i],outcomes[i]),1-c(cdf[i],cdf[i+1]),col=2)
}
title("probability for rejection as function of set alpha level")
黑色曲线代表平等。红色曲线在其下方。这意味着对于通过glm摘要函数计算的给定p值,我们发现这种情况(或更大的差异)在现实中的出现频率少于p值指示的情况。
glm