组合事件的马尔可夫链?


6

我想知道如何将马尔可夫稳态链应用于遗传学,眼睛颜色的简单案例。

假设是棕色,绿色或蓝眼睛的概率,给你的父母一定的颜色组合是:

Br + Br - Br 75% , Gr 18.75% , Bl 6.25% 
Gr + Br - Br 50% , Gr 37.5% , Bl 12.5% 
Bl + Br - Br 50% , Gr 0%  , Bl 50% 
Gr + Gr - Br 0.5% , Gr 74.75% , Bl 24.75% 
Gr + Bl - Br 0% , Gr 50% , Bl 50% 
Bl + Bl - Br 0% , Gr 1%  , Bl 99% 

相应的矩阵:

{{3/4, 1/2, 1/2, 0.005, 0, 0}, {0.1875, 0.375, 0, 0.7475, 1/2, 1/ 
    100}, {0.0625, 0.125, 1/2, 0.2475, 1/2, 99/100}} 

我想找到稳定状态为人口的眼睛颜色。

+2

存在如果你已经取得了在解决这个自己的任何企图将是一个好主意,分享尝试。提供已经为Mathematica格式化的数据也很感激。 28 8月. 132013-08-28 01:43:39

  0

这个问题需要一个初始的基因型频率。基因型交配概率的一些假设或说明,然后使用孟德尔遗传规则为基因型(作为状态)开发转换矩阵。在确定给定初始状态的静态(稳态)分布之后,可以从基因型 - 表型关系推断眼睛颜色。你有,虽然行添加到1的矩阵,是不是一个过渡矩阵,如项目(1,1)是不是从状态1到我还没有做出任何地方领导的任何企图状态1等 28 8月. 132013-08-28 04:20:02

  0

过渡。我在twitter上看到了价值表,并立即想知道稳态会是什么。我愿意承担任何一个人可以娶地球上任何其他人,以消除任何区域差异有可能是,但我希望这是可能以某种方式使用稳态的那个人是Br /石墨的概率/ Bl和B相同,并解决?我没有详细研究马尔可夫链,看起来它比我所希望的复杂得多。 28 8月. 132013-08-28 08:14:12

  0

我想到了设置:P(布朗)= 0.75 * P(布朗)* P(布朗)* ...等,将假设存在具有带人带一个孩子的棕色眼睛的人的可能性均等绿色,蓝色或棕色的眼睛(所以没有偏爱从特定的眼睛颜色到特定的眼睛颜色),并且眼睛的颜色普遍传播。这似乎导致了一个解决方案,但我没有数学包,Wolfram Alpha有太多的术语。 09 9月. 132013-09-09 17:03:17

2

这是一个简单而且可能无用的实现。想象一下马尔可夫链中的九个状态。每个状态是一个有序对,从 $(Br,\Gr,\Bl)$ 绘制,描述一个人和他们的伴侣的眼睛颜色。如果你假设一个人用三种眼睛颜色中的一种选择配偶的概率相等,那么我认为下面的马尔科夫过程跟踪了通过无限族谱(或者我在下面模拟的100代)的单一路径:

