"확률 및 통계"상태 전이 : 아는 사람 마르코프 체인

두 개의 중요한 확률 과정을 불러 오기.

, 베르누이 과정과 포아송 프로세스가 임의의 프로세스의이 유형이 어떤 메모리 없습니다 : 임의의 프로세스에 대한 개요에서, 우리는 하나이며, 매우, 매우 전형적이고 중요한 확률 과정의 두 가지 유형을 언급 새로운 "성공"또는 "도착"과거의 과정의 역사적 상황에 의존하지 않습니다 - 그는 미래 상태가 과거의 상태에 의존하지 않는다고 말했다.

그것을 마르코프 과정 - 다른 하나는 정반대이지만, 미래의 상황은 과거의 경우에 따라, 등이 우리의 핵심 내용 중 하나와 같은 방법으로 과거에 일어난를 통해 미래를 예측 할 수있는 것 우리는 심층 많은 분야에서 응용 프로그램의 넓은 범위가 있습니다.

이산 시간 마르코프 체인

마르코프 체인 세 요소

이 프로세스는 마르코프 연쇄 두 이산 시간 마르코프 연쇄 연속 시간으로 분할되도록, 시간이 지남에 따라 발생하는 상태 변화의 종류이다. 우리는 먼저 상태 변경 결정 이산 시간 지점에서 발생, 이산 시간 마르코프 체인을 고려하십시오.

: 세 가지 핵심 개념 마르코프 이산 시점 이산 시간 상태 공간, 전이 확률 .

이산 시간 마르코프 체인, 우리는 일반적으로 시간이 N을 나타내는 데, Xn을이 시점에서 상태 마르코프 연쇄로 표시하고 명백하게 모든 상태 마르코프 연쇄는 세트 S, 세트 S를 구성하는 것 우리는 상태 공간은 이산 시간 마르코프 체인 인 호출.

전이 확률 : 그래서,이 상태 공간에 따라, 우리는 두 번째 마르코프 체인의 개념을 논의했다. 전이 확률 때문에 설명되어 마르코프 체인의 현재 상태는 이산 시간 전이면, J 우리라고도하는 확률을 다음 상태 전이 확률 동일 \ (P_ {} \ 중 IJ)를 .

전이 확률 \ (IJ P_ {} \) 성질은 조건부 확률에 의해 표현 될 수있다 :

\ (IJ P_ {} = P (X_ {N + 1} = J | X_ {N} = 1), I, J ∈S \)

우리는 다음과 같은 세 가지 이산 시간 마르코프 체인 상태를주고, 그 전이 확률은 다음과 같습니다

운동 집에서 또는 외부에 집, 또는 먹는 음식의 세 가지 상태의 "느낌 고대 명나라"그는이 세 가지 상태 중 하나에 모든 날이 그림에 표시된. 오늘 "고대 명나라는 느낌"홈 홈 내일, 그는 여전히 확률은 식품 내일 0.6, 운동 밖으로 내일의 확률을 먹고 외출, 가정의 확률이 0.2 집 경우는의 "고대 명나라 잠"상태 공간 인 0.2 자신의 전이 확률의 몇 가지.

마르코프 속성

우리는 이산 시간, 공간과 상태 전이 확률은 이산 시간 마르코프 체인의 구성 요소가 말할 경우, 마르코프 속성 기능은 영혼이다.

당시 상태만큼 N I는 마르코프 연쇄 과거에 일어난없이 관계없이 마르코프 체인의 상태 나 시간에 도달 N + 1이 주 J 일정 확률로 전송이다 :은 다음과 같이 기능을 구체적으로 설명한다 그들은 전이 확률이다 \ (P_ {IJ} \)

우리는 여전히 오늘은 음식, 더 스포츠, 숙박 집에서 그녀의 어제 상관 먹고있다 "느낌 고대 명나라"같은 설명, 위의 그림을 사용, 확률 그는, 0.3 즉, 동일, 외출하는 내일의 움직임을 가서 음식을 먹고 계속 동일 또는 0.6의 확률. 대답 프로필은 이것이다 : 다음 상태 만 상태의 초기 역사에 관계없이 현재 상태와 관련이 있습니다.

7788 언어가 말했다 너무 많은, 예를 들어 아이이지만, 이론적 측면, 사실, 표현의 수학적 언어 또는 조건부 확률 방정식 물건의 구현에 :

