我想使用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...)
请知道,如何使用该功能?我无法找到有关问题的任何内容,所以我很乐意提出任何建议:)
答案 0 :(得分:0)
optimize
功能仅适用于1维。 optim
函数是用于2维或更多维度的函数。请查看optim
的帮助页面。
由于某些原因,optimize
的帮助页面未提及optim
,但optim
的帮助页面确实提到了optimize
。
还有一些软件包提供额外的优化功能(在CRAN上搜索)。