语法:具有不同子集的循环回归

格里蒂

我试图通过使用具有相同时间间隔(5年)但在不同年份内的不同子集来执行汇总回归。我在代码语法方面遇到麻烦,似乎对子集的定义做错了。

> head(Grunfeld)
  firm year   inv  value capital
1    1 1935 317.6 3078.5     2.8
2    1 1936 391.8 4661.7    52.6
3    1 1937 410.6 5387.1   156.9
4    1 1938 257.7 2792.2   209.2
5    1 1939 330.8 4313.2   203.4
6    1 1940 461.2 4643.9   207.2




library(plm)
data("Grunfeld", package="plm")

#regression
myregression <- list()
Grunfeld_sub <- data.frame()
count <- 1

#loop
for(t in 1940:1950){

Grunfeld_sub[t] <- subset(Grunfeld, year<=t & year>=t-5)
myregression[[count]] <- lm(inv~value + capital, Grunfeld_sub(t))

count<- count+1
}

我在语法上做错了什么?如何正确定义子样本?

另一个问题是,如果我想使用plm包并使用plm.data函数转换data.frame(Grunfeld),我将无法再使用子集,因为我无法将其与factorvariables一起使用(时间变量会成为因子变量)是否有可能解决此问题?谢谢您的帮助。

eipi10

您的代码正在尝试将的整个子集存储Grunfeld在的一列中Grunfeld_sub,这会导致错误。实际上,您不需要存储先前循环的子集,因为您仅Grunfeld_sub在循环的当前迭代中使用的当前版本您也不需要单独的count变量。这是您的代码的重做:

# Store each subset regression in myregression
myregression <- list()

# Regression on six-year subsets of Grunfeld
for(t in 1940:1950) {

  myregression[[t-1939]] <- lm(inv ~ value + capital, 
                              subset(Grunfeld, year<=t & year>=t-5))

  # Rename list elements by year range of subset
  names(myregression)[[t-1939]] = paste0("Years:",t-5,"-",t)
}

这是存储在其中的前两个回归 myregression

> myregression
$`Years:1935-1940`

Call:
lm(formula = inv ~ value + capital, data = Grunfeld_sub)

Coefficients:
(Intercept)        value      capital  
   -3.65240      0.08283      0.11033  


$`Years:1936-1941`

Call:
lm(formula = inv ~ value + capital, data = Grunfeld_sub)

Coefficients:
(Intercept)        value      capital  
  -13.77258      0.08614      0.18680  

有关更详细的输出,请执行 lapply(myregression, summary)

要运行该plm函数,您难道不能Grunfeld直接使用数据并提供适当的index参数给plm吗?例如:

for(t in 1940:1950) {

  myregression[[t-1939]] <- plm(inv ~ value + capital, 
                                data=subset(Grunfeld, year<=t & year>=t-5),
                                index=c("firm","year"))
  names(myregression)[[t-1939]] = paste0("Years:",t-5,"-",t)
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

R:for循环遍历具有不同权重的回归模型并保存模型名称

在 R 中为具有不同行数的数据帧的子集创建 for 循环

对于R中具有子集的循环

如何使用for循环对具有不同程度的不同多项式回归模型的结果执行ANOVA

为每列查找具有不同值的子集

找到具有不同条件的连续子集的最大和

PHP 循环:在每三个项目语法周围添加一个具有不同类的 div

如何循环具有不同值的if语句?

具有不同数量的For循环的函数(python)

具有不同引导列的 Wordpress 循环

具有不同实现方式的循环DHT

具有不同迭代次数的嵌套循环

对于具有不同输入的循环

在Python中使用具有R语法的statsmodels.api进行逻辑回归

具有多个OR条件的IF循环引发语法错误

具有多个条件的for循环的过滤,关闭,功能语法版本

为什么[[-z]]和[[-v]]具有不同的语法?

具有不同类型数据的表达语法

对于向量不同元素具有不同任务的循环

通过不同的数据框循环回归

在Scikit学习中训练具有不同特征维度的逻辑回归模型

ggplot:将回归线扩展为具有不同线型的预测值

在ggplot geom_raster中具有不同斜率的逻辑回归之间进行插值

如何创建具有可变数量的“ for”循环且每个循环具有不同索引的函数?

不同数据子集上的循环方程 R

具有多个条件的子集

使用不同数量的列作为参数的具有动态条件的子集数据框

如何对R中相同的两列具有不同值的数据框进行子集

具有不同列名和多项选择的数据框列表的子集