Determine Weibull-Parameter aus Daten

Ich möchte das @ identifizierWeibull parameters (d. h. Form und Maßstab) meiner Daten.

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

Ich hab schon was ausprobiertdiese Antwort vorgeschlagen, und ich benutze 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)

Dies gibt mir die folgende Ausgabe:

[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

Ich gehe davon aus, dass die Daten in meiner CSV-Datei als X-Input-Werte anstatt als Y-Werte der Weibull-Funktion gelesen wurden. Wenn ich eine zweite Spalte (oder Zeile) mit bin hinzufüge, tritt der Fehler auf, dass Zeichenfolgenwerte nicht in Gleitkommazahlen konvertiert werden können.

Wie muss ich meine csv-Datei ändern, um die darin enthaltenen Daten als y-Werte der Weibull-Funktion zu verwenden?

Ich denke, mein Problem könnte sein, dass ich diese Zeile nicht verstehe:

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

Was macht1, 1 hier vertreten? Die Parameter sollten dann nicht negativ sein.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage