1

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)
}

私はプログラマーではないので、これは賢明な方法ではないかもしれません...誰かがより良い実装を知っていれば、それを聞いてうれしいです.

4

0 に答える 0