1.現狀
不平穩就沒辦法擬合測試。所以我繼續進行資料處理。
2.讓資料變穩定的方法
(1)趨勢(trend)-資料隨著時間變化。比如說公升高或者降低。
進行差分,使資料增量,放寬平穩要求
季節性(seasonality)-資料在特定的時間段內變動。比如說節假日,或者活動導致資料的異常。
(2)由於原資料值域範圍比較大,為了縮小值域,同時保留其他資訊,常用的方法是對數化,取log。
ts_log = np.log(ts)
檢測和去除趨勢
通常有三種方法:
聚合 : 將時間軸縮短,以一段時間內星期/月/年的均值作為資料值。使不同時間段內的值差距縮小。
平滑: 以乙個滑動視窗內的均值代替原來的值,為了使值之間的差距縮小
多項式過濾:用乙個回歸模型來擬合現有資料,使得資料更平滑。
我這裡使用平滑方法:rolling
(3)rolling方法補充
dataframe.rolling(window, min_periods=none, freq=none, center=false, win_type=none, on=none, axis=0, closed=none)window:表示時間窗的大小,注意有兩種形式(int or offset)。如果使用int,則數值表示計算統計量的觀測值的數量即幾個資料為一組(window)。如果是offset型別,表示時間窗的大小。pandas offset相關可以參考
min_periods:最少需要有值的觀測點的數量,對於int型別,預設與window相等。對於offset型別,預設為1。
freq:從0.18版本中已經被捨棄。
center:是否使用window的中間值作為label,預設為false。只能在window是int時使用。
on:對於dataframe如果不使用index(索引)作為rolling的列,那麼用on來指定使用哪列。
closed:定義區間的開閉,曾經支援int型別的window,新版本已經不支援了。對於offset型別預設是左開右閉的即預設為right。可以根據情況指定為left both等。
axis:方向(軸),一般都是0。
3.取對數
對資料處理的時候我大致經歷過這幾個步驟:
(1)對數化處理、逐期差分消除趨勢性、季節差分消除季節性、檢驗其平穩性、建立模型進行**
根據你要處理的資料情況來具體判斷將用什麼方法。
1.考慮到月度資料存在季節波動的干擾,可採用季節差分消除季節性、x-12 季節調整法等方法處理。
2.考慮到原始資料可能帶來異方差,所以採用季節調整後時間序列資料的對數序列進行相關檢驗和相關模型的估計。
3.如果存在趨勢性,這個好像用個趨勢項變數時間t有時就可以解決.
4.檢驗其平穩,時間序列的平穩性通常是時間序列分析的基礎,本文選用單位根檢驗來驗證時間序列的平穩性。
對於時序資料,1.取對數可克服異方差;2.將巨集觀變數由非線性變為線性的;3.變數取對數後,再取差分,可計算近似增長率。4.取對數後,可得出彈性係數。
從而使是資料更加平穩。
def draw_moving(timeseries, size):f = plt.figure(facecolor='white')
rol_mean = timeseries.rolling(window=size).mean()
rol_weigthed_mean = timeseries.ewm(span=size).mean() # 指數平**
timeseries.plot(color='b', label='對數交換之後的資料')
rol_mean.plot(color="r", label="對數變換後的移步指數平均值")
rol_weigthed_mean.plot(color='g', label='對數變換後移步指數加權平均值')
plt.legend(loc='best')
plt.title("處理後的時序")
似乎平滑了一些。
#下面的相減,只是為了對比沒有log之前的資料的趨勢變化似乎降低了趨勢
以上部分有refer:
第2次實踐作業
上一次作業同學們實現了docker環境的安裝和基本配置,已經能夠從docker的官方映象倉庫中拉取映象,初步實現了入門。然而,從官方倉庫拉取的映象是最簡單的映象,在實際應用中經常需要根據需求額外修改映象,這就涉及到了映象的定製。在docker中我們可以使用dockerfile檔案實現自定義映象,本次...
第2次實踐作業
選擇nginx,標明映象作者資訊,安裝必要的工具以方便維護 設定自己的web存放目錄,安全起見,將預設的監聽埠80更改為自定義的埠,並且宣告暴露的埠,容器啟動時,能直接進入web 的存放目錄。from nginx maintainer作者字段 label maintainer shenkay ngi...
第2次實踐作業
sudo docker pull nginx檢視本地映象 sudo docker images sudo docker run it nginx bin bash檢視容器工作目錄 複製執行中nginx容器的配置檔案,為後續修改監聽埠備用 sudo docker cp 容器id etc nginx c...