混合モデルのコンポーネントパラメータの計算に使用するRパッケージ


8

混合モデルをモンテカルロ生成データに当てはめたいと思いますが、確率密度は通常、添付の画像と同じです。 典型的な密度

視覚的な検査からは、通常の混合モデルが適用できる可能性があるように見えますが、CRANタスクビューのチェックでは、どのパッケージが自分のニーズに適しているのか本当にわかりません。

基本的に私がやりたいのは、データのベクトルを提供し、次にパッケージ関数に混合モデルの各コンポーネントの平均、分散、および比例重みを返させ、モデルにあるコンポーネントの数を特定することです。

回答:


8

トライ mixdist

次に例を示します。

library(mixdist)  

#Build data vector "x" as a mixture of data from 3 Normal Distributions  
x1 <- rnorm(1000, mean=0, sd=2.0)  
x2 <- rnorm(500, mean=9, sd=1.5)  
x3 <- rnorm(300, mean=13, sd=1.0)  
x <- c(x1, x2, x3)  

#Plot a histogram (you'll play around with the value for "breaks" as    
#you zero-in on the fit).   Then build a data frame that has the  
#bucket midpoints and counts.  
breaks <- 30  
his <- hist(x, breaks=breaks)  
df <- data.frame(mid=his$mids, cou=his$counts)  
head(df)  

#The above Histogram shows 3 peaks that might be represented by 3 Normal  
#Distributions.  Guess at the 3 Means in Ascending Order, with a guess for  
#the associated 3 Sigmas and fit the distribution.  
guemea <- c(3, 11, 14)  
guesig <- c(1, 1, 1)  
guedis <- "norm"  
(fitpro <- mix(as.mixdata(df), mixparam(mu=guemea, sigma=guesig), dist=guedis))  

#Plot the results  
plot(fitpro, main="Fit a Probability Distribution")  
grid()  
legend("topright", lty=1, lwd=c(1, 1, 2), c("Original Distribution to be Fit", "Individual Fitted Distributions", "Fitted Distributions Combined"), col=c("blue", "red", rgb(0.2, 0.7, 0.2)), bg="white")  


===========================  


Parameters:  
      pi     mu  sigma  
1 0.5533 -0.565 1.9671  
2 0.2907  8.570 1.6169  
3 0.1561 12.725 0.9987  

Distribution:  
[1] "norm"  

Constraints:  
   conpi    conmu consigma   
  "NONE"   "NONE"   "NONE"   

ここに画像の説明を入力してください


5

パッケージMclustはいいです。mclustの機能は、データへの法線分布の混合物に適合します。BIC(mclustmodel)に基づいてコンポーネントの数を自動的に選択するか、コンポーネントの数を指定できます。また、データをデータフレームに変換する必要もありません。

また、Mixtoolsパッケージと関数normalmixEMは、法線の混合に適合します。

更新:私は最近mixAKパッケージとNMixMCMC機能を発見しました、そしてそれは素晴らしいです。コンポーネントの選択、右左打ち切りなどのRJMCMCを含む多くのオプションがあります...

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.