实习指导 --《计量地理学》(徐建华,华东师范大学)
§11. 利用 Matlab 编程进行马尔可夫预测
利用 Matlab 和 SPSS 学软件进行 Markov 分析是非常方便的,只需要进行相
应的矩阵乘法即可。
1.原始数据
以下我们以教材第 3 章第 7 节中的例子,进行分析计算。
例如,考虑某地区农业收成变化的三个状态,即“丰收”、“平收”和“欠收”。
记 E1 为“丰收”状态,E2 为“平收”状态,E3 为“欠收”状态。表 3.7.1 给出
了该地区 1965~2004 年期间农业收成的状态变化情况。试计算该地区农业收成
变化的状态转移概率矩阵。
表 3.7.1 某地区农业收成变化的状态转移情况
年份
序号
状态
年份
序号
状态
年份
序号
状态
年份
序号
状态
1965
1
E1
1975
11
E3
1985
21
E3
1995
31
E1
1966
2
E1
1976
12
E1
1986
22
E3
1996
32
E3
1967
3
E2
1977
13
E2
1987
23
E2
1997
33
E2
1968
4
E3
1978
14
E3
1988
24
E1
1998
34
E1
1969
5
E2
1979
15
E1
1989
25
E1
1999
35
E1
1970
6
E1
1980
16
E2
1990
26
E3
2000
36
E2
1971
7
E3
1981
17
E1
1991
27
E2
2001
37
E2
1972
8
E2
1982
18
E3
1992
28
E2
2002
38
E3
1973
9
E1
1983
19
E3
1993
29
E1
2003
39
E1
1974
10
E2
1984
20
E1
1994
30
E2
2004
40
E2
2. 马尔可夫预测的基本原理
(1)首先计算状态转移概率矩阵
假定某一个事件的发展过程有 n 个可能的状态,即 E1,E2, …,En。记
ijP
为从状态 转变为状态 的状态转移概率,则矩阵
iE
jE
70
实习指导 --《计量地理学》(徐建华,华东师范大学)
P
=
P
11
P
21
M
P
n
1
⎡
⎢
⎢
⎢
⎢
⎣
P
12
P
22
M
P
n
2
L
L
M
L
P
n
1
P
2
n
M
P
nn
⎤
⎥
⎥
⎥
⎥
⎦
从表 3.7.1 中可以知道,在 15 个从 E1 出发(转移出去)的状态中,有 3 个
是从 E1 转移到 E1 的(即 1→2,24→25,34→35),有 7 个是从 E1 转移到 E2
的(即 2→3,9→10,12→13,15→16,29→30,35→36,39→40),有 5 个是
从 E1 转移到 E3 的(即 6→7,17→18,20→21,25→26,31→32)。
所以
P
11
=
EP
(
1
P
12
=
EP
(
1
P
13
=
EP
(
1
=→
E
1
)
EEP
(
1
1
)
=
3
15
=
.0
2000
=→
E
)
2
=→
E
)
3
EEP
(
1
2
)
=
EEP
(
1
3
)
=
7
15
5
15
=
.0
4667
=
.0
3333
按照上述同样的办法计算可以得到
P
21
=
EP
(
2
P
22
=
EP
(
2
P
23
=
EP
(
2
P
31
=
EP
(
3
P
32
=
EP
(
3
P
33
=
EP
(
3
=→
E
1
)
EEP
(
1
2
)
=
7
13
=
.0
5385
=→
E
)
2
=→
E
)
3
=→
E
1
)
=→
E
)
2
=→
E
)
3
EEP
(
2
2
)
=
EEP
(
3
2
)
=
2
13
4
13
=
.0
1538
=
.0
3077
EEP
(
1
3
)
=
4
11
=
.0
3636
EEP
(
2
3
)
=
EEP
(
3
3
)
=
5
11
2
11
=
.0
4545
=
.0
1818
71
实习指导 --《计量地理学》(徐建华,华东师范大学)
所以,该地区农业收成变化的状态转移概率矩阵为
P
=
.0
.0
.0
2000
5385
3636
⎡
⎢
⎢
⎢
⎣
.0
.0
.0
4667
1538
4545
.0
.0
.0
3333
3077
1818
⎤
⎥
⎥
⎥
⎦
(2)进行预测计算
状态概率
π j
(k)
表示事件在初始(k=0)状态为已知的条件下,经过 k 次状
态转移后,在第 k 个时刻(时期)处于状态 的概率。根据概率的性质,显然
jE
有:
n
∑
j
1
=
j kπ
1)(
=
从初始状态开始,经过 k 次状态转移后到达状态 这一状态转移过程,可
jE
以看作是首先经过(k-1)次状态转移后到达状态
i
(E i
,2,1
L=
n
),
,然后再由 经
iE
过一次状态转移到达状态 。根据马尔可夫过程的无后效性及 Bayes 条件概率
jE
公式,有:
π
j
k
)(
n
= ∑
i
1
=
π
j
(
k
−
)1
P
ij
(
j
,2,1
L=
n
),
若记行向量
π
k
)(
=
[
ππ
2
),
k
(
1
(
k
),
,
nπ
L
(
k
)]
,则由(3.7.7)式可以得到逐次计
算状态概率的递推公式:
=
=
)1(
)2(
)0(
ππ
⎧
⎪
)1(
π
π
⎪
⎨
⎪
⎪
π
⎩
M
(
π
k
)(
=
k
P
P
=
π
)0(
P
1
−
)1
P
=
L
=
π
)0(
kP
72
实习指导 --《计量地理学》(徐建华,华东师范大学)
式中:
π
)0(
=
[
ππ
2
),0(
1
),0(
,
nπ
L
)]0(
为初始状态概率向量。
3.利用 Matlab 编程进行马尔可夫预测计算
以 2004 年的农业收成状态为初始状态,预测今后 11 年(即 2005-2015)
中每一年的农业收成状态。
源程序(markov.m),如下:
clear
clc
% 读入状态转移概率矩阵
p=[0.2000 0.4667 0.3333;0.5385 0.1538 0.3077;0.3636 0.4545 0.1818];
% 读入初始状态概率向量(2004 年的农业收成状态)
x=[0,1,0];
% 预测今后 11 年(即 2005-2015)的农业收成状态
for i=1:11,
y=x*p^i
end
程序运行后,输出结果如下:
y =
0.5385 0.1538 0.3077
y =
0.3024 0.4148 0.2827
y =
0.3867 0.3334 0.2798
y =
0.3586 0.3589 0.2823
73
实习指导 --《计量地理学》(徐建华,华东师范大学)
y =
0.3677 0.3509 0.2813
y =
0.3648 0.3534 0.2817
y =
0.3657 0.3526 0.2815
y =
0.3654 0.3529 0.2816
y =
0.3655 0.3528 0.2815
y =
0.3654 0.3528 0.2815
y =
0.3654 0.3528 0.2815
74