问题标签 [panel-data]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
6054 浏览

r - 如何在 R 中区分面板数据

我想知道是否有任何简单的 R 命令或包都可以让我轻松地将变量添加到 data.frames,这些变量是这些变量的“差异”或随时间的变化。

如果我的数据如下所示:

然后在对价格变量进行“一阶差分”之后,我的数据将如下所示。

0 投票
1 回答
5497 浏览

r - 在 R 中使用 plm 的错误消息:可变长度不同

我在 R 中使用 plm-package 时遇到问题:

假设 data1 是我的数据集,我会估计池化 OLS 模型:

但我收到错误消息:

以下是有关我的数据集的一些信息:

有人能帮助我吗?

0 投票
1 回答
21436 浏览

stata - Stata:使用 egen group() 创建唯一标识符

我有一个数据集,其中每一行都是一个固定的年份对,其中 afirmid是一个字符串。

如果我做

它不会删除任何内容,因为没有重复项(我最初在运行后创建了数据集duplicates drop firmid year, force)。

到目前为止,一切都很好。我想创建一个需要firmid数字的面板。所以我跑

但是会弹出“面板中的重复时间值”错误。而且,

列出一大堆重复项。

似乎egen, group()没有产生独特的群体。我的问题是:为什么以及如何以稳健的方式创建独特的组?

0 投票
1 回答
4899 浏览

r - 将函数应用于R中面板数据中的滚动窗口

我正在尝试按类别在滚动窗口中应用一个函数(比如标准偏差):

我有以下数据:

我想创建一个新列(比如 sd),通过 cat 估计两年窗口内的标准偏差。

这是我正在考虑的结果:

在此处输入图像描述

关于如何实现这一目标的任何建议?

0 投票
1 回答
160 浏览

r - 在 plm 中识别 pdata.frame 中的时不变观察值

假设我有一个 pdata.frame(使用 r 中的 plm 包),如下所示:

我的观察结果在某些指数中不会随时间id变化,但在其他指数中会随时间变化。我想找到那些不随时间变化的,即我想提取一些看起来像

是否有捷径可寻?

0 投票
0 回答
1004 浏览

r - R包装效果和plm:尝试绘制边际效应时的“对比错误”

在阅读了这个关于对比错误的答案并查看了我的数据后,我在尝试组合包“plm”和“效果”时仍然遇到问题。这可能是不可能的,因为约翰福克斯没有在他的效果文档中讨论这种可能性(显然不允许链接 - 谷歌:“约翰福克斯效果包”,如果你想看看)。因此,如果确实不可能,请告诉我。

我正在对减少的数据集进行简单回归

我收到以下错误(以及典型的 plm 警告消息)

我知道它仍然是一个很长的数据结构,但我认为它值得分享

现在尽我所能,我没有看到小于 2 个级别的因素,所以我不明白这个错误来自哪里。我使用 effects 包的最终目标是能够在我的响应变量上绘制 cddom(和 cddom2,它是 cddom 的平方版本)的边际效应。当然,在我的完整数据集中,我还有大约 15 个控件,它们都不是单一级别的因素,但我一直遇到同样的问题。

我希望有人可以建议!

编辑效果功能的这个问题有时会发生变化。例如

给出以下错误

提前致谢

西蒙

0 投票
0 回答
1467 浏览

r - plm中的豪斯曼和拉格朗日乘数检验-使用还是不使用?

继之前关于 Hausman 测试(此处)的帖子(其中参考不幸消失了@briatte)之后,我面临着一些额外的与 Hausman 相关的问题。虽然前面的线程暗示了在 Hausman 执行中获取绝对值可能是一个问题,但我想知道我遇到的问题是否确实是由这个引起的。

根据random.method我使用的规范,结果可能会大不相同,这让我想知道哪些可以信任(也许没有)。

在下面的“vit”代表一个公式,右侧只有随时间和个体变化的变量,而 full 代表相同的变量 + 年份固定效应虚拟变量 + 一些每年不同但每年都相同的变量公司(公司固定效应)。

以下是一些结果

相对

虽然当然可以通过不同的测试得到不同的结果,但这里的根本差异让我想知道......

LM 测试也会出现类似的情况:

相对

任何人都可以就该怎么做提出建议吗?

谢谢,

西蒙

0 投票
0 回答
493 浏览

r - R当存在“混杂”相互作用时如何绘制“净相互作用效应”(或边际效应)

我想为以下回归绘制 x1 和 x2 之间的交互效果(让 y 成为面板数据集中的正计数变量)

简单的交互图是:

