2

浮動小数点数のセット A とセット B の 2 セットのデータがあります。どちらもサイズ 40*40 の行列です。どのセットが正規分布に近いかを調べたいと思います。matlab で probplot() を使用して、1 つのセットの確率をプロットする方法を知っています。しかし、分布の適合度を調べる方法がわかりません。

Python では、人々が problot を使用する場合、パラメーター R^2 は、データの分布が正規分布に対してどの程度良好であるかを示します。R^2 値が値 1 に近いほど、適合度が高くなります。したがって、この関数を使用して、2 つのデータ セットを R^2 値で比較するだけです。しかし、マシンの問題により、現在のマシンでは python を使用できません。matlab の R^2 値に似たパラメータまたは関数はありますか?

どうもありがとうございました、

4

2 に答える 2

1

@nate (+1) のアプローチは、間違いなくこの問題に対処するための 1 つの可能な方法です。ただし、私の統計学者は、次の代替案を提案することを余儀なくされています (残念ながら、統計ツールボックスが必要ですが、学生版を持っている場合はこれがあります)。

データが正規 (多変量正規ではない) である場合、Jarque-Bera検定の使用を検討してください。

Jarque-Bera は、特定のデータセットが正規分布によって生成されるという帰無仮説と、それが他の分布によって生成されるという対立仮説を検定します。Jarque-Bera 検定の統計量がある臨界値よりも小さい場合、帰無仮説を棄却できません。

では、これは適合度の問題にどのように役立つのでしょうか? 検定統計量が大きいほど、データはより「非正規」になります。検定統計量が小さいほど、データはより「正常」です。

したがって、行列を 2 つのベクトルに変換したと仮定するAB(質問で指定した次元に基づいて、それぞれが 1600 x 1 である必要があります)、次のことができます。

%# Build sample data
A = randn(1600, 1);
B = rand(1600, 1);

%# Perform JB test
[ANormal, ~, AStat] = jbtest(A);
[BNormal, ~, BStat] = jbtest(B);

%# Display result
if AStat < BStat
    disp('A is closer to normal'); 
else
    disp('B is closer to normal');
end

このようにすることのちょっとしたおまけとしてANormal、標本が正規分布に属している、または正規分布から来てBNormalいるという帰無仮説を棄却できるか、棄却できないかがわかります! 具体的には、が 1 の場合、null を拒否できません (つまり、テスト統計は、それがおそらく Normal から引き出されたことを示しています)。が 0 の場合、データはおそらく正規分布から生成されていません。ABANormalAANormalA

注意:ここで提唱したアプローチは、ABが同じサイズの場合にのみ有効ですが、質問でそれらが同じであると示しました :-)

于 2012-10-31T01:52:43.233 に答える
1

曲線または曲面をデータに当てはめ、適合度 (sse、rsquare、dfe、adjrsquare、rmse) を取得するには、関数 を使用しますfit詳細はこちら。..

于 2012-10-29T06:52:58.733 に答える