私は一連のデータを持っており、対応するヒストグラムに対数正規分布を当てはめました。 まず、対数正規関数の最適なパラメータを計算し、ヒストグラムと対数正規関数をプロットします。これは非常に良好な結果を与える:フィッティング関数対データにコルモゴロフ - スミルノフ検定を実行するときPythonのp値が非常に低いKolmogorov-Smirnov適合テストの良さ
import scipy as sp
import numpy as np
import matplotlib.pyplot as plt
num_data = len(data)
x_axis = np.linspace(min(data),
max(data),num_data)
number_of_bins = 240
histo, bin_edges = np.histogram(data, number_of_bins, normed=False)
shape, location, scale = sp.stats.lognorm.fit(data)
plt.hist(data, number_of_bins, normed=False);
# the scaling factor scales the normalized lognormal function up to the size
# of the histogram:
scaling_factor = len(data)*(max(data)-min(data))/number_of_bins
plt.plot(x_axis,scaling_factor*sp.stats.lognorm.pdf(x_axis, shape,
location, scale),'r-')
# adjust the axes dimensions:
plt.axis([bin_edges[0]-10,bin_edges[len(bin_edges)-1]+10,0, histo.max()*1.1])
はしかし、私はE-のオーダーで(あまりにも低いp値を取得します32):私はミスを犯したところ
lognormal_ks_statistic, lognormal_ks_pvalue =
sp.stats.kstest(
data,
lambda k: sp.stats.lognorm.cdf(k, shape, location, scale),
args=(),
N=len(data),
alternative='two-sided',
mode='approx')
print(lognormal_ks_statistic)
print(lognormal_ks_pvalue)
我々はフィッティングはかなり正確であるプロットから見るので、これは、正常ではない...誰もが知っているのですか?
ありがとうございます! チャールズ