Berechnung des Median bei klassifizierten Daten?!?!

Werbung
News
Artikel
Foren
Join
Projekte
List
Links
Random
Über Redscope
Previous
Next
Startseite › Foren › ETL & Base SAS
Berechnung des Median bei klassifizierten Daten?!?!
7 September, 2012 - 15:16 — ollie_
Hallo Zusammen,
Mir liegen klassifizierte Häufigkeitsverteilungen vor und ich möchte gerne den Median berechnen.
Leider lässt sich der Median nicht ablesen, sondern nur näherungsweise berechen.
Schritt 1: Bestimmung der Medianklasse m über die Positionsziffer n/2
Schritt 2: Lokalisierung des Medians Anwendung der Formel:
Me=x_m^u+(n/2-H_(m-1))/h_m °(x_m^o-x_m^u)
Positionsziffer : n/2
Klassenuntergrenze: x_m^u
Klassenobergrenze: x_m^o
Häufigkeit in der Klasse: h_m
Kumulierte Häufigkeit der nächst unteren Klasse: H_(m-1)
Daten:
Unter Ober Mitte Klassen Total Total_kum
1 1 75 von 50 bis unter 100 15 15
2 2 150 von 100 bis unter 200 50 65
3 3 250 von 200 bis unter 300 80 145
4 4 350 von 300 bis unter 400 40 185
5 5 500 von 400 bis unter 600 40 225
6 6 800 von 600 bis unter 1000 20 245
Bei der Berechnung per Hand fällt die Positionsziffer 122,5 in die 3. Klasse und als Median
erhalte ich 271,90.
/*Positionsziffer Median*/
proc sql;
select count(*)/2 as Position
from work.class;
Quit;
/sascode>
<pre>
Wie geht man bei den weiteren Schritte am geschicktesten vor?
Ich denke ich müsste als nächsten Schritt eine lookup Tabelle bauen, um die Positionsziifer eine Klasse
Hat vielleicht jemand von euch einen Macro für diese Berechnung?
</pre>
Foren:
ETL & Base SAS
Log in or register to post comments
Macrovariable verwenden
Hallo ollie_
10 September, 2012 - 14:45 — JanHeuer
Testdatensatz:
Data Test;
infile cards;
input Klasse m_u m_o h_m H_m_kum;
cards;
1 50 100 15 15
2 100 200 50 65
3 200 300 80 145
4 300 400 40 185
5 400 600 40 225
6 600 1000 20 245
run;
zuerst bestimmst du die Position des Medians und speicherst das Ergebnis in einer Macrovariable.
Proc sql;
select Max(h_m_kum)/2 into :h_m_kum from test;
quit;
Durchführung der Berechnung, wenn der kumululierte Wert GE der Position des Medians, Ausgabe
und Abbruch der Berechnung.
Data Klasse;
retain
alter_wert 1
pos &H_m_kum.
;
set test;
if h_m_kum >= Pos then do;
median = M_u + (Pos - alter_Wert)/h_m * (M_o - m_u);
output;
stop;
end;
alter_wert = h_m_kum;
run;
Schöne Grüße
Jan
Log in or register to post comments
Vielen hat hat mir sehr
14 September, 2012 - 10:57 — ollie_
Vielen hat hat mir sehr geholfen!
Als nächsten Schritt möchte ich gerne den Modus berechnen:
Modusklasse : mk
Klassenuntergrenze: x_m^u
Klassenobergrenze: x_m^o
Häufigkeit in der Klasse: h_m
Kumulierte Häufigkeit der nächst unteren Klasse: h_(m-1)
Kumulierte Häufigkeit der nächst oberen Klasse: h_(m+1)
Schritt 1: Festlegung der Modusklasse (Maximum der Häufigkeiten)
Schritt 2: Lokalisierung des Modus
Anwendung der Formel:
Mod=x_m^u+(h_m-h_(m-1))/((h_m-h_(m-1) )+(h_m-h_(m+1) ) )°(x_m^o-x_m^u)
Wie kann ich den Zeiger eine Position weiterrücken lassen, um den Wert nach dem Maximum zu bekommen?
/*Festlegung Modusklasse*/
Proc sql;
select Max(h_m) into :h_m_kum from Forderungen;
/*Zeiger muss eine Position weiter!*/
quit;
Data work.Modus;
retain
ganz_alter_wert 1
alter_wert 1
pos &H_m_kum.
;
set work.Forderungen;
if h_m_kum >= Pos then do;
modus = m_u + (alter_Wert-ganz_alter_Wert)/((alter_Wert-ganz_alter_Wert)+(alter_Wert-pos))* (m_o - m
output;
stop;
end;
ganz_alter_wert=alter_wert
alter_wert = h_m;
run;
Warum verschwindet trotz Verwendung von <sascode> die Formatierung?
Log in or register to post comments
Herunterladen