2017-06-06 1 views
3

私はMATLABでKolmogorov-Smirnovテストを使用して、一般化線形回帰を実行する前にデータ行列の各列の正規性を決定しています。データベクトルの例は、Kolmogorov-Smirnov MATLABの正規化テスト - データの正規化?

data = [8126,3163,9129,5399,8682,1126,1053,7805,2989,2758,3277,1152,6994,6833]; 

です。テストが実行され、結果が表示されます。しかし、視覚的な比較のために経験的な累積分布関数(cdf)(青色)と標準の標準的なcdf(赤色)をプロットすると、このようなデータベクトルの尺度は、グラフが有用でないようなものになります: exampleCDF

この数値をプロットするために使用されるコードは次のとおりです。

[h,p,ksstat,cv] = kstest(data); 
[f,x_values] = ecdf(data); 
figure() 
F = plot(x_values,f); 
set(F,'LineWidth',2); 
hold on 
G = plot(x_values,normcdf(x_values,0,1),'r-'); 
set(G,'LineWidth',2); 
legend([F G],... 
    'Empirical CDF','Standard Normal CDF',... 
    'Location','SE'); 

これは私のテストの結果が有効でないということですか?はいの場合は、データを正規化できますか?

dataN=(data-min(data))./(max(data)-min(data)); 

テストの有効期間は維持されますか?

は、お時間をルイスMendoに

ラウラ

+3

平均と標準偏差が「1」のガウスCDFをプロットしています。したがって、数千のオーダーのデータ値の場合、CDFは非常に1です。おそらく、データから推定された平均と標準偏差を使用する必要があります。またはデータを正規化し、平均値と単位標準偏差がゼロのガウスCDFを維持することができます –

+0

もちろんです!あなたのアドバイスをありがとうルイス -​​ 平均と標準偏差を変更すると問題が解決しました – Laura

+2

いつでも!あなたは自分自身に答える(私はどのように正確に平均と標準の開発者を適用しているのかわかりません)、質問が答えられないように表示されないように答えを受け入れることができます –

答えて

3

感謝をありがとう、私はこの問題を解決しました。 normcdfは、入力としてデータベクトルの平均と標準偏差が必要です。これは、私が作業していたサンプルコードから変更していませんでした。

[h,p,ksstat,cv] = kstest(data); 
[f,x_values] = ecdf(data); 
figure() 
F = plot(x_values,f); 
set(F,'LineWidth',2); 
hold on 
variableMean = mean(data); 
variableSD = std(data); 
G = plot(x_values,normcdf(x_values,variableMean,variableSD),'r-'); 
set(G,'LineWidth',2); 
legend([F G],... 
    'Empirical CDF','Standard Normal CDF',... 
    'Location','SE');