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)。