2016-07-01 7 views
2

正規分布が歪んだ入力データセット(DataFrame/numpy行列)があります。私は入力データセットをスキューのない正規分布に変換する、python変換関数(またはnumpy行列)を見つけようとしています。非正規分布を正規分布に変換するためのpython変換関数またはnumpy行列を見つける

私はcurve_fit(scipy.optimizeで)を見て、それをどのように適用するかについてはわかりません。

これを行う簡単な方法はありますか?

答えて

2

私は2つのことの1やった:

  • 使用box-cox transformationsを。これには、スキューがゼロになるようにデータを変換する適切なパワーまたはラムダを見つける必要があります。
  • 通常の配布を強制します。

from scipy.stats import norm 

df = pd.DataFrame(np.random.rand(1000), columns=['Uniform']) 
df['Normal'] = norm.ppf((df.Uniform.rank() - .5)/len(df)) 
df.plot(kind='kde') 

enter image description here

df.skew() 

Uniform 2.392991e-02 
Normal  2.114051e-15 
dtype: float64 
+1

私はボックス・コックスを投稿しようとしていました。 Scipyは、可能性を最大にするラムダを見つける:http://scipy.github.io/devdocs/generated/scipy.stats.boxcox.html – ayhan

関連する問題