首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >lm(数据~时间)和tslm(数据~趋势)有什么区别?

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

Stack Overflow用户
提问于 2018-01-02 07:29:26
回答 1查看 3K关注 0票数 2

我观察到两种方法的结果是不同的。为什么会这样呢?我知道lm上发生了什么,但我不知道tslm背后发生了什么。

代码语言:javascript
复制
> 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  
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-02 11:12:49

运行以下三个命令:

代码语言:javascript
复制
predict(lm(tts~time(tts)))
predict(tslm(tts~time(tts)))
all.equal(predict(lm(tts~time(tts))), predict(tslm(tts~trend)))

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

代码语言:javascript
复制
time(tts) 

必须是的线性变换

代码语言:javascript
复制
trend

最简单的猜测是:

代码语言:javascript
复制
tmp <- time(tts)*12
lm(tts~tmp)

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

代码语言:javascript
复制
12*time(tts)

例如,趋势是自0年以来经过的时间(以月为单位)的(整数)计数。时间(Tts)是从第0年开始经过的时间计数(以年为单位)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48054150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档