12

このモジュール (および Scipy のドキュメント) に関する既存の投稿を読みましたが、データ セットと呼び出し可能な関数がある場合に、Scipy の kstest モジュールを使用して適合度テストを行う方法がまだ明確ではありません。

データをテストしたい PDF は、標準の scipy.stats ディストリビューションの 1 つではないため、次のようなものを使用して呼び出すことはできません。

kstest(mydata,'norm')

ここで、mydata は Numpy 配列です。代わりに、次のようなことをしたい:

kstest(mydata,myfunc)

ここで、'myfunc' は呼び出し可能な関数です。'myfunc' を使用して対応する理論上の頻度を生成するために 'mydata' 配列の横座標が何であるかを kstest が知る方法がないため、これは当然のことです。「mydata」の度数が配列「abscissa」の確率変数の値に対応するとします。次に、stats.ks_2samp を使用できるのではないかと考えました。

ks_2samp(mydata,myfunc(abscissa))

しかし、それが統計的に有効かどうかはわかりません。(補足: kstest と ks_2samp は、周波数配列が 1 に正規化されることを期待していますか、それとも絶対周波数が必要ですか?)

いずれにせよ、1 サンプル KS テストは適合度テストに使用されることになっているため、kstest を直接使用してそれを行う方法があると想定する必要があります。これどうやってやるの?

4

2 に答える 2

4

についてはks_2samp、両方のサンプルが同じ確率分布からサンプリングされるという帰無仮説を検定します。

たとえば、次のことができます。

>>> from scipy.stats import ks_2samp
>>> import numpy as np
>>> 

ここで、x、y は の 2 つのインスタンスですnumpy.array

>>> ks_2samp(x, y)
(0.022999999999999909, 0.95189016804849658)

最初の値は検定統計量で、2 番目の値は p 値です。p 値が 95 未満 (有意水準 5%) の場合、これは、2 つのサンプル分布が同一であるという帰無仮説を棄却できないことを意味します。

于 2013-10-06T07:27:20.803 に答える