YeoJonson変換

YeoJonson変換とは、数値データを正規分布に近づける変換手法のひとつです。負の値が含まれるデータには適用ができないBoxCox変換と異なり、負の値が含まれる場合でも適用することができます。

数値を正規分布に近いかたちの分布に変換したい時の手法の一つ、box-cox変換と異なり負の値が含まれている場合でも対応できる。

I. Yeo and R.A. Johnson, “A New Family of Power Transformations to Improve Normality or Symmetry”, Biometrika 87.4 (2000):

from scipy import stats
import matplotlib.pyplot as plt

x = stats.loggamma.rvs(1, size=1000) - 0.5
plt.hist(x)
plt.axvline(x=0, color="r")  # 0以下にもデータがあることを確認する
plt.show()

png

import numpy as np
from scipy.stats import yeojohnson

plt.hist(yeojohnson(x))
plt.show()

png