最大熵,三硬币模型的R语言代码
生活随笔
收集整理的這篇文章主要介紹了
最大熵,三硬币模型的R语言代码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#最大熵算法
#《 統計學習方法》最大熵,三硬幣模型的R語言代碼
? ?有3個硬幣,分布為A、B、C,硬幣正面的概率是pai,p,q。投幣實驗如下,先投A,如果A是正面,即A=1,那么選擇投B;A=0,投C。
? 最后,如果B或者C是正面,那么y=1;是反面,那么y=0;
? 投n次,n=0,結果序列是 :1,1,0,1,0,0,1,0,1,1
Θ是向量pai,p,q。
y是觀察到的硬幣最終的正反面。
Z是硬幣A的投擲結果,是沒有未觀察到的。??
theta=c(0.4,0.6,0.7); pai=theta[1]; p=theta[2]; q=theta[3];y=c(1,1,0,1,0,0,1,0,1,1); n=length(y);u=seq(1,10,by=1);for(i in 1:100) {for( j in 1:n){ t=pai*p^y[j]*(1-p)^(1-y[j]);s=(1-pai)*q^y[j]*(1-q)^(1-y[j]);u[j]= t/(t+s); }pai=1.0*(sum(u))/n; p=sum(u*y)/sum(u); q=sum((1-u)*y)/sum(1-u); }pai p q
總結
以上是生活随笔為你收集整理的最大熵,三硬币模型的R语言代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: webService和WebApi的区别
- 下一篇: 【教程】Spire.PDF教程:如何给P