使用R测试时间序列中的重要性

Vin*_*woo 0 statistics r time-series anova

给定一个简化的示例时间序列,按年份查看人口

Year<-c(2001,2002,2003,2004,2005,2006)
Pop<-c(1,4,7,9,20,21)
DF<-data.frame(Year,Pop)
Run Code Online (Sandbox Code Playgroud)

检验年份之间的变化/哪一年之间存在显着差异的最佳方法是什么?

Sim*_*mon 5

正如@joran所提到的,这实际上是一个统计问题,而不是编程问题。您可以尝试在http://stats.stackexchange.com提问以获得更多的统计专业知识。

简而言之,立即想到两种方法:

  1. 如果将回归线拟合到人口与年份的关系并具有统计学上显着的斜率,则表明这几年人口总体趋势,即lm()像这样在R中使用lmPop <- lm(Pop ~ Year,data=DF)
  2. 您可以将时间段划分为多个块(例如,前三年和后三年),并假设每个块中各年的人口数字都是该年中该平均人口的估计值。这样可以为您提供每一年的总体平均值和标准偏差,这可以让您进行t检验,如下所示:t.test(Pop[1:3],Pop[4:6])

这两种方法都存在一些潜在的困难,每种方法的有效性都取决于您要检查的数据的性质。但是,对于样本数据,第一种方法表明在95%的置信水平下存在随时间变化的趋势(斜率系数为p = 0.00214),而第二种方法则表明零假设不存在差异。均值不能在95%置信度(p = 0.06332)上被伪造。