我想绘制多变量逻辑回归分析(GLM)的结果,用于调整的特定独立变量(即独立于模型中包含的混杂因素)与结果(二元)的关系.
我已经看过使用predict后面的命令推荐以下方法的帖子curve,这是一个例子;
x <- data.frame(binary.outcome, cont.exposure)
model <- glm(binary.outcome ~ cont.exposure, family=binomial, data=x)
plot(cont.exposure, binary.outcome, xlab="Temperature",ylab="Probability of Response")
curve(predict(model, data.frame(cont.exposure=x), type="resp"), add=TRUE, col="red")
Run Code Online (Sandbox Code Playgroud)
然而,这似乎不适用于多元回归模型.当我添加'age'(任意 - 可以是任何相同长度的变量)作为混杂变量时,我得到以下错误;
> x <- data.frame(binary.outcome, cont.exposure, age)
> model <- glm(binary.outcome ~ cont.exposure + age, family=binomial, data=x)
> plot(cont.exposure, binary.outcome, xlab="Temperature",ylab="Probability of Response")
> curve(predict(model, data.frame(cont.exposure=x), type="resp"), add=TRUE, col="red")
Error in model.frame.default(Terms, newdata, na.action = na.action, xlev = object$xlevels) :
variable lengths differ (found for 'age')
In addition: Warning message:
'newdata' …Run Code Online (Sandbox Code Playgroud) 使用 R 和包quantreg,我正在对我的数据执行分位数回归分析。
我可以使用汇总函数中的 se(标准误差)估计器来访问 p 值,如下所示,但是我只能得到 5 位小数,并且想要更多。
model <- rq(outcome ~ predictor)
summary(model, se="ker")
Call: rq(formula = outcome ~ predictor)
tau: [1] 0.5
Coefficients:
Value Std. Error t value Pr(>|t|)
(Intercept) 78.68182 2.89984 27.13312 0.00000
predictor 0.22727 0.03885 5.84943 0.00000
Run Code Online (Sandbox Code Playgroud)
如何获取 p 值的更多小数位?
好的,所以我可以通过选择包含数值结果矩阵的子对象来获得更多的小数位;
> summary(model, se="ker")[[3]]
Value Std. Error t value Pr(>|t|)
(Intercept) 78.6818182 3.13897835 25.066059 0.000000e+00
predictor 0.2272727 0.04105681 5.535567 4.397638e-08
Run Code Online (Sandbox Code Playgroud)
然而,当该值 <1e-12 时,P 值仍四舍五入为 0(以上输出是简化的示例模型)。通过应用 @seancarmody 的建议,我可以得到更多;
format(summary(model, se="ker")[[3]], digits=22)
Run Code Online (Sandbox Code Playgroud)
但如果 P …