构建包含每个日期的多个观察值的时间序列

机器算法验证 r 时间序列
2022-03-17 00:53:42

我正在尝试将时间序列应用于 10 年期间的季度采样数据(动物生物量),每季度 3 次。所以有 40 个日期,但总共有 120 个观测值。

我已经阅读了 Shumway 和 Stoffer 的时间序列分析中的 SARIMA'a 及其应用程序以及略读 Woodward 等。al. 的 Applied Time Series Analysis,我的理解是每个模型都基于时间序列中每个点的单个观察。

问题:如何在模型中包含每个观察值的变化?我可以在平均值上建立一个系列,但我会放松每次观察的变化,我认为这对我理解正在发生的事情至关重要。

2个回答

根据您所说的“每季度 3 次代表”的确切含义,面板数据(维基百科)模型可能有意义。这意味着您每季度要进行三个测量,三个不同来源中的每个测量一个随着时间的推移保持不变。您的数据将类似于:

obs quarter value
  A       1   2.2 
  A       2   2.3 
  A       3   2.4 
  B       1   1.8 
  B       2   1.7 
  B       3   1.6 
  C       1   3.3 
  C       2   3.4 
  C       3   3.5 

如果这是您正在查看的内容,则有许多模型可用于处理面板数据。这是一个不错的演示文稿,涵盖了您将用来查看面板数据的一些基本 R。尽管从计量经济学的角度来看,这份文件更深入一点。

但是,如果您的数据不太适合面板数据方法,则还有其他可用于“汇总数据”的工具。本文的定义(pdf)

数据汇集意味着使用与多个人群相关的多个数据源进行统计分析。它包括对信息的平均、比较和共同解释。根据所涉及的数据源和人口是否相同/相似或不同,也会出现不同的场景和问题。

正如您所看到的,根据该定义,您将使用的技术将取决于您希望从数据中学到什么。

如果我要为您建议一个开始的地方,假设您每个季度的三个抽签随着时间的推移是一致的,我会说首先使用固定效应估计器(也称为内部估计器)和您的面板数据模型数据。

对于我上面的示例,代码如下所示:

> Panel = data.frame(value=c(2.2,2.3,2.4,1.8,1.7,1.9,3.3,3.4,3.5), 
                     quarter=c(1,2,3,1,2,3,1,2,3), 
                     obs=c("A","A","A","B","B","B","C","C","C"))
> fixed.dum <-lm(value ~ quarter + factor(obs), data=Panel)
> summary(fixed.dum)

这给了我们以下输出:

Call:
lm(formula = value ~ quarter + factor(obs), data = Panel)

Residuals:
         1          2          3          4          5          6          7 
-1.667e-02 -8.940e-17  1.667e-02  8.333e-02 -1.000e-01  1.667e-02 -1.667e-02 
         8          9 
 1.162e-16  1.667e-02 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept)   2.13333    0.06055  35.231 3.47e-07 ***
quarter       0.08333    0.02472   3.371 0.019868 *  
factor(obs)B -0.50000    0.04944 -10.113 0.000162 ***
factor(obs)C  1.10000    0.04944  22.249 3.41e-06 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 

Residual standard error: 0.06055 on 5 degrees of freedom
Multiple R-squared: 0.9955, Adjusted R-squared: 0.9928 
F-statistic: 369.2 on 3 and 5 DF,  p-value: 2.753e-06 

在这里,我们可以清楚地看到系数中时间对四分之一变量的影响,以及在 B 组或 C 组(相对于 A 组)的影响。

希望这会为您指明正确的方向。

我认为这很有趣。我的建议是平均三个数据点以获得平滑的时间序列。正如您所指出的,如果您这样做而忽略了您取三个观察值的平均值,那么您将丢弃信息。但是对于每个时间点,您可以将与平均值的平方偏差相加。汇集所有时间段的平方和并除以 n-1,其中 n 是计算中使用的总点数。如果您有一个具有时间序列结构的模型(例如趋势、季节性成分、AR 依赖结构),则此计算可能是对模型中误差项方差的独立且无偏估计。