gpt4 book ai didi

r - 创建函数以从摘要自动创建数据集(fit <- lm(y ~ x1 + x2 + ... xn)

转载 作者:行者123 更新时间:2023-12-02 05:08:55 26 4
gpt4 key购买 nike

这个问题和我的previous question密切相关.唯一的区别是,我不想要绘制数据,而是想要适合的原始数据。我尝试按照上一个答案自己解决,但仍然卡住了。

所以我想从线性回归的拟合中检索自变量、拟合变量、残差和标准化残差。

我将使用由 Brian Diggs 友善创建的示例。所以谢谢。

dat <- data.frame(x1=rnorm(100), x2=rnorm(100,4,5), x3=rnorm(100,8,27), x4=rnorm(100,- 6,0.1),t=(1:100)+runif(100,-2,2)) 
dat <- transform(dat, y=x1+4*x2+3.6*x3+4.7*x4+rnorm(100,3,50))

fit <- lm(y~x1+x2+x3+x4, data=dat) # fit
dat$resid <- residuals(fit)
vars <- names(coef(fit))[-1]

下一步我卡住了,和以前一样。我试图只获取用于回归的变量并将它们绑定(bind)到新数据集。我尝试了以下操作,但它不起作用。这一步是错误的。我可以绑定(bind)残差,但不能绑定(bind)使用的变量。

fit.data <- cbind(predict(fit),as.name(names(coef(fit))[2]))

非常感谢任何帮助。是的,仍在自学 R。

最佳答案

你不能将不对应维度的事物结合在一起。为此,您需要一个列表。您还需要使用 fit 对象,因为摘要对象没有拟合值(并且可能不适用于 rstandard() 但我不确定)。

mod.results <- list(vars = names(coef(fit))[-1],
fitted.values=fit$fitted.values,
residuals = residuals(fit),
std.resid = rstandard(fit))

把它放在一个函数中是微不足道的:

> extr.res <- function(fit) {mod.results <- list(vars = names(coef(fit)), 
fitted.values=fit$fitted.values, residuals = residuals(fit), std.resid = rstandard(fit)) }
> str(extr.res(fit))
List of 4
$ vars : chr [1:5] "(Intercept)" "x1" "x2" "x3" ...
$ fitted.values: Named num [1:100] -36.19 31.4 -2.59 -130.03 -1.12 ...
..- attr(*, "names")= chr [1:100] "1" "2" "3" "4" ...
$ residuals : Named num [1:100] -71.6 -21.2 -50.7 19 -58.5 ...
..- attr(*, "names")= chr [1:100] "1" "2" "3" "4" ...
$ : Named num [1:100] -1.608 -0.487 -1.175 0.435 -1.297 ...
..- attr(*, "names")= chr [1:100] "1" "2" "3" "4" ...

关于r - 创建函数以从摘要自动创建数据集(fit <- lm(y ~ x1 + x2 + ... xn),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7766539/

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