gpt4 book ai didi

r - 如何从lm()返回预测值,残差和R方?

转载 作者:行者123 更新时间:2023-12-04 10:18:26 24 4
gpt4 key购买 nike

这段代码将返回系数:intercept,slop1,slop2

set.seed(1)
n=10

y=rnorm(n)
x1=rnorm(n)
x2=rnorm(n)

lm.ft=function(y,x1,x2)
return(lm(y~x1+x2)$coef)

res=list();
for(i in 1:n){
x1.bar=x1-x1[i]
x2.bar=x2-x2[i]
res[[i]]=lm.ft(y,x1.bar,x2.bar)
}

如果输入:
   > res[[1]]

我得到:
      (Intercept)          x1          x2 
-0.44803887 0.06398476 -0.62798646

我们如何返回预测值,残差,R平方,.. etc?

我需要一些通用的东西来从摘要中提取我需要的东西吗?

最佳答案

这里发生了几件事。
首先,最好将变量组合到data.frame中:

df  <- data.frame(y=rnorm(10), x1=rnorm(10), x2 = rnorm(10))
fit <- lm(y~x1+x2, data=df)
如果执行此操作,使用模型对新数据集进行预测会容易得多。
其次,可以从模型本身访问一些拟合统计信息,而可以从 summary(fit)访问一些统计信息。
coef  <- coefficients(fit)       # coefficients
resid <- residuals(fit) # residuals
pred <- predict(fit) # fitted values
rsq <- summary(fit)$r.squared # R-sq for the fit
se <- summary(fit)$sigma # se of the fit
要获取系数的统计信息,您需要使用摘要:
stat.coef  <- summary(fit)$coefficients
coef <- stat.coef[,1] # 1st column: coefficients (same as above)
se.coef <- stat.coef[,2] # 2nd column: se for each coef
t.coef <- stat.coef[,3] # 3rd column: t-value for each coef
p.coef <- stat.coef[,4] # 4th column: p-value for each coefficient

关于r - 如何从lm()返回预测值,残差和R方?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20907583/

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