【问题标题】:Creating lagged (t-1) independent variables in Panel data [duplicate]在面板数据中创建滞后(t-1)自变量[重复]
【发布时间】:2025-11-22 13:00:02
【问题描述】:

假设我要回归预测模型:Return_t = x + Volume_t-1 + Volatility_t-1 + e。我有一个 5 年的每周面板数据,其中 28 家公司已经在 excel 中准备好了,看起来像这样:

ID  Date        Return      Volume       Volatility
1   2012-01-10  0.039441572 0.6979594    0.2606079
1   2012-01-17 -0.021107681 0.6447289    0.3741519
1   2012-01-24  0.004798082 1.0072677    0.3097104
1   2012-01-31  0.001559987 1.0066153    0.2761096
1   2012-02-07 -0.009058289 0.7218983    0.2592109
1   2012-02-14  0.046404936 1.2879986    0.4304542
2   2012-01-10  0.02073912 -0.141970906  0.2573633
2   2012-01-17 -0.00369127  0.007792180  0.3360240
2   2012-01-24 -0.05881038  0.001347634  0.2163933
2   2012-01-31 -0.05664598  0.640085029  0.3545598
2   2012-02-07  0.03654193  0.360513703  0.3594383
2   2012-02-14  0.03092432  0.105669775  0.3043643

我想将自变量设置为 t-1,哪个包允许我在 R 中做到这一点?我将运行具有固定效应的面板数据回归。

【问题讨论】:

    标签: r lag finance panel-data performanceanalytics


    【解决方案1】:

    按“ID”分组后,我们可以使用lag from dplyr

    library(dplyr)
    df1 %>% 
      group_by(ID) %>%
      mutate(Volume_1 = lag(Volume), Volatility_1 = lag(Volatility))
    

    或者另一个选项是shift from data.table

    library(data.table)
    nm1 <- c("Volume", "Volatility")
    setDT(df1)[, paste0(nm1, "_1") := lapply(.SD, shift), by = ID, .SDcols = nm1]
    

    【讨论】:

    • 我在使用 dplyr 时遇到问题。当我尝试打开它时,我收到错误消息: loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]) 中的错误:没有名为 'rlang' 的包:警告消息:包“dplyr”是在 R 版本 3.3.3 下构建的错误:“dplyr”的包或命名空间加载失败
    • @NeriKim R 的新版本是 3.4.0。你能更新到新版本然后安装 dplyr
    • 这是因为 McAfee Antivirus,我停用了,现在它可以正常工作了!非常抱歉。
    • 非常感谢!现在一切正常!
    • 无论如何,我非常感谢您的帮助。你保存了我的论文!
    【解决方案2】:

    你也可以使用mutate_at然后加入:

    df %>% 
      mutate_at(4:5, lag) %>% 
      left_join(df, ., by = c('ID','Date','Return'))
    

    输出:

       ID       Date       Return     Volume.x Volatility.x     Volume.y Volatility.y
    1   1 2012-01-10  0.039441572  0.697959400    0.2606079           NA           NA
    2   1 2012-01-17 -0.021107681  0.644728900    0.3741519  0.697959400    0.2606079
    3   1 2012-01-24  0.004798082  1.007267700    0.3097104  0.644728900    0.3741519
    4   1 2012-01-31  0.001559987  1.006615300    0.2761096  1.007267700    0.3097104
    5   1 2012-02-07 -0.009058289  0.721898300    0.2592109  1.006615300    0.2761096
    6   1 2012-02-14  0.046404936  1.287998600    0.4304542  0.721898300    0.2592109
    7   2 2012-01-10  0.020739120 -0.141970906    0.2573633  1.287998600    0.4304542
    8   2 2012-01-17 -0.003691270  0.007792180    0.3360240 -0.141970906    0.2573633
    9   2 2012-01-24 -0.058810380  0.001347634    0.2163933  0.007792180    0.3360240
    10  2 2012-01-31 -0.056645980  0.640085029    0.3545598  0.001347634    0.2163933
    11  2 2012-02-07  0.036541930  0.360513703    0.3594383  0.640085029    0.3545598
    12  2 2012-02-14  0.030924320  0.105669775    0.3043643  0.360513703    0.3594383
    

    【讨论】:

      最近更新 更多