gpt4 book ai didi

r - lm(数据~时间)和tslm(数据~趋势)有什么区别

转载 作者:行者123 更新时间:2023-12-05 04:08:06 28 4
gpt4 key购买 nike

我观察到两种方法的结果不同。为什么是这样?我知道 lm 上发生了什么,但无法弄清楚 tslm 上发生了什么。

> library(forecast)
> set.seed(2)
> tts <- ts(100*runif(1200)+seq(1:1200)*0.1, frequency=12, start=c(2000,1))
> lm(tts~time(tts))

Call:
lm(formula = tts ~ time(tts))

Coefficients:
(Intercept) time(tts)
-2400.365 1.225

> tslm(tts~trend)

Call:
tslm(formula = tts ~ trend)

Coefficients:
(Intercept) trend
48.9350 0.1021

最佳答案

运行以下三个命令:

predict(lm(tts~time(tts)))
predict(tslm(tts~time(tts)))
all.equal(predict(lm(tts~time(tts))), predict(tslm(tts~trend)))

您会说服自己它们是相同的。如果输出相同,则 lm 回归的 X 变量,即

time(tts) 

必须是线性变换

trend

最简单的猜测:

tmp <- time(tts)*12
lm(tts~tmp)

具有与tslm系数相同的系数。所以趋势就是

12*time(tts)

即趋势是自第 0 年以来耗时的(整数)计数,以月为单位。 time(tts) 是从第 0 年开始耗时,以年为单位。

关于r - lm(数据~时间)和tslm(数据~趋势)有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48054150/

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