適合度に関するPythonのコルモゴロフ-スミルノフ検定

Sep 29 2020

私は自分のデータに最適な分布を取得しようとしています。下図のようにフィッティングは終了ですが、最適なモデルを選ぶには測定が必要です。適合度をカイ2乗値と比較し、観測された分布と適合された分布の有意差をコルモゴロフ-スミルノフ(KS)検定で検定しました。私は潜在的な解決策の一部で検索1、2、3、私は下図の私answer.From結果を取得できませんでした。

  1. 場合p-valueよりも高くk-statistic、それは我々が仮説やデータがうまく分布をフィット受け入れることができることを意味していますか?

  2. あるいは、仮説の受け入れまたは拒否と比較level of significance(a=0.005)しp-valueて決定しても大丈夫ですか?もしがp-valueより低いa、二つの分布が異なっていることは非常に可能性があります。

  3. の場合Kolmogorov-Smirnov test、データ(-1,1)を標準化することが不可欠ですか?

  4. KS統計とP値から判断するとexponnorm、データに最もよく適合します。あれは正しいですか?

次の方法でP値を計算しました。

for distribution in dist_names:
    # Set up distribution and get fitted distribution parameters
    dist = getattr(scipy.stats, distribution)
    param = dist.fit(y_std)   
    p = scipy.stats.kstest(y_std, distribution, args=param)[1]
    p = np.around(p, 5)
    p_values.append(p) 

回答

2 LinxingYao Sep 29 2020 at 10:10
  1. いいえ、Kテストの臨界値テーブルでK統計量を臨界値と比較するか、p値を有意水準(この場合は0.005)と比較することができます。
  2. そうです、統計では、p値が小さい場合、nullを拒否し、代替値を受け入れます。
  3. いいえ、KSテストを適用する前にデータを標準化すると、生データの分布に関する情報が失われます。たとえば、データが幾何分布からのものである場合、正規化後、サンプル数が無限大になると、データは正規(0,1)として分布に収束します。
  4. はい、この場合、p値> aであるため、nullを棄却できず、これを受け入れます。入力データは、指数と同じ分布になります。
    ちなみに、この質問は統計的知識に多かれ少なかれ関連しているので、CrossValidatedに属する必要があります。この答えがお役に立てば幸いです。