Pythonに関する質問です.
Pythonのscipyライブラリを用いて多変量正規分布を仮定しようとしています.
コードは以下です.
import numpy as np
from scipy import stats
likelihood += stats.multivariate_normal.logpdf(x, μ, cov)
ここで,len(x) = len(μ) = 100であり,
行列covの形は,cov.shape = (100,100)です.
基本的にはこのコードで問題はないのですが,プログラムをしばらく回していると,
cov.shape = (100,100)にもかかわらず,
np.linalg.matrix_rank(cov) = 20
と,ランク落ち?をしてしまい,以下のエラーがでます.
*** LinAlgError: singular matrix
おそらく,行列covのランクがlen(x), len(μ)と合っていないことが原因だと思うのですが,
行列のランク落ちを防いだりする方法はないでしょうか?
よろしくお願いします.

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/03/03 07:56 編集