A. python 時間序列模型中forecast和predict的區別
舉例說明,2017.01.01-.017.12.31的周期為12的月度數據中,用ARIMA擬合得到模型model。
model.get_prediction(start='2017.09.01')則得到用擬合模型計算出來的樣本內2017.09.01-2017.12.31的預測值;
model.get_forcast(step=5)則得到樣本外推5期即2018.01.01-2018.05.31五個月的預測值;
註:
model.get_prediction也可做外推值的預測,設定好具體終止周期即可。
B. stata中的ologit模型,用predict命令預測各個取值的概率之後如何確定最終應該選取哪個值
得到的本身就是概率值了
C. 隱式馬爾科夫模型 及 Python + HMMlearn的使用
hmmlearn
隱式馬爾科夫模型Hidden Markov Models(HMMs) 是一種通用的概率模型。一個可觀測的變數X的序列被一個內部的隱藏狀態Z所生成。其中,隱藏狀態Z無法被直接觀測。在隱藏狀態之間的轉移被假設是通過 馬爾科夫鏈(Markov chain) 的形式。
模型可以表示為 起始概率向量 和轉移概率矩陣 . 一個觀測量生成的概率可以是關於 的任意分布, 基於當前的隱藏狀態。
HMMs的3個基本問題:
hmmlearn 是Python支持HMMs的包。原來是sklearn的一部分,後來由於介面不一致分成單獨的包了。不過使用起來和sklearn的其他模型類似。
構造HMM model:
初始化的參數主要有 n_components , covariance_type , n_iter 。每個參數的作用我還沒有研究。
通過 fit 方法。
輸入是一個矩陣,包含拼接的觀察序列concatenated sequences of observation (也就是samples),和序列的長度。
EM演算法是背後擬合模型的演算法。基於梯度優化的方法。通常會卡到一個局部極優值上。通常用戶需要用不同的初始化跑多次 fit ,然後選擇分數最高的模型。
分數通過 score 方法計算。
推導出的最優的隱藏狀態可以調用 predict 方法獲得。 predict 方法可以指定解碼器演算法。當前支持的有 viterbi (Vierbi algorithm)和 map (posteriori estimation)。