【问题标题】:Time series modeling in RR中的时间序列建模
【发布时间】:2015-05-29 09:39:57
【问题描述】:

我有一个关于在 R 中建模时间序列的问题。 我的数据由以下矩阵组成:

1   0.03333333 0.01111111 0.9555556
2   0.03810624 0.02309469 0.9387991
3   0.00000000 0.03846154 0.9615385
4   0.03776683 0.03119869 0.9310345
5   0.06606607 0.01201201 0.9219219
6   0.03900325 0.02058505 0.9404117
7   0.03125000 0.01562500 0.9531250
8   0.00000000 0.00000000 1.0000000
9   0.04927885 0.01802885 0.9326923
10  0.06106870 0.02290076 0.9160305
11  0.03846154 0.00000000 0.9615385
12  0.00000000 0.00000000 1.0000000
13  0.06028636 0.03843256 0.9012811
14  0.09646302 0.05144695 0.8520900
15  0.04444444 0.06666667 0.8888889

这个矩阵总共有 200 行。

如您所见,在每种情况下,每一行的总和都是 1,这是因为这些值是整体的百分比。例如,第 1 行包含变量 a 的 3.33%、变量 2 的 1.11% 和可验证变量 3 的 95.5%。 第一列表示测量值的年份。

我的目标是预测未来 5 年,即从 200 年到 205 年。

我可以通过做三个正常的时间序列预测来做到这一点。但是对于那个预测,总和永远不会等于 1,这非常重要。 通常,我使用 arima 和指数平滑等技术。

有人知道预测此类问题的方法吗?

【问题讨论】:

  • 欢迎来到 Stack Overflow!虽然我不是 R 方面的专家,但这个问题似乎暗示要为该问题提供一种算法。向我们展示您的尝试以及遇到的问题。
  • 你应该把这个函数移到stats.stackexchange.com
  • 如果abc 是三列,则预测B=log(b/a)C=log(c/a)。然后将abc恢复为a = 1/(1+exp(B) + exp(C))b = exp(B)/(1+exp(B)+exp(C))c = exp(C)/(1+exp(B)+exp(C)).
  • @G.Grothendieck,您的建议可行。但我正在验证它为什么起作用。你能解释一下它为什么会起作用,或者给一个我可以找到原因的链接吗?
  • a+b+c = 1/(1+exp(B)+exp(C)) + exp(B)/(1+exp(B)+exp(C)) + exp(C)/(1+exp(B)+exp(C)) = (1+exp(B)+exp(C))/(1+exp(B)+exp(C)) = 1。 Q.E.D.

标签: r time-series


【解决方案1】:

好吧,我认为您需要创建一个statistical Normalization;从估计的平均值中减去每个估计的分数,然后将结果除以估计的标准差。这将保证您的预测值在 [0-1] 范围内。

【讨论】:

    猜你喜欢
    • 2010-12-15
    • 1970-01-01
    • 1970-01-01
    • 2019-02-05
    • 2020-06-22
    • 2016-11-21
    • 2011-04-22
    • 2023-03-15
    相关资源
    最近更新 更多