Paket R mana yang digunakan untuk menghitung parameter komponen untuk model campuran

8

Saya ingin mencocokkan model campuran dengan data yang dihasilkan Monte Carlo dengan kepadatan probabilitas yang biasanya terlihat seperti pada gambar terlampir. kepadatan tipikal

Tampaknya dari inspeksi visual bahwa model campuran normal mungkin berlaku tetapi saat memeriksa tampilan tugas CRAN saya benar-benar tidak tahu paket mana yang mungkin sesuai untuk kebutuhan saya.

Pada dasarnya yang ingin saya lakukan adalah menyediakan vektor data dan kemudian memiliki fungsi paket mengembalikan mean, varians, dan bobot proporsional untuk setiap komponen dalam model campuran, dan juga mungkin mengidentifikasi berapa banyak komponen yang ada dalam model.

babelproofreader
sumber

Jawaban:

8

Coba mixdist

Ini sebuah contoh:

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"   

masukkan deskripsi gambar di sini

bill_080
sumber
5

Paket Mclust bagus. Fungsi mclust cocok dengan campuran distribusi normals ke data. Anda dapat secara otomatis memilih jumlah komponen berdasarkan BIC ( mclustmodel ) atau menentukan jumlah komponen. Juga tidak perlu mengubah data Anda menjadi bingkai data.

Juga, paket Mixtools dan fungsi normalmixEM cocok dengan campuran normals.

Pembaruan: Saya baru-baru ini menemukan paket mixAK dan fungsi NMixMCMC dan itu hebat. Ini memiliki banyak pilihan, termasuk RJMCMC untuk pemilihan komponen, sensor kiri kanan, dll ...

Lembah kecil
sumber