Community deutschsprachiger SAS-Anwender und -Programmierer

Antworten
Dies ist eine offene Gruppe. Melden Sie sich an und klicken Sie auf die Schaltfläche „Gruppe beitreten“, um Mitglied zu werden und damit zu beginnen, Beiträge in dieser Gruppe zu veröffentlichen.
Highlighted
New Contributor
Beiträge: 4
Codevorlage?

Hallo miteinander!

 

Ich habe Tabellen der Art

 

Nr Gruppe Variable1 - VariableN

 

wobei die Variablen numerisch oder alphanumerisch (2-15 Ausprägungen) sein können und N so ca. 200 ist.

Ich suche einen Programmcode, der eine Art Datenbeschreibung automatisiert mit Grafiken und Kennzahlen
unter dem Aspekt "In welchen Variablen unterscheiden sich die Gruppen besonders?".

 

Das was ich gebaut habe ist unglaublich hässlich (numerisch andere Grafiken als alphanumerisch und die Tabellen sperrig) und noch dazu nicht universell einsetzbar.

 

Am liebsten wäre auch ein Export in Word/Excel/html.

 

Hat jemand so was rumfliegen, das er mir schenken würde?

Danke und Grüße!

Trusted Advisor
Beiträge: 1.327
Betreff: Codevorlage?

Hallo Annika,

 

erst einmal willkommen zu den SAS Support Communities!

 

Fertigen Code habe ich in diesem Fall leider nicht anzubieten.

 

Die Aufgabenbeschreibung ist noch sehr allgemein gehalten. Wenn ich damit konfrontiert wäre, würde ich als erstes darauf hinwirken, vom Auftraggeber (Statistiker, Chef, Professor, Kunde, ...?) genauere Spezifikationen zu erhalten, oder nötigenfalls selbst welche entwickeln. Denn was würde es nützen, in einer noch so schönen Tabelle etwa die Gruppenmittelwerte einer numerischen Variable zu vergleichen, wenn der relevante Gruppenunterschied hier vor allem in der Varianz, der Verteilungsform oder der Anzahl Missings läge?

 

Je konkreter dann die Anforderungen sind, desto leichter können Forenmitglieder sicherlich auch Vorschläge für die technische Umsetzung einzelner Punkte machen, wenn dabei Probleme auftreten.

 

Viele Grüße

 

Reinhard

New Contributor
Beiträge: 4
Betreff: Codevorlage?
Posted in reply to FreelanceReinhard

Hallo Reinhard,

 

danke für deine Antwort! :-)

Also, ich schreibe an meiner Doktorarbeit (Maschinenbau) und möchte dazu Funktionstabellen auswerten. Darin geht es grob darum, welche Maschine(neinstellungen) welche Resultate liefern, weggeschrieben in jeder Menge numerischen Variablen (ca.150) und einigen Qualitätsmerkmalen (ca.50).
Pro gefertigtem Bauteil (=Nummern) gibt es einen Datensatz, pro Gruppe ein-drei Maschinen.
Gruppenmittelwerte sind daher interessant, von ähnlichen Varianzen/Standardabweichungen gehe ich aus (zeigen Stichproben auch). Da es aber zuuuuviele Gruppenmittelwerte sind, wäre interessant, WO sich die Gruppen unterscheiden und dort hilft vielleicht Grafik weiter? Ich bin allerdings offen und kann mir nicht vorstellen, dass ich die erste mit diesem Problem bin.

 

VG, Annika

Trusted Advisor
Beiträge: 1.327
Betreff: Codevorlage?

Für die Variablen, deren Gruppenmittelwerte von Interesse sind, könnte man versuchen, den Unterschied zwischen zwei Gruppen (oder die Heterogenität zwischen mehr als zwei Gruppen) so in einer Zahl auszudrücken, dass diese Zahlen für unterschiedliche Variablen sinnvoll miteinander vergleichbar sind. Dazu ist es wahrscheinlich nötig, eine Standardisierung von Variablenwerten durchzuführen (PROC STDIZE bietet hierfür verschiedene Möglichkeiten) und manche Variablen vorher zu transformieren (z. B. logarithmisch).

 

Eine übersichtliche Darstellung der so für jede dieser Variablen erhaltenen Gruppenabstände (z. B. absteigend sortiert in einem Balkendiagramm) ist sicherlich kein Problem mehr.

 

Schwieriger wird es sein, die Gruppenunterschiede bzgl. verschiedener kategorieller Variablen vergleichbar zu machen. Neben dem Skalenniveau der Variablen (Ordinalskala: evtl. Rangtransformation, Nominalskala: evtl. Zerlegung in binäre Variablen sinnvoll) sollten hier inhaltliche Überlegungen das Vorgehen bestimmen.

 

