应用回归分析之自相关检验(mathematica版本)

  • A+
所属分类:应用回归分析
摘要这一篇文章我们会举前面用过的石油产量与年份关系的实例来说明如何检验模型中的自相关关系,这一篇是使用mathematica来解决问题。

前言

这一篇是讲关于应用回归分析里的自相关检验,这里是使用mathematica来进行讲解,关于spss的版本可以查看下面的链接:

  • https://mathpretty.com/8784.html

我们还是从例题来讲解,看一下下面的这个例题。

例题解析

题目描述:

石油产量数据:表中数据是1880-1988年间以百万桶计的世界原油年产量,数据取自Moore和McCabe。采用ln(barrels)对年份做线性回归拟合。

  • 计算Durbin-Watson统计量,从中你能得关于相关性存在的什么结论?
  • 比较游程数与它们的期望值和标准差,从中你能得到关于相关性存在的什么结论?

数据如下:

  1. {{year, barrels}:
  2. {1880., 30.}, {1890., 77.}, {1900., 149.}, {1905., 215.}, {1910., 328.}, {1915., 432.}, {1920., 689.}, {1925., 1069.}, {1930., 1412.}, {1935., 1655.}, {1940., 2150.}, {1945., 2595.}, {1950., 3803.}, {1955., 5626.}, {1960., 7674.}, {1962., 8882.}, {1964., 10310.}, {1966., 12016.}, {1968., 14104.}, {1970., 16690.}, {1972., 18584.}, {1974., 20389.}, {1976., 20188.}, {1978., 21922.}, {1980., 21722.}, {1982., 19411.}, {1984., 19837.}, {1986., 20246.}, {1988., 21338.}}

下面是使用mathematica来解决自相关检验的问题。

第一问解答

首先计算D-W统计量

关于D-W统计量(杜宾-瓦特森统计量),是用来检测以用来检测回归分析中的残差项是否存在自我相关。

应用回归分析之自相关检验(mathematica版本)

其实就是查看回归方程的DurbinWatsonD属性,在上面就是ls["DurbinWatsonD"]

从中可以看出d=0.194536(关于D-W统计量的临界值可以查表进行获取)

下面我们对上面的内容进行分析:

检验假设:

应用回归分析之自相关检验(mathematica版本)

从上面的计算,我们有:d = 0.194536

当 n = 29, p = 1 时,查表可得:

应用回归分析之自相关检验(mathematica版本)

于是可以得到:

应用回归分析之自相关检验(mathematica版本)

所以应该拒绝原假设,也就是自相关存在

第二问解答

关于游程数的定义:残差穿过x-轴的次数 + 1,可以看一下下面这张图:

应用回归分析之自相关检验(mathematica版本)

我们可以直接看上面的残差图,得到游程数runs=5

下面计算期望值标准差并分析:

从图中可以数出:

  • 正的个数为:n_1 = 19
  • 负的个数为:n_2 = 10

所以我们可以计算得:

应用回归分析之自相关检验(mathematica版本)

所以我们有:

应用回归分析之自相关检验(mathematica版本)

于是我们发现:

应用回归分析之自相关检验(mathematica版本)

所以我们的结论是:自相关存在(可以看到和D-W统计量的结论是一样的)。

一些其他的

最后把上面的过程写了一个函数,放在下面,大家可以直接调用。

  1. RunLength[cancha_List] :=
  2. Block[{n1, n2, u, v2, youcheng, ycn},
  3. n1 = Length[Select[cancha, # >= 0 &]];
  4. n2 = Length[Select[cancha, # < 0 &]];
  5. u = (2.*n1*n2/(n1 + n2)) + 1;
  6. v2 = (2.*n1*n2*(2*n1*n2 - n1 - n2))/((n1 + n2)^2*(n1 + n2 - 1));
  7. youcheng = {};
  8. For[i = 1, i <= Length[cancha], i++,
  9. If[cancha[[i]] >= 0, youcheng = AppendTo[youcheng, 1],
  10. youcheng = AppendTo[youcheng, -1]];];
  11. ycn = 0;
  12. For[i = 1, i <= Length[youcheng] - 1, i++,
  13. If[youcheng[[i + 1]] - youcheng[[i]] != 0, ycn = ycn + 1];];
  14. Grid[{{"期望", " | ", "方差", " | ", "游程数"}, {u, " | ", v2, " | ",
  15. ycn + 1}}, Frame -> True]]
应用回归分析之自相关检验(mathematica版本)
  • 微信公众号
  • 关注微信公众号
  • weinxin
  • QQ群
  • 我们的QQ群号
  • weinxin
王祥赛

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: