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

Whisker

 

throat

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.05.2013, 20:26     Titel: Whisker
  Antworten mit Zitat      
Hallo,

ich möchte gerne einen Code schreiben der rechnerisch mir die "Whiskerns" ausgibt. Ich will eventuelle Ausreißer identifizieren, wie hier im Boxplot

Unbenannt.png
 Beschreibung:

Download
 Dateiname:  Unbenannt.png
 Dateigröße:  2.38 KB
 Heruntergeladen:  633 mal


Harald
Forum-Meister

Forum-Meister


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

Werte sortieren und dann die ersten und letzten p Prozent nehmen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
throat

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.05.2013, 16:31     Titel:
  Antworten mit Zitat      
Mal angenommen, ich habe habe folgendes:
Code:
random_sample2 = poissrnd(2,[1 10])
sort(random_sample2 )



Wie löse ich das mit
Zitat:
die ersten und letzten p Prozent nehmen.
 
Harald
Forum-Meister

Forum-Meister


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

etwa so:
Code:
sorted = sort(random_sample2 )
low = sorted(1:round(0.25*end))
up = sorted(round(0.75*end):end)

wobei die oberen und unteren 25% als Ausreißer definiert wären.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
throat

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.05.2013, 23:43     Titel:
  Antworten mit Zitat      
Zitat:
Die zwei Linien, die das Rechteck nach rechts und links (vgl. Abb. 1) verlängern, werden als Antennen, Fühler oder Whisker bezeichnet.


Das sind ie Quartile, ich möchte jedoch die Antenna's berechnen. Die Definition für die Whiskers lautet :

Zitat:
Häufig werden Ausreißer, die zwischen 1,5×IQR und 3×IQR liegen als „milde“ Ausreißer bezeichnet
und Werte, die über 3×IQR liegen als „extreme“ Ausreißer. Diese werden dann auch unterschiedlich
im Diagramm gekennzeichnet. Grundlage ist die Definition von John W. Tukey
.
 
Harald
Forum-Meister

Forum-Meister


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

dann eben das:
Code:
iqr = up-low;

Die tatsächlichen Ausreißer:
Code:
ausreisseroben = sorted(sorted > schwellwert)

Aus dem Zitat ist mir nicht klar, wie der Schwellwert zu definieren ist, aber das sollte dann auch kein Problem mehr sein.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
throat

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.05.2013, 01:50     Titel:
  Antworten mit Zitat      
Hallo Harald,

leider konnte ich mit deinem Beitrag nicht viel anfangen:
Auf der Webseite von Wikipedia http://de.wikipedia.org/wiki/Boxplot
ist ein Beispiel vorhanden:


Code:
A = [9   6   7   7   3   9   10   1   8   7   9   9   8   10   5   10   10   9   10   8];
% Leeren Wertevektor erstellen
Werte = zeros(1, 7);
% Werte berechnen
Werte(1) = {min(A)};            % Minimum  
Werte(2) = {quantile(A,.05)}; % unterer Whisker
Werte(3) = {quantile(A,.25)}; % unteres Quantil
Werte(4) = {quantile(A,.50)}; % Median
Werte(5) = {quantile(A,.75)}; % oberes Quantil
Werte(6) = {quantile(A,.95)}; % oberer Whisker
Werte(7) = {max(A)};            % Maximum


Gibt es eine Möglichkeit mir diese Werte und die milden (1,5xIQR bis 3xIQR) sowie die extremen Ausreißer (>3xIQR) als ein Cellarray ausgeben zu lassen?
 
Harald
Forum-Meister

Forum-Meister


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

Zitat:
leider konnte ich mit deinem Beitrag nicht viel anfangen:

Warum nicht? Ich habe dir gezeigt, wie du IQR berechnen kannst und wie du Werte, die größer als ein Schwellwert sind, finden kannst.

Vielleicht habe ich ja Tomaten auf den Augen, aber ich sehe das Beispiel nicht. Zudem funktioniert es in der gegenwärtigen Form nicht.

Werte müsste als Cell Array vorbelegt werden, und es ist so auch eher umständlich.

Zitat:
Gibt es eine Möglichkeit mir diese Werte und die milden (1,5xIQR bis 3xIQR) sowie die extremen Ausreißer (>3xIQR) als ein Cellarray ausgeben zu lassen?

Klar gibt es die Möglichkeit. Du hast auch schon alle Bausteine dazu. Mir ist allerdings nicht klar, was mit deinen IQR-Angaben gemeint ist. Sind das absolute Angaben oder beziehen sie sich auf die Entfernung vom Median?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
throat

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.05.2013, 00:07     Titel:
  Antworten mit Zitat      
Zitat:
IQR (interquartile range) : The IQR is the middle point between Q1 and Q3.


http://en.wikipedia.org/wiki/Interquartile_range

Ich danke dir für die Bausteine. Jedoch brauch ich eine Struktur um damit zu starten.. Also paar codezeilen um es auszuprobieren.
 
Harald
Forum-Meister

Forum-Meister


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

Zitat:
IQR (interquartile range) : The IQR is the middle point between Q1 and Q3.

Nein, sondern der Abstand zwischen Q1 und Q3. Das war aber auch nicht meine Rückfrage.

Die Codezeilen solltest du problemlos schreiben können, wenn du weißt, was du möchtest - etwas, das ich vergeblich versuche herauszubekommen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
throat

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.05.2013, 13:39     Titel:
  Antworten mit Zitat      
Ja ok , dann nehmen wir mal das Beispiel aus http://de.wikipedia.org/wiki/Boxplot

Dieses Beispiel beruht auf einer Messreihe mit den folgenden 20 Datenpunkten:

xi = [9 6 7 7 3 9 10 1 8 7 9 9 8 10 5 10 10 9 10 8];

oder sortiert
xi = [1 3 5 6 7 7 7 8 8 8 9 9 9 9 9 10 10 10 10 10];

Die Werte von 1 und 3 werden im Boxplot als Ausreißer markiert, da sie sich nicht innerhalb der Box oder der Whisker befinden.

Wie sieht jetzt der eigentlicher Code aus?
 
Harald
Forum-Meister

Forum-Meister


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

schade, dass du anscheinend nicht willens bist zu sagen, was genau du als Ausreißer definiert haben möchtest.

Falls es das ist, was in Wikipedia bei dem Beispiel steht:

Code:
low = quantile(xi, 0.25);
up = quantile(xi, 0.75);
iqr = up - low;
lower = xi(xi < low - 1.5*iqr);


Die oberen Ausreißer bekommst du dann hoffentlich selbst hin.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
throat

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.05.2013, 01:14     Titel:
  Antworten mit Zitat      
Ich frag sicherheitshalber mal nach, auch wenn mein Beispiel korrektes Ergebnis geliefert hat, ist das hier korrekt?
Code:
higher = xi(xi > up + 1.5*iqr);
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 10.05.2013, 08:26     Titel:
  Antworten mit Zitat      
Jep.
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.