Time Series Analysis (TSA) in Python-Linear Models to GRACH 笔记(二)

以下内容主要来自:

Time Series Analysis (TSA) in Python - Linear Models to GARCH

本篇目录:

Linear Models

Log-Linear Models


Linear Models

线性模型也称作趋势模型,它表示一个时间序列可以用一条直线来表示。它的基本等式:y_{t} = b_{0} + b_{1}t +\varepsilon _{t}

以一个公司的销售总额为例,一开始的初始是 5000,每隔一个时间步长增加 2500。

# simulate linear trend
# example Firm ABC sales are -$50 by default and +$25 at every time step

w = np.random.randn(100)
y = np.empty_like(w)

b0 = -50.
b1 = 25.
for t in range(len(w)):
    y[t] = b0 + b1*t + w[t]

tsplot(y, lags=30)

 可以看出模型的残差是相关的,并且线性下降。这个分布大约是正态的。在用线性模型做预测时,我们应该考虑去除序列中明显的自相关的成分。PACF在滞后1的显著性表明这个自回归模型可能是合适的。

Log-Linear Models

对数模型和线性模型很像,不同之处在于数据点形成的是一个指数函数,它代表了每个时间步长之间恒定的变化率。

下面以ABC公司的销售额为例,每个时间步长增加 X%。

# Simulate ABC exponential growth

# fake dates
idx = pd.date_range('2007-01-01', '2012-01-01', freq='M')

# fake sales increasing at exponential rate
sales = [np.exp( x/12 ) for x in range(1, len(idx)+1)]

# create dataframe and plot
df = pd.DataFrame(sales, columns=['Sales'], index=idx)

with plt.style.context('bmh'):
    df.plot()
    plt.title('ABC Sales')

 

 对销售额取一个自然对数,这样得到的一个线性回归就可以更好地来地和数据。

# ABC log sales 

with plt.style.context('bmh'):
    pd.Series(np.log(sales), index=idx).plot()
    plt.title('ABC Log Sales')

 

正如我们之前讨论的,这些模型有一个致命的弱点,那就是他们都假设序列不相关的误差,在线性模型中这样是不正确的。在现实中,时间序列往往都是违背平稳性假设的,这就促使我们去研究自回归模型。

 

Time Series Analysis (TSA) in Python-Linear Models to GRACH 笔记(三)

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值