Определить параметры Вейбулла по данным

Я хотел бы определитьПараметры Вейбулла (то есть форма и масштаб) моих данных.

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-файле были прочитаны как значения x-input вместо значений y функции Вейбулла. Когда я добавляю второй столбец (или строку) с bin, это выдает ошибку, что строковые значения не могут быть преобразованы в числа с плавающей точкой.

Как мне нужно изменить мой CSV-файл, чтобы использовать данные в качестве значений Y функции Вейбулла?

Я думаю, что моя проблема может быть в том, что я не понимаю эту строку:

(loc, scale) = s.exponweib.fit_loc_scale(data, 1, 1)

Что значит1, 1 представлять здесь? Параметры не должны быть отрицательными.

Ответы на вопрос(1)

Ваш ответ на вопрос