WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Verteilungstest: Bestimmen d. Wahrscheinlichkeitsverteilung

 

MEnde
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 21.01.14
Wohnort: Wiesbaden
Version: 2011b Mac
     Beitrag Verfasst am: 24.03.2014, 18:11     Titel: Verteilungstest: Bestimmen d. Wahrscheinlichkeitsverteilung
  Antworten mit Zitat      
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 den KS-Test wurde die Nullhypothese leider auch immer verworfen.

Code:

kstest(C, [C wblcdf(C, 1, 2)])
kstest(C, [C expcdf(C, 1)])
kstest(C, [C logncdf(C, 1, 2)])
kstest(C, [C raylcdf(C, 2)])
kstest(C, [C raylcdf(C, 1)])
kstest(C, [C normcdf(C, 1, 2)])
 


Sind im Vorfeld vielleicht noch Verteilungsparameter abzuschätzen?
Oder ist in meinem Fall die Monte Carlo-Methode zu verwenden?

Für eure Unterstützung in dieser Angelegenheit bin ich euch sehr verbunden.
Vielen Dank
Private Nachricht senden Benutzer-Profile anzeigen


MEnde
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 21.01.14
Wohnort: Wiesbaden
Version: 2011b Mac
     Beitrag Verfasst am: 29.03.2014, 11:14     Titel:
  Antworten mit Zitat      
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))
Code:

dfittool
[k,p,k,c]=adtest(x, 'Alpha', 0.1, 'Distribution', pd)
 

Für den KS-Test gilt:
[h,p,k,c]=kstest(x (Datenvektor),'Alpha', Alpha-Wert,'CDF',pd (erstellte Variable aus dem Workspace))
Code:

[h,p,k,c]=kstest(x,'Alpha',0.1,'CDF',pd)
 


Zuvor bin ich davon ausgegangen, dass wenn man folgenden Code eingibt:
Code:

[h,p] = adtest(x,'Distribution','weibull')
 

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.

Beste Grüße.
Private Nachricht senden Benutzer-Profile anzeigen
 
SVW_4e
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 15.08.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.08.2015, 17:36     Titel: Anderson-Darling-Test
  Antworten mit Zitat      
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

Error in adtest>ComputeADStat (line 319)
ADStat = -w*(log(z)+ log(1-z(end:-1:1)))/n - n;

Error in adtest (line 146)
ADStat = ComputeADStat(z,n);


Wie bzw was muss ich machen, damit ich den Test anwenden kann?
Kann mir jemand helfen? Wäre euch so dankbar!
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.08.2015, 17:55     Titel:
  Antworten mit Zitat      
Hallo,

die Fehlermeldung deutet auf ein tieferliegendes Problem hin.
Bitte den Technischen Support von MathWorks kontaktieren, inkl. Informationen zu verwendetem Release und Plattform.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
SVW_4e
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 15.08.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.09.2015, 10:33     Titel:
  Antworten mit Zitat      
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.

Error in adtest (line 74)
[valDistr, valAlpha, valMCTol, valAsymptotic] = ...

Über eine schnelle Rückmeldung und Lösung meines Problems wäre ich euch mal wieder soooo unglaublich dankbar!
Viele Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 03.09.2015, 11:15     Titel:
  Antworten mit Zitat      
Hallo,

die Doku sollte das an sich erklären.
Zumindest in R2015a erfordert adtest Parameter-Wert-Paare, z.B.
Code:
[h,p] = adtest(x,'Distribution','logn')


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.