gpt4 book ai didi

r - 1 分钟 xts 时间序列上的 lm 函数

转载 作者:行者123 更新时间:2023-12-04 11:46:31 24 4
gpt4 key购买 nike

我想知道线性回归函数 lm 是否应该完全适用于 1 分钟间隔的时间序列。我希望是的,但在这种情况下似乎不是。我有以下 xts 时间序列 z

                         mean
2016-03-11 08:37:00 10
2016-03-11 08:38:00 11
2016-03-11 08:39:00 12

应用 lm( z ~ index(z) ) 给出

Coefficients:
(Intercept) index(z)
11 NA

所以回归的斜率是 NA。我想知道为什么?我看不出有任何数学原因无法计算。

如果我将第一行的时间更改为间隔 5 分钟,那么 z 等于

                      mean
2016-03-11 08:33:00 10
2016-03-11 08:38:00 11
2016-03-11 08:39:00 12

然后 lm( z ~ index(z) ) 按预期工作并返回 4.839e-3 的斜率

Coefficients:
(Intercept) index(z)
-7.053e+06 4.839e-03

我是否误解了 lm 函数的工作原理?或者有人可以评论这种行为吗?有没有其他函数可以计算 1min 系列的斜率?

最佳答案

这不是特定于 xts 或 lm 函数。一般来说,这是估计线性回归系数的问题。您无法使用实际上没有变化(在浮点算术精度内)的数据来估计数据序列中的变化。

您可以看到您的第一个示例在计算上是单一的:

lm(z ~ index(z), singular.ok=FALSE)
Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) :
singular fit encountered

但如果降低公差,它会“起作用”,但这会牺牲数值稳定性。

lm(z ~ index(z), singular.ok=FALSE, tol=1e-8)

Call:
lm(formula = z ~ index(z), singular.ok = FALSE, tol = 1e-08)

Coefficients:
(Intercept) index(z)
-2.430e+07 1.667e-02

您的第二个示例之所以有效,是因为您创建了足够多的变体。

关于r - 1 分钟 xts 时间序列上的 lm 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39253670/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com