Create函数从摘要自动创建数据集(fit<;-lm(y~x1+;x2+;…;xn)

Create函数从摘要自动创建数据集(fit<;-lm(y~x1+;x2+;…;xn),r,data-binding,summary,linear-regression,R,Data Binding,Summary,Linear Regression,这个问题与我的问题密切相关。唯一的区别是,我想要拟合后的原始数据,而不是绘制数据。我试图按照最后一个答案自己解决它,但仍然卡住了 所以我想从线性回归的拟合中,得到自变量,拟合变量,残差和标准化残差 我将使用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)) da

这个问题与我的问题密切相关。唯一的区别是,我想要拟合后的原始数据,而不是绘制数据。我试图按照最后一个答案自己解决它,但仍然卡住了

所以我想从线性回归的拟合中,得到自变量,拟合变量,残差和标准化残差

我将使用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]

dat您无法将不具有相应维度的内容绑定在一起。为此,您需要一个列表。您还需要使用fit对象,因为summary对象没有拟合值(可能无法使用rstandard(),但我不确定这一点)


mod.results extr.res您指的是实际数据吗?为什么不直接从
dat
获取数据,就像这样:
dat[,vars]
?谢谢你,尼克。你说得对,我可以使用
dat
。不幸的是,我们正在查看一个数据集,其中某些变量有空白字段,而其他变量没有。这些空白字段将被排除。
na.omit()
将实现这一点。因此我可以绑定回归中使用的变量。所有变量都具有相同的长度。然后应用
na.omit()
。事实上,这应该提供与回归最终使用的数据集相同的数据集。从审计的角度来看,我仍然很好奇将“na.omit”和“dat”创建的数据集与基础拟合数据进行比较。您肯定应该从
ggplot2
包中查看
fortify
。谢谢您,德温。我看到了数据对于残差和拟合,但不是变量背后的实际数据,即x1或x2等。因此,我不是从回归中捕获自变量的数据。如果您想要解决缺失值的答案,则不应提供完整数据的示例。请编辑您的问题以准确反映您的问题。
fit.data <- cbind(predict(fit),as.name(names(coef(fit))[2]))
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" ...