즉, 모든 n에 시간 상태 공간 I, J ∈ S, 및 N (즉, 기록)하기 전에 타임 가능한 상태 시퀀스 중 어느 상태 \ (I_ {0} I_ {1} ... ., 1-N-I_ {} \). 이다 :

\ (P (X_ {N + 1} = J | X_ {N} = 1, X_ {N-1} = 1-1, ..., X_ {0} = i_0) = P (X_ {N + 1 } = J | X_n = I) = P_ {ij에} \)

그것은 매우 간단합니다 : 다음 상태 \ (X_ {N + 1} \) 상태가 이전 상태에만 의존 \ (X_n \)

전이 확률 및 상태 천이 행렬

문제는,이 전이 확률 그래서 \ (P_ {IJ} \) 어떤 종류의 재산 그것의는? 먼저 \ (IJ P_ {} \) 비 - 음성을 만족한다, 그것은 필요

둘째, 참고 \ (Σ_.} = {1}의 J P_ ^ {m} = {(IJ)의. 1 \) , 모든 I 방정식이 확립된다. 사실, 이것은 물론 우리가 아직 상태 다이어그램 "잠 고대 명나라"에 위에 빛나는보기 것을 알 수있다. 예를 들어, 오늘 그녀는 집에 내일 확률이 0.2, 0.2, 음식의 확률이 세 값의 확률에 관계없이 내일이 0.6 외식을하다, 어떻게 할당 할 내일을 이동 가능성, 조금 남아 계속 그녀의 집에서 집, 그래서 예이며, 세의 합이 1과 같아야한다.

여기에서 우리는 J는 = 내가, 즉 때, 조금 특별한 상황을보고 \ (P_ {IJ가} \) 문제를 값. 사실, "잠을 고대 명나라."는에서 숙박 홈 내일, 집에서 집에있는 오늘의 상황에 해당 상태가 변경되지 않은,하지만 우리가 고려 될 수 있지만 상태는 특별한 전송, 전송 자체를 가지고있다.

상태 공간 S에있어서, i 및 j는 전이 확률을 갖는 임의의 두 상태 사이 \ (P_ {} \ 중 IJ) , 만족 \ (P_ {} \ 중 IJ)  ≥ 0 (때이 상태 J에 명시되지 경우 \ (P_ 중 IJ {} \) = 0). 우리는 로우 나 컬럼 J 소자는 2 차원 행렬로 구성 상태 공간의 순서에 따라 상태 사이의 모든 전이 확률 캔 상기 그래서 \ (P_ {} \ 중 IJ) 다음 이차원 매트릭스 :

그것은 호출 전이 확률 행렬 에 대응하는 상기 마르코프 체인의 특성을 특성화.

我们沿用"古明地觉"的例子:我们令状态 1 为宅在家中;状态 2 为运动;状态 3 为吃美食,那么这个马尔科夫链就是一个 3×3 的 2 维矩阵。

马尔科夫链性质的总结

到这里,我们有必要停下来梳理一下马尔科夫链的最基本性质,一个马尔科夫链由以下主要特征确定:

  • 第一是状态集合S = {1, 2, 3, ..., m}
  • 第二是可能发生状态转移的(i, j),即那些\(P_{ij} > 0\)的状态对;
  • 第三是\(P_{ij}\)的取值;

而这三点都可以最终由一个二维的转移概率矩阵所描述。

并且由该上述特征所描述的马尔科夫链是一个随机变量序列\(X_{0},X_{1},X_{2},...,X_{n}\),它们取值于状态空间S,并且满足:对于任意的时间n,所有状态i,j∈S,以及之前所有可能的状态序列:\(i_{0},i_{1},...,i_{n}\),均有:

\(P(X_{n+1} = j|X_{n}=i,X_{n-1}=i-1,...,x_{0}=i_0) = P(X_{n+1} = j|X_n=i) = P_{ij}\)

一步到达与多步转移

刚才我们花大篇幅介绍的转移概率\(P_{ij}\)给出的是从状态i一步到达状态j的转移概率\(P_{ij} = P(X_{n+1}=j|X_{n}=i)\)。那么我们进一步拓展,我们不是通过一步,而是通过m步(其中m>1)从状态i转移到状态j,那么这个对应的就是m步的状态转移概率。

写成条件概率的形式就是:

\(P^{m}(i, j) = P(X_{n+m} = j|X_{n} = i)\)

