0

ランダムサンプルの形状を解釈する方法がkstestに大きな影響を与えることがわかりました。次のコードを試します。

import numpy as np
from scipy import stats

N = 260
np.random.seed(1)
X = np.random.rand(N)
Xarray = X.reshape(N,1)
XarrayT = Xarray.T

print('X' + str(X.shape) + ': ' + str(stats.kstest(X, 'uniform') ) )
print( 'Xarray' + str(Xarray.shape) + ':' + str( stats.kstest(Xarray, 'uniform') ) )
print( 'XarrayT' + str(XarrayT.shape) + ': ' + str( stats.kstest(XarrayT, 'uniform') ) )

結果は次のとおりです。

X(260,): KstestResult(statistic=0.052396054203786291, pvalue=0.46346349447418866)
Xarray(260, 1):KstestResult(statistic=0.99988562518265511, pvalue=0.0)
XarrayT(1, 260): KstestResult(statistic=0.99988562518265511, pvalue=0.00022874963468977327)

ここで、X、Xarray、XarrayT は同じデータを持ちますが、形状が異なります。そして、p値はまったく異なります。バグが原因ですか、それとも kstest を正しく使用するためにいくつかのポイントを見逃していますか?

ありがとう!

4

1 に答える 1