使用数据子集的线性回归输出 R 平方
Output R-squared using Linear Regression on subsets of data
我有一个数据集,其中 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))
对于 lag
的每个子集,我想 运行 线性回归,其中 psit 由 var lm(psit~var, df)
预测。我想将模型的 R 平方值、F 统计量和 p 值输出到数据帧中。
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))
我试过:
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))
您可以使用 broom 库的 glance
函数从一系列线性模型中获取您想要的汇总统计信息:
library(broom)
rsqrd <-
models %>%
ungroup() %>% group_by(lag) %>%
do(glance(.$model[[1]]))
glance
采用单一线性模型和 returns 汇总统计的单行数据框。
我有一个数据集,其中 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))
对于 lag
的每个子集,我想 运行 线性回归,其中 psit 由 var lm(psit~var, df)
预测。我想将模型的 R 平方值、F 统计量和 p 值输出到数据帧中。
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))
我试过:
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))
您可以使用 broom 库的 glance
函数从一系列线性模型中获取您想要的汇总统计信息:
library(broom)
rsqrd <-
models %>%
ungroup() %>% group_by(lag) %>%
do(glance(.$model[[1]]))
glance
采用单一线性模型和 returns 汇总统计的单行数据框。