web-dev-qa-db-ja.com

PythonでBox-Cox変換を適用する方法は?

私は次の形式のデータを持っています:

X   Y
3.53    0
4.93    50
5.53    60
6.21    70
7.37    80
9.98    90
16.56   100

そして、これが次の形式の関数に適合するように、nを見つけたいと思います。

enter image description here

Box-Cox変換によってnを決定しようとしています。これはPythonでどのように行うことができますか?

9
Tom Kurushingal

私はあなたが欲しいと思います scipy.stats.boxcox

from scipy import stats
import numpy as np

data = np.fromstring('3.53    0 4.93    50 5.53    60 6.21    70 7.37    80 9.98    90 16.56   100', sep=' ').reshape(7, 2)

stats.boxcox(data[0,])
(array([ 0.91024309,  1.06300488,  1.10938333,  1.15334193,  1.213348  ,
     1.30668122,  1.43178909]), -0.54874593147877893)
14
blueogive

1 + xのBox-Coxは、ゼロの場合に役立つ場合があります( boxcox1p

from scipy.special import boxcox1p
boxcox1p([0.01, 0.1], 0.25)
1
1dhiman