[英]Output R-squared using Linear Regression on subsets of data
I have a dataset with lag
, psit
, and var
as variables. 我有一个以
lag
, psit
和var
为变量的数据集。
set.seed(560)
df<-data.frame(lag= rep(1:40, each=228), psit= rep(rnorm(228, 20,
10)),var=rnorm(9120, 50, 10))
For each subset of lag
I would like to run a linear regression where psit is predicted by var lm(psit~var, df)
. 对于
lag
每个子集,我想进行线性回归,其中psit由var lm(psit~var, df)
预测。 I would like to output the R-squared value, the F-statistic and the p-value for the model into a datatframe. 我想将模型的R平方值,F统计量和p值输出到datatframe中。
output<-data.frame(lag= rep(1:40, each=1), rsqrd= rep(rnorm(40, .5,
0.01)),fstat=rnorm(40,5, 0.05), pvalue=rnorm(40,0.01, 0.1))
I have tried: 我努力了:
models <-
df %>%
group_by(lag) %>%
do(model = lm(psit ~ var,data = .))
rsqrd<-
model %>%
do(data.frame(
lag = .$lag,
summary(.)$r.squared, summary(.)$fstatistic,summary(.)$pvalue))
You can use the broom library's glance
function to get the summary statistics you want from a series of linear models: 您可以使用扫帚库的
glance
功能从一系列线性模型中获取所需的摘要统计信息:
library(broom)
rsqrd <-
models %>%
ungroup() %>% group_by(lag) %>%
do(glance(.$model[[1]]))
glance
takes a single linear model and returns a one-row data frame of summary statistics. glance
采用单个线性模型,并返回汇总统计信息的单行数据框。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.