Softwareentwickler MATLAB/Simulink (w/m) Erarbeitung von Lösungen im Bereich der Schnittstelle zum Simulink-Modell und der Benutzeroberfläche von TargetLinkdSPACE GmbH - Paderborn
Verfasst am: 16.10.2011, 16:18
Titel: Wie wende ich Boostrap confidence intervals (bootci) an?
Hallo zusammen!
Ich habe eine Datenmatrix des Formats 37 x abc (abc <= 37).
Auf die Menge wende ich Clustering-Algorithmen an (GMM, K-Means). Danach berechne ich jetzt etwa 200 mal verschiedene Werte (Rand Index, Normalized Mutual Information, Purity, usw...).
Jetzt moechte ich Variabilitaet in der Datenmenge (aus den 37 Subjekten sollen unabhaengige Subjekte gezogen werden).
y = normrnd(1,1,30,1); % Simulated process data
LSL = -3; USL = 3; % Process specifications
capable = @(x)(USL-LSL)./(6* std(x)); % Process capability
ci = bootci(2000,capable,y)% BCa confidence interval
ci =
0.8122 1.2657
sci = bootci(2000,{capable,y},'type','student')% Studentized ci
sci =
0.7739 1.2707
Ich verstehe jetzt einfach nicht, wie ich das Beispiel auf meine Datenmenge anwenden soll?
Was soll y sein? Was sind LSL und USL? capable sagt mir nun gar nix.
das Beispiel könnte einfacher sein. Ich probiers mal: du hast eine Stichprobe X und möchtest ein Konfidenzintervall für den Mittelwert (mean) der Gesamtpopulation haben. Das wäre dann:
Dabei wird das Experiment dann mit 100 aus deiner Stichprobe gezogenen Samples durchgeführt, und (standardmäßig) die 95%-Konfidenzintervalle ermittelt.
Statt mean könntest du genauso eine Funktion nehmen, die jeglichen beliebigen Prozess abbildet.
im wesentlichen ja. Nur verstehe ich nicht, wie X bei 20 Beobachtungen ein 100x1-Vektor wird. Schreibfehler? Oder meinst du, *jeweils* ein 100x1-Vektor?
Ich möchte diesen alten Thread wieder aufgreifen, da ich schon wieder ein neues Problem mit bootci habe.
Mein Code sieht nun ganz einfach aus. Ich möchte den Mean-Wert für eine grösse mit Bootstrapping abschätzen.
In jedem Durchlauf werden meine Inputparameter inputarg1 und inputarg2 mit Zurücklegen neu gezogen.
Code:
nboot = 1000;
bootfun = @calculate_mean;
meanvalue = bootfun(inputarg1, inputarg2);
ci = bootci(nboot,{bootfun,inputarg1, inputarg2},'type','per');
Was jetzt aber herauskommt ist ein Mean-Wert (z.B. 1), der jedoch nicht im Confidence Interval (z.b. [0.6 0.9]) liegt. Und jetzt habe ich Probleme den mit errorbar zu plotten.
Kann das überhaupt sein? Müsste der Mean-Wert nicht innerhalb der CI liegen?
Laut meinen Statistik-Notizen wird der Confidence Interval folgendermassen berechnet:
[img]http://imageshack.us/photo/my-images/267/34338546.png/[/img]
Wobei \hat{\theta}_n die statistisch interessante Grösse ist (e.g. mean) über die *original Datenmenge* und q ist die quantile, die von den bootstrap samples errechnet wird.
Was mache ich falsch?
Options and Permissions
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.