【原创】R语言实现有限混合模型建模数据分析报告论文(附代码数据)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
务(附代码数据),咨询QQ:3025393450
有问题到百度搜索“大数据部落”就可以了
欢迎登陆官网:/datablog
R语言实现有限混合模型建模分析
介绍
有限混合模型在应用于数据时非常有用,其中观察来自不同的群体,并且群体隶属关系未知。
模拟数据
首先,我们将模拟一些数据。
让我们模拟两个正态分布 - 一个平均值为0,另一个平均值为50,两者的标准差为5。
m1<-0
务(附代码数据),咨询QQ:3025393450
有问题到百度搜索“大数据部落”就可以了
欢迎登陆官网:/datablog
m2<-50
sd1<-sd2<-5
N1<-100
N2<-10
a<-rnorm(n=N1,mean=m1,sd=sd1)
b<-rnorm(n=N2,mean=m2,sd=sd2)
现在让我们将数据“混合”在一起......
x<-c(a,b)
class<-c(rep('a',N1),rep('b',N2))
data<-data.frame(cbind(x=as.numeric(x),class=as.factor(class)))
library("ggplot2")
p<-ggplot(data,aes(x=x))+
务(附代码数据),咨询QQ:3025393450
有问题到百度搜索“大数据部落”就可以了
欢迎登陆官网:/datablog
geom_histogram(aes(x,..density..),binwidth=1,colour="black",fill ="white")+
geom_vline(xintercept=m1,col="red",size=2)+
geom_vline(xintercept=m2,col="blue",size=2)
p
务(附代码数据),咨询QQ:3025393450
有问题到百度搜索“大数据部落”就可以了
欢迎登陆官网:/datablog
...看看我们是否可以将我们的新混合物建模为两个高斯过程。
我们希望能够适应两位高斯并恢复我们的初始参数。
set.seed(0)
library(flexmix)
务(附代码数据),咨询QQ:3025393450
有问题到百度搜索“大数据部落”就可以了
欢迎登陆官网:/datablog
mo1<-FLXMRglm(family="gaussian")
mo2<-FLXMRglm(family="gaussian")
flexfit<-flexmix(x~1,data=data,k=2,model=list(mo1,mo2))那我们怎么办?看起来我们完美地完成了课堂作业。
print(table(clusters(flexfit),data$class))
##
## 1 2
## 1 100 0
## 2 0 10
参数怎么样?
c1<-parameters(flexfit,component=1)[[1]]
务(附代码数据),咨询QQ:3025393450
有问题到百度搜索“大数据部落”就可以了
欢迎登陆官网:/datablog
c2<-parameters(flexfit,component=2)[[1]]
cat('pred:',c1[1],'\n')
cat('true:',m1,'\n\n')
cat('pred:',c1[2],'\n')
cat('true:',sd1,'\n\n')
cat('pred:',c2[1],'\n')
cat('true:',m2,'\n\n')
cat('pred:',c2[2],'\n')
cat('true:',sd2,'\n\n')
## pred: -0.5613484
## true: 0
##
## pred: 4.799484。