这里我们换一个例子来看看,社会的流动性问题是大家都非常关注的一个问题,社会的流动性强,社会的底层通过自身的努力使得家族向社会中层甚至上层流动是社会始终保持活力重要推动力。

社会学中就有一个非常有名的反映社会阶层流动的马尔科夫链,在这个马尔科夫链的状态空间中,有三个状态,状态 1 是处于贫困水平,状态 2 是中产阶级,状态 3 是财富自由,它的状态转移矩阵为:

我们不讨论这里面数据的合理性和准确性,单单就事论事,如\(P_{13}=0.1\),表示如果这一代人处于贫困水平,下一代人想成为财富自由的概率为 0.1,而继续处于贫困水平的概率要大得多,为 0.7。而如果这一代人处于财富自由的水平,那么他的下一代处于财富自由的概率也要大不少,为 0.4。

那么,我们现在思考这么一个问题,假设爷爷处于贫困水平(状态 1),那么父亲处于中产阶级(状态 2),而你处于财富自由水平(状态 3)的概率有多大?

从哪里入手呢?还是紧扣定义,从条件概率表达式入手:

\(P(X_{2}=3,X_{1}=2|X_{0}=1)\) = $ P(X_{2}=3,X_{1}=2,X_{0}=1) \over P(X_{0}=1)$

=\(P(X_{2}=3,X_{1}=2,X_{0}=1) \over P(X_{1}=2,X_{0}=1)\) · \(P(X_{1}=2,X_{0}=1) \over P(X_{0}=1)\)

=\(P(X_{2}=3|X_{1}=2,X_{0}=1) · P(X_{1}=2,X_{0}=1)\)

由于这是一个马尔科夫链,因此满足:

\(P(X_{2}=3|X_{1}=2,X_{0}=1) = P(X_{2}=3|X_{1}=2)\)

因此有:

\(P(X_{2}=3,X_{1}=2|X_{0}=1) = P(X_{2}=3|X_{1}=2)P(X_{1}=2|X_{0}=1)\)

对应到转移概率矩阵中,就是从状态 1 转移到状态 2 的概率乘以从状态 2 转移到状态 3 的概率:

\(P_{12}P_{23} = 0.2·0.2 = 0.04\)

接下来我们不指定父亲的状态,只看这么一个问题,就是假设爷爷是贫困水平(状态 1),问孙子处于财富自由(状态 3)状态的概率有多大?

那么这里只指定了爷爷和孙子所处的状态,那么父亲这一代可以是处于贫穷、中产和财富自由中的任意一种状态,那么这个概率的表达式写起来也很简单:

\(P(X_{2}=3|X_{0}=1) = P(X_{2}=3,X_{1}=1|X_{0}=1) + P(X_{2}=3,X_{1}=3|X_{0}=1)=P_{11}P_{13}+P_{12}P_{23}+P_{13}P_{33}\)

\(=∑_{k=1}^{3}P_{1k}P_{k3}=0.7·0.1+0.2·0.2+0.1·0.4=0.15\)

上面具体计算出来的结果对我们而言其实并不重要,我们重点还是回过头来看这个式子:

\(P(X_{2}=3|X_{0}=1) = P_{11}P_{13}+P_{12}P_{23}+P_{13}P_{33}\)

对线性代数熟悉的同学应该对这个等式很敏感,它实际上就是

该转移矩阵中,第一行和第三列点乘的结果,如果按照矩阵相乘的运算法则,这个计算出来的结果恰好位于结果矩阵的第一行第三列,也正对应了从状态 1 到状态 3,两步状态转移的概率值。

试想,如果我们将概率转移矩阵与自身相乘,也就是求它的二次幂,即:

那么得到的新的 3×3 的二维矩阵里就包含了所有状态间,通过两步到达的概率值:

import numpy as np

A = np.array([[0.7, 0.2, 0.1],
              [0.3, 0.5, 0.2],
              [0.2, 0.4, 0.4]])


print(A @ A)
"""
[[0.57 0.28 0.15]
 [0.4  0.39 0.21]
 [0.34 0.4  0.26]]
"""

从结果中我们可以看出,第一行第三列确实就是我们刚刚求出来的概率值 0.15。

那么以此类推,我们想看看 n 步状态转移概率,那么就是求取上面的状态转移矩阵的n次幂

from functools import reduce
import numpy as np

A = np.array([[0.7, 0.2, 0.1],
              [0.3, 0.5, 0.2],
              [0.2, 0.4, 0.4]])


