-1
私は元のサンプルデータとそのシミュレートされたデータを取得しました(私がどのようにシミュレートしたかはわかりません)。ヒストグラムが一致しているかどうかチェックしたいと思います。したがって、最良の方法はqqplot
ですが、statsmodels
ライブラリは異なるサイズのサンプルを許可していません。Pythonで異なるサイズの2つのサンプル間にqqプロットを作成する方法は?
私は元のサンプルデータとそのシミュレートされたデータを取得しました(私がどのようにシミュレートしたかはわかりません)。ヒストグラムが一致しているかどうかチェックしたいと思います。したがって、最良の方法はqqplot
ですが、statsmodels
ライブラリは異なるサイズのサンプルを許可していません。Pythonで異なるサイズの2つのサンプル間にqqプロットを作成する方法は?
qqプロットを作成するには、両方のセットで対応するクォンタイルを見つけ、それらを互いにプロットする必要があります。一方のセットが他方のセットより大きい場合、一般的なプラクティスは、より小さいセットのクォンタイルレベルを取り、より大きなセット内の対応するクォンタイルを推定するために線形補間を使用することである。これは、ここで説明されていますhttp://www.itl.nist.gov/div898/handbook/eda/section3/qqplot.htm
これは手動で行うことは比較的簡単です:
import numpy as np
import pylab
test1 = np.random.normal(0, 1, 1000)
test2 = np.random.normal(0, 1, 800)
#Calculate quantiles
test1.sort()
quantile_levels1 = np.arange(len(test1),dtype=float)/len(test1)
test2.sort()
quantile_levels2 = np.arange(len(test2),dtype=float)/len(test2)
#Use the smaller set of quantile levels to create the plot
quantile_levels = quantile_levels2
#We already have the set of quantiles for the smaller data set
quantiles2 = test2
#We find the set of quantiles for the larger data set using linear interpolation
quantiles1 = np.interp(quantile_levels,quantile_levels1,test1)
#Plot the quantiles to create the qq plot
pylab.plot(quantiles1,quantiles2)
#Add a reference line
maxval = max(test1[-1],test2[-1])
minval = min(test1[0],test2[0])
pylab.plot([minval,maxval],[minval,maxval],'k-')
pylab.show()
ようこそスタックオーバーフローに。開始点を求めるこのような質問は、Stack Overflowのフォーマットにはうまく適合しません。コードサンプルを含め、試したことの詳細を追加します。特定の問題を詳しく説明します。 [ヘルプ](https://stackoverflow.com/help/how-to-ask)を参照してください。 – benrifkah