平均値と共分散行列によって与えられるガウス分布の合計から、ベクトルの一部の要素のみをサンプリングしたいと考えています。
具体的には:
ガウス混合モデル (GMM) を使用してデータを代入しています。私は次の手順とsklearnを使用しています:
- 平均で代入する
- GMM を使用して平均と共分散を取得します (たとえば、5 つのコンポーネント)
- サンプルの 1 つを取り、欠損値のみをサンプリングします。他の値は同じままです。
- 数回繰り返す
これには2つの問題があります。(A) ガウスの合計からどのようにサンプリングするか、(B) ベクトルの一部のみをサンプリングする方法。両方同時に解決できると思います。(A) については、棄却サンプリングまたは逆変換サンプリングを使用できますが、numpy で多変量正規分布ジェネレーターを利用するより良い方法があると感じています。または、他の効率的な方法。(B) の場合、サンプル変数に、サンプルからの既知の値を引数として持つガウス分布を乗算するだけです。右?
私はPythonでの解決策を好みますが、アルゴリズムまたは疑似コードで十分です。