首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从R从循环导出模型

从R从循环导出模型
EN

Stack Overflow用户
提问于 2016-04-07 08:04:35
回答 1查看 100关注 0票数 0

我通过一个循环对不同时间间隔的数据求和,最后,我通过一个线性模型运行它。目前,我正在对我想要的所有系数进行硬编码,并将它们附加到数据帧中,一旦循环结束,它就会导出CSV。

问题是,我有很多变量,并希望在每次迭代中导出所有变量。

有没有办法做到这一点?理想情况下,我希望提取每个自变量的系数、每个独立变量的P值、模型的P值和调整后的模型R2,然后导出

有什么想法吗?下面是这个循环的样子:

代码语言:javascript
复制
outputs <- matrix(,ncol=4)

for(size in seq(20,30, by= 10))
{ 
for(i in 2:nrow(df_first))   
{ upperWindow <- as.numeric(df_first$time) <= 
(as.numeric(perf$time[i])+g*60)
lowerWindow <- df_first$time >= perf$time[i]      
total[i] <- sum(perf$total [upperWindow & lowerWindow])
}
fit <- lm(total ~ x + y) 

model_coef <- coefficients$fit 

outputs <- rbind(model_coef, size, fit$adj.r.squared)
} 
write.table (outputs, file =~ ) 

基本上,我想从我正在运行的模型中提取所有的系数、R平方和大小,并将它们导出为CSV。我一直收到错误消息“属性在度量变量中不相同;它们将被丢弃”

EN

回答 1

Stack Overflow用户

发布于 2016-04-07 08:57:14

没有提供可重复的示例,因此这里是如何从线性模型中提取所需值的通用示例:

代码语言:javascript
复制
ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
group <- gl(2, 10, 20, labels = c("Ctl","Trt"))
weight <- c(ctl, trt)
fit <- lm(weight ~ group)
sumfit <- summary(fit)

我们可以使用系数法或使用$从拟合中获得系数,如

代码语言:javascript
复制
coeffs <- fit$coefficients

和汇总统计信息如下

代码语言:javascript
复制
r.squared <- sumfit$r.squared  # r squared
adj.r.sq <- sumfit$adj.r.squared # adjusted r squared
coeff.p <- sumfit$coefficients[,4] # p values for each coefficient

可以用类似的方式从fit和sumfit中提取其他值。看一看他们的值,看看有什么可用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36464408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档