2017-04-02 10 views
1

この関数を使用して計算しますが、この問題を教えてくれます。私の "手段"は1 * 2で、 "covars"は2 * 2配列です。 「手段」と「covars」のncolsの長same.Iがなぜ..."dmvnorm"関数の使用中に奇妙な現象が発生する

を知らない。これは私のコード .

であり、これは私の入力が誤ったメッセージ . です

weights<-c(1/3,1/3,1/3) 
means<-matrix(1:6,nrow=3,byrow=FALSE) 
covars<-array(1,dim=c(2,2,3)) 
EM(d,weights,means,covars,300,3,10,0.0001) 

および「d」は

the d is a 300*2 matrix.I capture a little. 私はこのウェブサイトの良いコマンドを持っていないことをとても残念だと私はそれに非常に多くのデータを置く方法がわからないです。

ありがとうございました!

+1

コードとエラーテキストを投稿してください。イメージを使用しないでください。可能であれば、入力を提供する、つまり[再現可能な例を作る](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) – digEmAll

+0

@李哲源ZheyuanLi私は'as.matrix'を使って行列への入力を変更しますが、まだ間違いがあります。それを修正する方法を教えてもいいですか? –

答えて

1

唯一の原因は入力データdです。二変量正規分布を持つので、2列の行列でなければなりません。以下はあなたのエラーを再現:

library(mvtnorm) 

# 3 columns 
dmvnorm(matrix(runif(6), 2, 3)), c(0,0), diag(2)) 

しかし、これは

# 2 columns 
dmvnorm(matrix(runif(6), 3, 2)), c(0,0), diag(2)) 

結構です私はあなたの dが2行が、多くの列を持っていると思います。

+0

私はついにこの問題を見つけました。本当にありがとう! –

関連する問題