如何在面板数据r中绘制滞后变量

Posted

技术标签:

【中文标题】如何在面板数据r中绘制滞后变量【英文标题】:How to graph a lagged variable in a panel data r 【发布时间】:2021-10-31 05:44:19 【问题描述】:

我得到了一个公司数据集(不平衡面板),如下所示:

id   year   tfp    c_sales    
A    2012    1.52   14.56
A    2013    1.82   15.6
A    2014    1.67   16.3
A    2015    1.72   18.36
...   ...    ...    ...
B    2012    1.58   17.56
B    2013    1.83   12.6
B    2014    1.62   19.3
B    2015    1.96   14.36
...   ...    ...    ... 
C    2012    1.2   13.4
C    2013    1.6   16.3
...   ...    ...    ...

等等……直到 2019 年。

如何绘制 2014 年的 tfp 与 2015 年的 c_sales

我想要一个散点图,横轴显示 2014 年的 tfp 值,纵轴显示 2015 年的 c_sales 值。

由于tfp 是衡量生产力的指标,我希望看到一个散点图,它告诉我,2014 年生产力高的公司在 2015 年的销售额或多或少。

我试图用 ggplot 制作一个情节,但我不知道该怎么做。

(另外,我怎样才能进行这样的回归?使用固定年份的自变量)

【问题讨论】:

可以与dput()分享您的数据 此链接可能有用:Asking a good question 【参考方案1】:

你可以这样做

(虽然数据会非常有用!)

library(tidyverse)

df=tribble(
~id, ~year, ~tfp, ~c_sales, 
"A", 2012, 1.52, 14.56, 
"A", 2013, 1.82, 15.6, 
"A", 2014, 1.67, 16.3, 
"A", 2015, 1.72, 18.36, 
"B", 2012, 1.58, 17.56, 
"B", 2013, 1.83, 12.6, 
"B", 2014, 1.62, 19.3, 
"B", 2015, 1.96, 14.36, 
"C", 2012, 1.2, 13.4, 
"C", 2013, 1.6, 16.3, 
"C", 2014, 1.7, 17.3, 
"C", 2015, 1.82, 20.33
) 

f = function(data, group, xYear, yYear)(
  tibble(
    xYear = xYear,
    yYear = yYear,
    tfp = data %>% filter(year==xYear) %>% pull(tfp),
    c_sales = data %>% filter(year==yYear) %>% pull(c_sales)
  )
)


df = df %>% 
  group_by(id) %>% 
  group_modify(f, xYear=2014, yYear=2015) 

df

输出

# A tibble: 3 x 5
# Groups:   id [3]
  id    xYear yYear   tfp c_sales
  <chr> <dbl> <dbl> <dbl>   <dbl>
1 A      2014  2015  1.67    18.4
2 B      2014  2015  1.62    14.4
3 C      2014  2015  1.7     20.3

接下来

df %>% ggplot(aes(tfp, c_sales))+
  geom_point()

【讨论】:

谢谢!这正是我所需要的。对不起,我不能把信息。 (1) 太多(接近 80k 行),这是一个明智的信息。但这对我有用!谢谢,祝你有美好的一天 很高兴能帮上忙。但是请记住,在 Stack Overflow 上,您可以通过选择批准的解决方案来表示感谢。

以上是关于如何在面板数据r中绘制滞后变量的主要内容,如果未能解决你的问题,请参考以下文章

在R中如何建立动态的变量名,或者动态的文件名

如何网格化面板图,使其在 R 中的 ggplot 中具有分类变量和不同的 x 变量

如何在 R 中绘制我的多变量回归时间序列模型?

如何在R中实现对空间面板数据的LM检验

如何在 Python Pandas 回归模型中使用滞后时间序列变量?

如何创建多个不同的滞后