proc = DiscreteMarkovProcess[Table[1/9, {9}], 
  [email protected][Table[p, {3}], {p, #}]/3 & /@ { 
   {0.75, 0.1875, 0.0625}, 
   {0.5, 0.375, 0.125}, 
   {0.5, 0, 0.5}, 
   {0.5, 0.375, 0.125}, 
   {0.005, 0.7475, 0.2475}, 
   {0, 0.5, 0.5}, 
   {0.5, 0, 0.5}, 
   {0, 0.5, 0.5}, 
   {0, 0.01, 0.99}}]; 
ListPlot[RandomFunction[proc, {0, 100}], 
  Filling -> Axis, TicksStyle -> 16, ImageSize -> 500, 
  Ticks -> {Automatic, Flatten[Table[{3 (i - 1) + j, 
   StringJoin[{"(", {"Br", "Gr", "Bl"}[[i]], ",", {"Br", "Gr", "Bl"}[[j]], ")"}]}, 
   {i, 3}, {j, 3}], 1]} 
] 

enter image description here

几乎没有用!但作为一个马尔可夫链模拟的简单例子,可能有趣呢?当然,这里没有稳定的状态......


2

这是一个模拟,也许会激励更好的答案或可以适应。在下面的:

  • 起始群体是(1/3,1/3,1/3)蓝:棕色:绿色

  • 每一代产生一个子从一个耦合带颜色的概率按照OP

  • 无死亡病例

再次,这是只是一个玩具的例子来说明在上述假设人口的时间演变。该GIF是vis/@sim[100,1000]下取样:

mat = Transpose[{{3/4, 1/2, 1/2, 0.005, 0, 0}, {0.1875, 0.375, 0, 
    0.7475, 1/2, 1/100}, {0.0625, 0.125, 1/2, 0.2475, 1/2, 99/100}}]; 
mnpar = {{"Blue", "Blue"} -> mat[[6]], {"Blue", "Brown"} -> 
    mat[[3]], {"Blue", "Green"} -> mat[[5]], {"Brown", "Brown"} -> 
    mat[[1]], {"Brown", "Green"} -> mat[[2]], {"Green", "Green"} -> 
    mat[[4]]}; 
fun[1, 0, 0] := "Blue"; 
fun[0, 1, 0] := "Brown"; 
fun[0, 0, 1] := "Green"; 
sim[n_, num_] := 
Module[{rv = 
    RandomVariate[MultinomialDistribution[1, {1/3, 1/3, 1/3}], n]}, 
    Map[fun, 
    NestList[{RandomVariate[ 
     MultinomialDistribution[ 
     1, (Sort[fun @@@ RandomSample[#, 2]] /. mnpar)]]}~Join~# &, 
    rv, num], {2}] 
    ] 
vis[lst_] := Module[{col = {"Blue", "Brown", "Green"}, tly}, 
    tly = {#, Count[lst, #]} & /@ col; 
    BarChart[#2/Total[tly[[All, 2]]] & @@@ tly, ChartLabels -> col, 
    PlotLabel -> Row[{"Population:", Total[tly[[All, 2]]]}], 
    LabelingFunction -> Above, PlotRange -> {0, 0.5}, Frame -> True, 
    ChartStyle -> {Blue, Brown, Green}]] 

enter image description here


-2

X是眼睛颜色概率分布(基于我已经在网上看了它看起来像当人口仅基于包括标准化那些有棕色,绿色或蓝色的眼睛该出来给布朗:85%,绿色:3%,蓝:12%)

Ÿ是眼睛的颜色给父母的概率,给你提供的号码和ü唱有序的眼睛的颜色对(两个GR-BR和BR-GR将存在),这需要形式

[[ 0.75 0.1875 0.0625] [ 0.5  0.375 0.125 ][ 0.5  0.  0.5 ][ 0.5  0.375 0.125 ][ 0.005 0.7475 0.2475][ 0.  0.5  0.5 ][ 0.5  0.  0.5 ][ 0.  0.5  0.5 ][ 0.  0.01 0.99 ]] 

数学在每代基本是这样的

重复在模拟生成的数目:

X * X^T = P where P is the joint probability distribution of parents with an eye color pair 

X = vec(P) * Y yields the next generation's distribution of eye colors. 

针对人们可以直觉地认为,蓝色眼睛似乎随着时间的推移占主导地位。 10代后,在人口的约25%存在棕色的眼睛,格林在19%存在和蓝色56%

+3

请为此显示* Mathematica *代码。 (这是关于如何使用* Mathematica *的网站。) 17 1月. 182018-01-17 00:33:20

  0

对不起,我不知道如何使用Mathematica!我只是想展示用来解决问题的数学方法,以防有人想尝试。其他解决方案提供了Mathematica代码,但似乎错过了这个问题的要点。 17 1月. 182018-01-17 15:51:55