gpt4 book ai didi

r - 从 .lm.fit() 计算 p 值的快速方法

转载 作者:行者123 更新时间:2023-12-04 16:30:07 26 4
gpt4 key购买 nike

我正在使用 .lm.fit() 运行模拟和拟合线性模型.虽然速度非常快,但此函数不提供预测变量的 p 值。有没有一种快速计算它们的方法(可能来自 .lm.fit() 返回的值)?我知道 this计算近似 p 值的方法,但我需要精确的 p 值。

更新:
Dirk Eddelbuettel 提供了拟合 lm 的最快方法,Ben Bolker 提供了计算 p 值的方法,通过结合我们得到的两个答案:

set.seed(101)
X <- cbind(1,matrix(1:10))
y <- rnorm(10)

mdl <- RcppArmadillo::fastLmPure(X, y)

pval <- 2*pt(abs(mdl$coefficients/mdl$stderr), mdl$df.residual, lower.tail=FALSE)

最佳答案

Dirk 的答案会更快,但如果方便的话,这里是纯 R 中的实现(从 summary.lm 中提取您需要的位,并假设非全等级没有问题模型矩阵等)

例子:

set.seed(101)
X <- cbind(1,matrix(1:10))
y <- rnorm(10)
m <- .lm.fit(X,y)

p 值计算:

rss <- sum(m$residuals^2)
rdf <- length(y) - ncol(X)
resvar <- rss/rdf
R <- chol2inv(m$qr)
se <- sqrt(diag(R) * resvar)
2*pt(abs(m$coef/se),rdf,lower.tail=FALSE)

比较:

coef(summary(lm(y~X-1)))[,"Pr(>|t|)"]

关于r - 从 .lm.fit() 计算 p 值的快速方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49732933/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com