時間序列流程

2021-09-27 08:08:06 字數 1734 閱讀 3168

1.1 去趨勢

差分、取對數

1.2去週期性

濾波、差分

1.3變平穩的原因除了1.1、1.2之外還有

穩定方差、使資料呈現正態分佈、使週期效應累加

arima模型的示例**

from pandas import read_csv

from pandas import datetime

from matplotlib import pyplot

from statsmodels.tsa.arima_model import arima

from sklearn.metrics import mean_squared_error

def parser(p):

return datetime.strptime('190'+p,'%y-%m)

series = read_csv('input.csv',header = 0,parse_dates = [0],index_col = 0,squeeze = true,date_parser = parser)

p = series.values

size = int(len(p)*0.66)

train,test = p[0:size],p[size:len(p)]

history = [p for p in train]

predictions = list()

for t in range(len(test)):

model = arima(history,order=(5,1,0))

model_fit = model.fit(disp=0)

output = model_fit.forecast()

yhat = output[0]

obs = test[t]

print('predicted = %f,expected = %f' %(yhat,obs))

error = mean_squared_error(test,predictions)

print('test mse: %.3f' % error)

pyplot.plot(test)

pyplot.plot(predictions,color='red')

pyplot.show()

r**

auto.arima模型的優點在於它自動查詢資料的順序、趨勢和週期性

asm_weekwise <- read.csv('weekwise.csv',header = true)

asm_weekwise$week <- null

library(mass)

library(tseries)

library(forecast)

asm_weekwise[is.na(asm_weekwise)] <- 0

asm_weekwise[asm_weekwise <= 0] <- mean(as.matrix(asm_weekwise))

weekjoyforecastvalues <- date.frame("asm"=interger(),"value" = integer(),stringsaafactors=false)

for (i in 2:ncol(asm_weekwise))

weekjoyforecastvalues$value <- as.integer(weekjoyforecastvalues$value)

時間序列分析

協方差矩陣和相關係數主要研究兩個連續變數的相似程度 相關性 協方差公式 協方差矩陣 相關係數 cov x,y var x var y 相關係數矩陣 可以使用ljung box方法進行檢驗。即box.test data,type ljung box lag num 來檢驗,當p value大於0.05...

時間序列分析

時間序列資料分為平穩 寬平穩 和非平穩兩種。平穩序列中也包括隨機序列,即序列資料之間沒有任何相關性或記憶性,純隨機的,這種序列沒有挖掘分析的必要。純隨機序列也稱為白雜訊序列。序列中的隨機變數之間的相關係數r k 0,k不為 0 經過預處理若發現序列是平穩非隨機序列,則可用的模型為arma。ar模型是...

時間序列python

平穩性檢測 平穩性的定義 圍繞乙個常數上下波動且波動範圍有限,即有常數均值和常數方差。如果有明顯的趨勢或者週期性,那它通常不是平穩序列。檢測方法有三種 1 時序圖檢測 2 自相關係數和偏相關係數 通過spss 截尾 就是在某階之後,係數都為0 拖尾 就是有乙個緩慢衰減的趨勢,但是不都為0 2.不平穩...