在 R 中将 coef 和 summary.lm 与 robcov 一起使用(提取 p 值)

发布于 2025-01-05 20:22:04 字数 564 浏览 0 评论 0原文

我可以提取斜率和斜率的 p 值以这种方式从 ols 对象拦截:

library(rms)
m1 <- ols(wt ~ cyl, data= mtcars, x= TRUE, y= TRUE)
coef(summary.lm(m1))

但是当我尝试使用 robcov 对象执行相同的操作时,summary.lm 为我提供原始模型 (m1) 的 p 值,而不是 robcov 模型:

m2 <- robcov(m1)
m2
coef(summary.lm(m2))

我认为这必须与来自 robcov 帮助页面的警告,

警告

调整后的 ols 拟合没有打印更正的标准误差 与 print.ols。使用 sqrt(diag(adjfit$var)) 来获取此值,其中 adjfit 是 robcov 的结果。

但我不知道怎么做。

有没有办法从 robcov 对象中提取 p 值? (我真的只对斜坡感兴趣,如果这有影响的话......)

I can extract the p-values for my slope & intercept from an ols object this way:

library(rms)
m1 <- ols(wt ~ cyl, data= mtcars, x= TRUE, y= TRUE)
coef(summary.lm(m1))

But when I try the same thing with a robcov object, summary.lm gives me the p-values from the original model (m1), not the robcov model:

m2 <- robcov(m1)
m2
coef(summary.lm(m2))

I think this must be related to the Warning from the robcov help page,

Warnings

Adjusted ols fits do not have the corrected standard errors printed
with print.ols. Use sqrt(diag(adjfit$var)) to get this, where adjfit
is the result of robcov.

but I'm not sure how.

Is there a way to extract the p-values from a robcov object? (I'm really only interested in the one for the slope, if that makes a difference...)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

何必那么矫情 2025-01-12 20:22:04

通过 print.olsprModFit 进行黑客攻击,我想出了这个。

errordf <- m2$df.residual
beta <- m2$coefficients
se <- sqrt(diag(m2$var))
Z <- beta/se
P <- 2 * (1 - pt(abs(Z), errordf))

将 m2 更改为另一个 robcov 模型。

通过比较 Pprint(m2) 的结果来亲自尝试一下

Hacking through print.ols and prModFit, I came up with this.

errordf <- m2$df.residual
beta <- m2$coefficients
se <- sqrt(diag(m2$var))
Z <- beta/se
P <- 2 * (1 - pt(abs(Z), errordf))

Change m2 to another robcov model.

Try it for yourself by comparing the results of P to print(m2)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文