我想使用optimize()来查找二维混合正态分布的参数,但我不知道如何使用该函数。
我有密度功能:
mixdnorm2<-function(x,y,p,mu11,mu12,s11,s12,rho1,mu21,mu22,s21,s22,rho2){
dnorm2<-function(x,y,m1,m2,s1,s2,r){
U<-c(x-m1,y-m2)
S<-matrix(c(s1^2,s1*s2*r,s1*s2*r,s2^2),2,2,byrow = T)
f<-1/(2*pi*sqrt(det(S)))*exp(-0.5%*%t(U)%*%solve(S)%*%U)
return(f)
}
f<-p*dnorm2(x,y,m11,m12,s11,s12,rho1)+(1-p)*dnorm2(x,y,m21,m22,s21,s22,rho2)
return(f)
}
但我不知道该怎么做。
optimize(mixdnorm2...)
请问您知道,如何使用该功能?我找不到任何关于这个问题的信息所以我很乐意接受任何建议:)
optimize
函数仅适用于1维。 optim
函数是用于2维或更多维度的函数。请查看optim
的帮助页面。
由于某种原因,optimize
的帮助页面没有提到optim
,尽管optim
的帮助页确实提到了optimize
。
还有一些包提供额外的优化功能(在CRAN上搜索)。