「MATLABのデータの周りの楕円」という質問に対して、Amroの回答では、次のように述べています。
「楕円が特定のレベルの標準偏差を表すようにしたい場合、正しい方法は共分散行列をスケーリングすることです。」
そしてそれをスケーリングするためのコードは次のように与えられました
STD = 2; %# 2 standard deviations
conf = 2*normcdf(STD)-1; %# covers around 95% of population
scale = chi2inv(conf,2); %# inverse chi-squared with dof=#dimensions
Cov = cov(X0) * scale;
[V D] = eig(Cov);
上記のコードスニペットの最初の3行がわかりません。スケールはによってどのように計算されchi2inv(conf,2)
、それを共変量行列で乗算することの背後にある理論的根拠は何ですか?
追加の質問:
また、1.5 STD、つまり86%のタイルでスケーリングすると、ほとんどすべての場合で、楕円がすべてのポイントをカバーでき、ポイントセットがまとまっていることがわかりました。一方、3 STD、つまり99%タイルでスケーリングすると、楕円が大きすぎます。それでは、どうすれば凝集点をしっかりとカバーするSTDを選択できますか?
次に例を示します。
内側の楕円は1.5STDに対応し、外側の楕円は2.5STDに対応します。1.5 STDが凝集している白色点をしっかりとカバーしているのはなぜですか?それを定義するためのアプローチや理由はありますか?