Gói R nào được sử dụng để tính toán các tham số thành phần cho mô hình hỗn hợp


8

Tôi muốn điều chỉnh mô hình hỗn hợp với dữ liệu được tạo ra ở Monte Carlo với mật độ xác suất trông giống như trong mô hình đính kèm. mật độ điển hình

Có vẻ như từ kiểm tra trực quan rằng một mô hình hỗn hợp thông thường có thể được áp dụng nhưng khi kiểm tra chế độ xem nhiệm vụ CRAN tôi thực sự không biết gói nào có thể phù hợp với nhu cầu của mình.

Về cơ bản những gì tôi muốn làm là cung cấp một vectơ dữ liệu và sau đó có hàm gói trả về giá trị trung bình, phương sai và tỷ lệ cho từng thành phần trong mô hình hỗn hợp và có lẽ cũng xác định có bao nhiêu thành phần trong mô hình.

Câu trả lời:


8

Hãy thử mixdist

Đây là một ví dụ:

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"   

nhập mô tả hình ảnh ở đây


5

Gói Mclust là tốt đẹp. Hàm mclust phù hợp với hỗn hợp phân phối chuẩn cho dữ liệu. Bạn có thể tự động chọn số lượng thành phần dựa trên BIC ( mclustmodel ) hoặc chỉ định số lượng thành phần. Cũng không cần phải chuyển đổi dữ liệu của bạn thành khung dữ liệu.

Ngoài ra, gói Mixtools và hàm normalmixEM phù hợp với hỗn hợp quy tắc.

Cập nhật: Gần đây tôi đã phát hiện ra gói mixAK và chức năng NMixMCMC và nó thật tuyệt vời. Nó có nhiều tùy chọn, bao gồm cả RJMCMC để lựa chọn thành phần, kiểm duyệt bên trái, v.v ...

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.