print(np.array(reduce(np.ndarray.__matmul__, [A] * 3)))
"""
[[0.513 0.314 0.173]
 [0.439 0.359 0.202]
 [0.41  0.372 0.218]]
"""
print(np.array(reduce(np.ndarray.__matmul__, [A] * 5)))
"""
[[0.47683 0.3353  0.18787]
 [0.46251 0.34373 0.19376]
 [0.45662 0.34708 0.1963 ]]
"""
print(np.array(reduce(np.ndarray.__matmul__, [A] * 10)))
"""
[[0.46823165 0.34033969 0.19142866]
 [0.4679919  0.34048014 0.19152797]
 [0.46789259 0.3405383  0.19156911]]
"""
print(np.array(reduce(np.ndarray.__matmul__, [A] * 20)))
"""
[[0.46808515 0.34042551 0.19148934]
 [0.46808508 0.34042555 0.19148937]
 [0.46808505 0.34042556 0.19148938]]
"""
print(np.array(reduce(np.ndarray.__matmul__, [A] * 100)))
"""
[[0.46808511 0.34042553 0.19148936]
 [0.46808511 0.34042553 0.19148936]
 [0.46808511 0.34042553 0.19148936]]
"""

很显然,随着 n 的逐渐增大,n 步状态转移矩阵收敛于:

[[0.46808511 0.34042553 0.19148936]
 [0.46808511 0.34042553 0.19148936]
 [0.46808511 0.34042553 0.19148936]]

我们发现,它每行的三个元素都是一模一样的,这说明不论你现在是贫穷水平、中产阶级还是财富自由,过了很多代以后,你的后代落入到三个阶层中任意一个阶层的概率都是一定的。而且最大的概率都是变成贫困阶层。当然这个只是我们依据给定的数据计算而来,具体是否符合社会学的常识,就不是我们所关心的问题了。不过确实也说明,富有从来不是一件容易的事儿。

最后我们看看由 n 步转移概率所派生出来的路径概率问题。

给定一个马尔科夫链模型,我们可以计算未来任何一个给定状态序列的概率,特别的我们有:

\(P(X_{0}=i_{0},X_{1}=i_{1},...,X_{n}=i_{n})=P(X_{0}=i_{0})P_{i_{0}i_{1}}P_{i_{1}i_{2}}···P_{i_{n-1}i_{n}}\)

这个结合马尔可夫性和条件概率的描述形式,说明起来也是非常简单。

首先由贝叶斯定理可得:

\(P(X_{0}=i_{0},X_{1}=i_{1},...,X_{n}=i_{n})=P(X_{n}=i_{n}|X_{0}=i_{0},X_{1}=i_{1},...,X_{n-1}=i_{n-1})P(X_{0}=i_{0},X_{1}=i_{1},X_{2}=i_{2},...X_{n-1}=i_{n-1})\)

然后依照马尔可夫性:

\(P(X_{n}=i_{n}|X_{0}=i_{0},X_{1}=i_{1},...,X_{n-1}=i_{n-1})=P(X_{n}=i_{n}|X_{n-1}=i_{n-1}) = P_{i_{n-1}i_{n}}\)

从而得到:

\(P(X_{0}=i_{0},X_{1}=i_{1},...,X_{n}=i_{n})= P_{i_{n-1}i_{n}}P(X_{0}=i_{0},X_{1}=i_{1},...,X_{n-1}=i_{n-1})\)

然后我们在这个式子的基础上不断递推就能得到最开始的:

\(P(X_{0}=i_{0},X_{1}=i_{1},...,X_{n}=i_{n})= P(X_{0}=i_{0})P_{i_{0}i_{1}}P_{i_{1}i_{2}}···P_{i_{n-1}i_{n}}\)

这个路径问题举个例子就很好理解了,比如从你的太爷爷开始,太爷爷是贫穷,爷爷是贫穷,爸爸是中产,你是财富自由,你儿子中产,你孙子贫穷,这就是一个路径,当然是一个非常悲剧,典型的努力拼搏最后又富不过三代的悲剧路径:那么路径概率是\(P(X_{0}=1)P_{11}P_{12}P_{23}P_{32}P_{21}\),最左边的 \(P(X_{0}=1)\) 表示太爷爷是贫穷的概率,这个值指定了,整个路径的概率就可以计算出来了。

추천

출처www.cnblogs.com/traditional/p/12609648.html