Viel Erfolg!

 

New Contributor
Beiträge: 4
Betreff: Codevorlage?
Posted in reply to FreelanceReinhard

Hallo Reinhard!

Vielen Dank für deine erneute Antwort! Da sind einige gute Hinweise dabei. Die Vergleichbarkeit der Variablen untereinander hatte ich z.b. garnicht auf dem Schirm, Umcodierung der alphanumerischen Variablen betreibe ich dagegen schon fleißig. :-D

Was eher mein Problem ist. Ich stelle mich zu dumm an, eine optisch ansprechende Form zu erzeugen, die dann in der Diss gut aussieht.

z.B. ergibt der folgende Programmcode untereinander angeordnete Histogramme für metrische Variablen und nebenander in ein Diagramm gezeichnete Balkendiagramme für nominale. Das sieht k*cke aus.

Gibt es dort keinen Weg zum Schönermachen?

LG, Annika

 

%let variable = Variable;

%let anz_gruppen = 4;

%let Tabelle = Tabelle_mit_der_variablen;

 

/*Histogramme für metrische Variablen*/

proc sql noprint;

select max(&variable.), min(&variable.)

into :max, :min

from &datensatz. ;

quit ;

%let width = %sysevalf (((&max.) - (&min.))/10);

title &variable.;  

proc univariate data = &datensatz. noprint ;

class aufteilung;

var &variable. ;

histogram &variable. /

           NROWS= &anz_gruppen. midpoints = &min. to &max. by &width. ;

run;

 

/* Balkendiagramme für alphanumerische Variablen*/

PROC GCHART DATA= &Tabelle. ;

VBAR &variable. /

GROUP=aufteilung

TYPE=PCT

G100 ;

RUN; QUIT;

TITLE;

%end;

 

Trusted Advisor
Beiträge: 1.327
Betreff: Codevorlage?

Die Idee meiner vorigen Antwort war, die Gruppenunterschiede bzgl. einer Variable möglichst in einer einzigen Zahl auszudrücken. Dem damit zwangsläufig verbundenen Informationsverlust steht als Vorteil die Übersichtlichkeit des Diagramms gegenüber, in dem die Unterschiede bzgl. vieler Variablen auf einen Blick sichtbar sind.

 

Deine Beispiele von Histogrammen und Balkendiagrammen zielen dagegen auf eine Detaildarstellung ab, die vielleicht eher für ausgewählte Variablen (etwa die mit den größten oder bedeutendsten Gruppenunterschieden) in einem zweiten Schritt, nämlich nach einer Gesamtübersicht, oder zum Nachschlagen komplett in einem Anhang geeignet ist. Wie wichtig die Detailunterschiede inhaltlich sind, kann ich natürlich nicht beurteilen.

 

Was eine "schöne" Darstellung betrifft, würde ich als Erstes überlegen und skizzieren, wie diese in etwa aussehen soll, und danach erst die Umsetzung mit SAS in Angriff nehmen. Die Möglichkeiten für Letzteres wurden durch die Einführung der SG-Prozeduren wesentlich erweitert, so dass man mit vertretbarem Aufwand recht nah an die gemachten Vorgaben herankommen dürfte. Für Anregungen und einen Eindruck, was realistisch möglich ist, empfehle ich, Beispielgrafiken durchzusehen, wie sie u. a. in dem Blog "Graphically Speaking" zu finden sind.

 

Wenn es dann bei der einen oder anderen speziellen Modifikation an einem Diagramm hakt, werden eine Suche in der Historie vor allem des Unterforums "SAS/GRAPH and ODS Graphics" der SAS Support Communities oder eine gezielte Frage dort sicherlich bald zu einer Lösung führen. Soweit ich sehe, wurden allein in dem genannten Unterforum seit Anfang dieses Monats bereits etwa genauso viele Beiträge gepostet wie hier in CoDe SAS seit einem ganzen Jahr.

New Contributor
Beiträge: 4
Betreff: Codevorlage?
Posted in reply to FreelanceReinhard

Hallo Reinhard!

 

Natürlich hast du recht und Grafiken stellen die Ausnahme dar, aber ein paar Variablen sind eben bedeutender und sollen daher besondere Aufmerksamkeit bekommen. ;-)

Das Blog ist ja toll, danke für den Link. Nun komme ich hoffentlich weiter.

Vielen Dank für deine Hilfe,

Annika