共分散行列(3x3 COVAR)と対応する平均値(3x1Ω)から、信頼できる領域(1シグマおよび2シグマ)の等高線プロットを生成できます。そうすることで、負の値(見積もり)も発生するので、避ける必要があります。すなわちMATLABを使用してデータから負の推定値を削除する方法
、私はそれが10000x3データセットをもたらすであろう%%
samples = mvnrnd(OMEGA,COVAR,10000);
として上記多変量分布からサンプリングすることができます。
このサンプルから、負の値を含む行全体を削除したいと考えています。私は特定の行のすべてのエントリが正のみである必要があります。これは
...私のコードで以下0.0 により、すべての負の値を置き換えます)だけで、単一の負のエントリまたは 2を含む行を排除 1):私は、これらの負の値を取り除くには二つの方法を考えましたどのように私は、私は再びデータの平均と共分散を計算するコードのこの部分を実行した後
samples = mvnrnd(OMEGA,COVAR,100000);
flag=1;
for iRow=1:length(samples)
a=samples(iRow,:);
% if (~any(a<0)&&flag==1)
% flag=0;
% data=a;
% elseif (~any(a<0)&&flag==0) %eliminating row
% data=[data;a];
% end
if flag==1
flag=0;a(a<0)=0;data=a; % replacing by 0.0
else
a(a<0)=0;data=[data;a];
end
end
...心掛けておりますが、唯一の...
%新しい平均彼らはLOTを異なること見つけるために、新しい共分散と新しい共分散
OMEGA = mean(data);
COVAR = cov(data);
誰も私に上記のより良い方法を提案できますか?この考え方は、負の値を取り除く(非物理的)ことによって共分散行列(誤差)の大きさを減らすことです。次に、これらの新しい値(平均とコバマット)から等高線図をプロットし、最初の象限のみに制限します(つまり、パラメータの唯一の正の値)。
ありがとうございます。
私は正確に何を求めているのかを言及する必要があります。新しい共分散行列または多変量分布(この場合は3次元)の体積は明らかに縮小されています。この分布は、3次元空間の第1象限にのみ限定されている。 この新しいボリュームが1.0であることを保証したいと思います。分布が正規化されるように、言い換えれば、多変量は確率分布である。 これが達成されたら、私はこの分布からサンプルを引き出し、共分散行列と等高線プロットに到達する平均値を計算するのと同じ演習をしたいと思います。 –
(x - mean(x))/ std(x)の標準化方法を使用することができます – anyanwu