データのワイブル パラメータ(つまり、形状とスケール)を特定したいと考えています。
0.022988506
0.114942529
0.218390805
0.114942529
0.149425287
0.114942529
0.068965517
0.068965517
0.034482759
0.022988506
0.022988506
0.022988506
0.022988506
この回答が提案したことは既に試しましたが、Python 3.4 を使用しています。
import scipy.stats as s
import numpy as np
from scipy import stats
def weib(x,n,a):
return (a / n) * (x / n)**(a - 1) * np.exp(-(x / n)**a)
data = np.loadtxt("data1.csv")
print(data)
(loc, scale) = s.exponweib.fit_loc_scale(data, 1, 1)
print('loc is: ',loc, '\n scale is: ', scale)
これにより、次の出力が得られます。
[0.02298851 0.11494253 0.2183908 0.11494253 0.14942529 0.11494253 0.06896552 0.06896552 0.03448276 0.02298851 0.02298851 0.02298851 0.02298851]
loc is: 0.0574417296258
scale is: 0.0179259738449
私のcsvファイルのデータは、ワイブル関数のy値ではなく、x入力値として読み取られたと思います。bin を使用して 2 番目の列 (または行) を追加すると、文字列値を float に変換できないというエラーが表示されます。
内部のデータをワイブル関数の y 値として使用するには、csv ファイルをどのように変更する必要がありますか?
私の問題は、この行を理解していないことにあると思います。
(loc, scale) = s.exponweib.fit_loc_scale(data, 1, 1)
ここで何1, 1
を表しているのですか?パラメータが負であってはなりません。