Rでは、次のことを行う関数を作成したいと思います:
given vectors of means, variances and weights
create a function which is a mixture of normal distributions
return this function
通常の密度の混合は合計です
f(x) = c_1 * N(mu_1,var_1) + ... + c_n * N(mu_n,var_n).
Rでこれを行う簡単な方法は何ですか?
編集 これを行うための非常に簡単で、おそらく単純な方法を見つけました。
gmix <- function(means,vars,weights){
n <- length(means)
f<- function(t) {
res <- 0;
for(i in 1:n) {
res <- res + weights[i]*dnorm(t,mean=means[i],sd=sqrt(vars[i]))
}
return(res)
}
return(f)
}
私はプログラマーではないので、これは賢明な方法ではないかもしれません...誰かがより良い実装を知っていれば、それを聞いてうれしいです.