Verfasst am: 24.03.2014, 18:11
Titel: Verteilungstest: Bestimmen d. Wahrscheinlichkeitsverteilung
Hallo,
ich möchte aus einer ermittelten Stichprobe die zugehörige Wahrscheinlichkeitsverteilung (Normalverteilung, Lognormal-Verteilung, Weibull-Verteilung) bestimmen.
Gerne würde ich hierzu einen nichtparametrischen Test heranziehen. Diese finden Anwendung, wenn keine Informationen über die konkrete Verteilung vorhanden sind, abgesehen von der Stichprobe selbst.
Matlab bietet in diesem Zusammenhang verschiedene Möglichkeiten, wie den KS-Test, AD-Test oder Lillietest.
Leider bekomme ich keine brauchbaren Ergebnisse und bekomme immerzu Fehlermeldungen (vgl. Programmcode). Auch das variieren der Vertrauensintervalle hat nicht viel gebracht. Anhand des dfittools konnte man eine gute Annäherung an die Weibull-Verteilung sehen, allerdings haben das die Tests nicht bestätigt.
Hat jemand von euch vielleicht schon Erfahrung mit den jeweiligen Tests und kann einen Tip oder eine Empfehlung geben?
Falls einer ein schönes Beispiel zur Hand hat oder sich in der Herangehensweise auskennt und sich mitteilen möchte, wäre ich sehr dankbar dafür.
Einen exemplarischen Datenvektor habe ich angehängt.
Code:
adtest(x);
Warning: P is less than the smallest tabulated value, returning
0.0005.
> In adtest at 275
Für alle Matlab-Anfänger und Leute, die wie ich nicht ganz bis zum Ende der Matlab-Hilfe lesen, folgender Tip für die Testverfahren:
-dfittool aufrufen: --> auf Data klicken und den entsprechenden Datenvektor auswählen. Anschließend auf den Button "New Fit" und eine entsprechende Verteilung auswählen (Apply). Hat man eine gute Verteilung gefunden klickt man auf "Save to workspace" und erstellt dort eine neue Variable (vorgeschlagen: pd) , die die charakteristischen Parameter der Verteilung beinhaltet.
-im Command Window kann anschließend der Datenvektor mit dem gewünschten Testverfahren geprüft werden:
[h,p,k,c] = adtest (x(Datenvektor),'Alpha', Alpha-Wert, 'Distribution', pd (erstellte Variable aus dem Workspace))
die charakteristischen Parameter-Werte des Datenvektors automatisch für die Weibull-Verteilung geschätzt werden und im Test entsprechend berücksichtigt werden. Dieser Schritt muss manuell übers "dfittool" ausgeführt werden.
Ich wollte auch gerne den Anderson-Darling-Test anwenden.
Habe es genau so gemacht wie erklärt aber bei mir kommt ständig folgende Fehlermeldung:
adtest(M8_ChargeE_Versuchsdaten,'Alpha', 0.1, 'Distribution',pd)
Error using *
BLAS loading error:
dlopen: cannot load any more object with static
TLS
die Fehlermeldung deutet auf ein tieferliegendes Problem hin.
Bitte den Technischen Support von MathWorks kontaktieren, inkl. Informationen zu verwendetem Release und Plattform.
Danke Harald,
der Fehler lag an einem Software-Fehler.
Nun wollte ich den Anderson-Darling-Test mit der Version R2014a anwenden, aber irgendwie bekomme ich wieder eine Fehlermeldung!
Wenn ich es nach dem Verfahren vom Vorgänger mit dem dfittool mache, bekomme ich ebenfalls eine Fehlermeldung udn weiß nun nicht, wie ich den Test anwenden soll!
Kannst du oder wer anders mir nochmal helfen?
Folgenden Code habe ich eingeben und im Anschluss die Fehlermeldung:
adtest (Versuchsdaten_Versuch1, 'lognormal')
Error using internal.stats.parseArgs (line 42)
Wrong number of arguments.
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.