现在我想承认,如果 x1 改变了 的值,x1*x2并且x1^2也会改变,这将改变拟合值。在绘制净交互效应时,所有这些都应考虑在内。例如,可能 x1 和 x2 都与 y 正相关,但它们的相互作用会减弱这种积极影响,从而可能改变预测的方向。这可能还取决于x1*x2...

所以简单的interaction.plot 不再起作用了,因为其他变量也在影响结果。有没有一种简单的方法可以使用predictor来做到这一点effect

这是一个可重现的示例数据集(plm.data 对象),称为repex

dput(repex) structure(list(ID = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 6L, 6L, 6L, 6L, 6L, 6L, 7L, 7L, 7L, 7L, 7L, 7L, 8L, 8L, 8L, 8L, 8L, 8L, 9L, 9L, 9L, 9L, 9L, 9L, 10L, 10L, 10L, 10L, 10L, 10L), .Label = c("1", "2", "4", "6", "7", "8", "9", "10", "11", "13", "15", "16", "17", "18", "20", "22", "24", "26", "28", "29", "32", "34", "35", "36", "37", "39", "41", "42", "44", "47"), class = "factor"), Year = structure(c(1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L, 5L, 6L), .Label = c("1991", "1992", "1993", "1994", "1995", "1996", "1997", "1998", "1999", "2000", "2001", "2002", "2003", "2004", "2005", "2006"), class = "factor"), y = c(5, 10, 6, 9, 9, 4, 2, 2, 3, 7, 12, 13, 0, 5, 5, 1, 1, 3, 0, 0, 1, 0, 3, 0, 0, 4, 9, 9, 12, 9, 10, 6, 14, 12, 6, 2, 20, 15, 18, 14, 26, 17, 0, 0, 0, 0, 2, 0, 5, 1, 2, 2, 5, 3, 0, 0, 0, 1, 0, 0), x1 = c(0L, 0L, 3L, 3L, 3L, 5L, 0L, 0L, 0L, 0L, 0L, 3L, 0L, 2L, 1L, 0L, 0L, 0L, 0L, 1L, 1L, 2L, 1L, 0L, 0L, 2L, 0L, 2L, 8L, 4L, 1L, 0L, 4L, 2L, 1L, 1L, 1L, 1L, 0L, 1L, 3L, 5L, 0L, 0L, 0L, 0L, 0L, 0L, 2L, 0L, 1L, 1L, 2L, 6L, 0L, 0L, 1L, 1L, 1L, 0L), x2 = structure(c(4.22657266700715, 7.07828323739468, 5.58155937520987, 6.09945741088926, 4.98990473760187, 13.1975509132969, 0.136363636363636, 0.164922480620155, 0.981640399790555, 1.61119564479727, 4.27951983102512, 4.52440902710094, 2.41282572727806, 2.77748331046807, 7.00223921984389, 3.55837337174436, 5.31590575343992, 2.61930006177923, 0.211351052048726, 0.525647451963241, 0.696630753538187, 0.666082288178836, 1.09492110512526, 3.8035303566375, 0.548336215316966, 0.85237681730237, 0.982747572848003, 6.59758768791534, 8.74094242997363, 9.29913186611362, 3.5542234379174, 3.24728026722101, 3.60927964544638, 3.33459121950297, 2.88526780610146, 4.56612429882729, 26.45256036788, 21.0190838535023, 19.3769702276769, 19.7227148506334, 17.6596029433548, 23.6531530880185, 0.138888888888889, 0.249009205804338, 0.394159544159544, 0.316399286987522, 0.0413533834586466, 3.02315977564407, 3.94214293703149, 1.9143052531528, 3.16707069146414, 5.70642767128218, 4.38285025038957, 4.23425019314604, 0, 0, 0, 0, 0.0416666666666667, 0), .Dim = 60L, .Dimnames = list(c("1990_ABT", "1991_ABT", "1992_ABT", "1993_ABT", "1994_ABT", "1995_ABT", "1990_AKN", "1991_AKN", "1992_AKN", "1993_AKN", "1994_AKN", "1995_AKN", "1990_ALL", "1991_ALL", "1992_ALL", "1993_ALL", "1994_ALL", "1995_ALL", "1990_AMG", "1991_AMG", "1992_AMG", "1993_AMG", "1994_AMG", "1995_AMG", "1990_AZN", "1991_AZN", "1992_AZN", "1993_AZN", "1994_AZN", "1995_AZN", "1990_BAX", "1991_BAX", "1992_BAX", "1993_BAX", "1994_BAX", "1995_BAX", "1990_BAY", "1991_BAY", "1992_BAY", "1993_BAY", "1994_BAY", "1995_BAY", "1990_BIO", "1991_BIO", "1992_BIO", "1993_BIO", "1994_BIO", "1995_BIO", "1990_BMS", "1991_BMS", "1992_BMS", "1993_BMS", "1994_BMS", "1995_BMS", "1990_ABT", "1990_ABT", "1990_ABT", "1990_ABT", "1994_CHU", "1990_ABT")))), .Names = c("ID", "Year", "y", "x1", "x2"), row.names = c(1L, 2L, 3L, 4L, 160L, 5L, 172L, 173L, 174L, 175L, 176L, 177L, 188L, 12L, 190L, 191L, 192L, 13L, 212L, 213L, 214L, 215L, 216L, 217L, 22L, 23L, 230L, 231L, 232L, 233L, 28L, 29L, 30L, 31L, 248L, 249L, 36L, 37L, 38L, 39L, 40L, 41L, 276L, 156L, 52L, 158L, 159L, 281L, 56L, 57L, 58L, 295L, 59L, 297L, 588L, 391L, 392L, 393L, 187L, 395L), class = c("plm.dim", "data.frame"))

谢谢!

0 投票
0 回答
28 浏览

r - lmeNB 包:语法问题

我刚刚得知 lmeNB 包的存在,并且考虑到我有过度分散的正计数数据数据,它似乎就在我的袖子里。但是,我无法让它工作。

包的语法可以在这里找到

我正在尝试运行一个包含 37 个人和每个个人 16 年的完美平衡的面板(我的数据框按字母顺序排列,并且随着年份的增加,我认为这与语法中的描述一致。

library(lmeNB) mle.ar1.fun(abs_pb_t ~ RI1 + RA1 + abs_pb + cddom + cddom2, data=s.data, ID = p.data$ID, Vcode = p.data$Year

现在我收到以下错误消息:

Error in[<-.factor (tmp, upID == uniID[i], value = c("1--1", "1--2", : NAs are not allowed in subscripted assignments In addition: Warning messages: 1: In [<-.factor (tmp, upID == uniID[i], value = c("1--1", "1--2", : invalid factor level, NA generated 2: In [<-.factor (tmp, upID == uniID[i], value = c("1--1", "1--2", : invalid factor level, NA generated

我认为警告中确定的问题会导致错误,但我的 data.frame 中没有单个缺失值,也没有完美的分离。

有谁之前经历过这个吗?

西蒙

0 投票
1 回答
1270 浏览

r - R - 使用 data.table 有效地测试跨多行和多列的滚动条件

我正在尝试在一个看起来像这个可重现示例的 data.table 中测试各种条件

V1(从最后一个命令出现)表示事件发生的计数。

所以数据表是一个有序数组,我需要在它上面执行各种函数。这里有些例子:

  1. 如何计算每个事件在前 10 年发生的滚动总和(或滚动平均值)?因此,对于A 1990所需的输出为 1,452(1980 年到 1989 年之间)。对于H 2012输出为 11,因为在 2002 年和 2011 年之间只有 11 次出现(2002 年 3 次,2007 年 3 次,2010 年 5 次)。对于A 1983输出为NA

  2. 如何检查事件是否在前 15 年中至少有 12 年发生?因此,对于A 1997,我们可以看到该事件在前 15 年(1982 - 1996 年,除 1996 年之外的每一年都发生)中发生了超过 12 年,因此符合标准。然而,对于A 2001,我们看到该事件仅发生在前 15 年(1986 - 2000 年)中的 11 年,它没有发生在 1996、1998、1999 和 2000 年)不符合标准。此处所需的输出将是离散的 1(满足标准)或 0(未满足标准)

理想情况下,该代码不仅可以计算 1 和 2 yearsdata.table而且还可以计算 1980 年至 2013 年间缺失的那些。所以对于K 2005,我们可以将 Q1 的结果计算为 25 (13 + 5 + 3 + 3 + 2) (感谢@Arun 指出前一个错误)。对于第二季度,我们看到该事件在 1999、2000、2001、2003 和 2004 年没有发生,因此“15 年中至少有 12 年”的标准没有得到满足。此外,事件-年份组合可能存在于 data.table 中,但 V1 的值为 0(参见第 18 行,A 2001)。理想情况下,这种零出现将被视为不出现(例如,通过删除所有 V1 为零的行)。

我知道发布两个问题并不常见,但我觉得它们属于一起并且确实与类似的问题相关。希望有人可以提出一些建议。

非常感谢,

西蒙