Brian Corcoran – Leiter Softwareentwicklung, SAS
JMP bietet verschiedene Möglichkeiten, unterschiedlichste Datenformate in das Produkt zu importieren. Anschließend stehen zahlreiche Exportoptionen zur Verfügung. Der Grund dafür liegt auf der Hand: Im Laufe der Jahre wurden viele Tools zur Datenerfassung und -formatierung entwickelt. In den meisten Fällen ermöglichen diese Tools jedoch keine Konvertierung der Daten in JMP-Datentabellen. Der Export ist notwendig, um die Ergebnisse mit einem breiten Publikum zu teilen, von dem viele JMP nicht besitzen.
Dieser Artikel bietet einen kleinen Einblick in die Import-, Abfrage- und Exportfunktionen von JMP 13. Die Desktop-Screenshots stammen zwar von der Windows-Version, alle hier beschriebenen Funktionen sind jedoch auch in der Mac-Version von JMP verfügbar. Ich verwende eine narrative Form, um den gesamten Arbeitsablauf anschaulich darzustellen. Als Beispiel habe ich mich für ein aktuelles Praxisbeispiel entschieden.
Ich habe zwei Söhne, einen kurz vor dem College-Abschluss und einen im ersten Studienjahr. Der ältere Sohn hat im zweiten Studienjahr seinen Studiengang gewechselt. In dieser Zeit haben wir viele Gespräche über mögliche Berufe geführt. Was interessiert dich? Wo könntest du deiner Meinung nach einen Beitrag zur Gesellschaft leisten? Möchtest du lieber im Büro arbeiten oder aktiver sein? Möchtest du reisen? Die Gespräche dauerten endlos.
Der jüngere Sohn hat einen Studienplan, ist sich aber nicht ganz sicher, ob es die richtige Wahl ist. Diesmal denke ich, ich bräuchte ein paar mehr Informationen, um ihm bei der Entscheidungsfindung zu helfen. Wie sehen die Berufsaussichten in verschiedenen Bereichen aus? Das könnte meinem Sohn helfen, seine aktuelle Wahl zu bestätigen oder über Alternativen nachzudenken. Im Gespräch mit ihm sagte er, er würde gerne einen Master machen, aber wahrscheinlich nicht promovieren wollen. Er interessiert sich wahrscheinlich für einen technischen Bereich, ist aber auch für andere offen. Ihm gefällt die Idee, Prozesse zu optimieren und vielleicht während der Arbeit herumzulaufen. Schließlich wünscht er sich einen gut bezahlten Job. Okay.
Wie sich herausstellte, bietet das US-Arbeitsministerium (Bureau of Labor Statistics) hilfreiche Tools. Die Website bls.gov enthält umfangreiche Daten zu Stellenwachstum und Gehältern, erforderlichen Qualifikationen und sogar Stellenbeschreibungen, um Besuchern einen Einblick in das jeweilige Berufsfeld zu geben. Die Daten stehen öffentlich zum Download bereit und waren für mich ein idealer Ausgangspunkt für meine Recherche.
Bei der Suche auf der BLS-Website schien der Bereich „Beschäftigungsprognosen, Datenbanken zur Berufsbeschäftigung“ am relevantesten. [1] Die Website bietet zwar einen Viewer für die Daten, ich möchte sie aber in JMP importieren. Glücklicherweise gibt es eine Schaltfläche zum Herunterladen der Rohdaten im Excel-XLSX-Format. Perfekt. Ich habe die Datei heruntergeladen, die mit 500 KB gut zu handhaben ist. Die Arbeitsmappe enthält zwölf Tabellen, aber Tabelle 1.7 mit den offenen Stellen für 2014 und den Prognosen bis 2024 scheint die beste zu sein. Ich öffne die Arbeitsmappe über „Datei“ → „Öffnen“ in JMP, und der Excel-Assistent startet mit den Standardeinstellungen. Ich wähle Tabelle 1.7 unter „Arbeitsblätter“ aus, um die Importeinstellungen anzupassen.
Arbeitsblattvorschau mit Standardeinstellungen
Diese Tabelle enthält viele Kopfzeileninformationen. Nach einigem Ausprobieren der JMP-Schaltflächen für Spaltenüberschriften und Datenbeginn habe ich Einstellungen gefunden, die besser aussehen: Zwei Zeilen mit Überschriften, Überschriften beginnen in Zeile 2 und Daten in Zeile 5.
Arbeitsblattvorschau mit angepassten Einstellungen
Ich klicke auf den Import-Button und meine über 1000 Datenzeilen werden importiert. BLS bietet zwar deutlich detailliertere Datensätze an, aber dieser zusammenfassende Datensatz scheint für meine Zwecke ausreichend zu sein. Leider gibt es in meiner JMP-Tabelle Probleme mit der Konvertierung von Spalten in das Zeichenformat. Was ist da schiefgelaufen?

Linksbündiger Text kennzeichnet das Zeichenformat
Wenn ich die Daten überfliege, sehe ich, dass sich am Ende der Tabelle vier Zeilen Fußnoten befinden.

Standardmäßig durchsucht JMP die ersten 100 Datenzeilen, um den Datentyp zu bestimmen. Dies ermöglicht eine effiziente und reaktionsschnelle Vorschau. Beim eigentlichen Import werden jedoch ALLE Zeilen durchsucht und die Spalte in „Zeichenkette“ konvertiert, um Datenverlust zu vermeiden. Ich kann den Spaltentyp natürlich direkt ändern, aber ich kann den Import auch auf eine andere Weise durchführen. Im Bereich „Vorschau aktualisieren“ gibt es ein Kontrollkästchen „Alle Zeilen anzeigen“. Wenn ich dieses aktiviere, werden nicht nur alle Zeilen der Tabelle im Vorschaubereich angezeigt, sondern auch alle Zeilen für die Spaltentypbestimmung verwendet.

Alle Zeilen anzeigen
Nun kann ich zum Ende der Tabelle gehen und festlegen, dass die Daten oberhalb der Fußnoten enden. Dazu klicke ich im Assistenten auf „Weiter“, um zur zweiten Seite mit Optionen zu gelangen. In der Datenvorschau klicke ich auf die letzte Zeile, die ich einbeziehen möchte, und anschließend im zweiten Bereich des Assistenten auf das grüne Pluszeichen neben „Daten enden mit Zeile“. Der Assistent trägt die korrekte Zeilennummer ein, und ich kann erneut auf „Importieren“ klicken, um die Daten korrekt zu formatieren.
Meine Daten sind nun sauber in JMP importiert und umfassen über tausend Berufe, die durchsucht werden können. Die ersten beiden Spalten haben lange, verwirrende Namen, die ich – in Anlehnung an die längeren Bezeichnungen des BLS – in „Matrixtitel“ und „Matrixcode“ abgekürzt habe. Jetzt möchte ich den Fokus weiter eingrenzen. Die Tabelle enthält eine Spalte namens „Berufsart “, die eigentlich gar nicht so aussagekräftig ist. In dieser Spalte steht in jeder Zeile lediglich „Zusammenfassung“ und „Position“. „Zusammenfassung“ bedeutet, dass die Zeile alle Berufe eines bestimmten Typs umfasst, beispielsweise alle Ingenieure. Eine „Position“ könnte beispielsweise einen Maschinenbauingenieur bezeichnen. Daher möchte ich zunächst alle Zusammenfassungszeilen entfernen. Ich könnte beispielsweise eine „SELECT WHERE“-Abfrage verwenden und die Tabelle anschließend filtern, um die Zusammenfassungszeilen zu entfernen. Es gibt jedoch weitere Filter, die ich anwenden möchte. Der Abfrage-Generator wäre dafür ideal.
Falls Sie den JMP Query Builder noch nicht kennen: Es handelt sich um ein leistungsstarkes Abfragetool mit einer grafischen Benutzeroberfläche (GUI) zum Erstellen von SQL-Abfragen für JMP-Datentabellen. Es gibt vergleichbare Tools mit derselben Oberfläche für Datenbankabfragen via ODBC und für SAS-Tabellen via JMP-zu-SAS-Connector. Für die Nutzung des Query Builders sind jedoch keine SQL-Kenntnisse erforderlich. Sie können Abfragen über die Benutzeroberfläche erstellen und zur Wiederverwendung speichern, ohne jemals den zugrunde liegenden SQL-Code einsehen zu müssen.
Der Abfrage-Assistent für JMP-Tabellen wird über das Menü „Tabellen“ aufgerufen. Im daraufhin angezeigten Tabellenauswahldialog können Sie die Tabellen angeben, die für die Abfrage verknüpft werden sollen. In diesem Fall möchte ich lediglich meine Daten filtern. Daher wähle ich die bereits importierte Tabelle als primäre Tabelle und fahre fort.

Tabellenauswahl im Abfrage-Generator
Durch Auswahl von „Abfrage erstellen“ öffnet sich der Hauptdialog zur Abfrageerstellung. Die ersten beiden Spalten enthalten die Berufsbezeichnung und den Code des BLS, die noch etwas kryptisch als „Matrixtitel“ und „Matrixcode“ bezeichnet werden. Der Code ist für mich irrelevant, daher ignoriere ich ihn. Mit der Bezeichnung der Berufsspalte bin ich noch nicht zufrieden. Nachdem ich die Spalte zur Abfrage hinzugefügt habe, klicke ich auf „JMP-Name“, um ein Bearbeitungsfeld zu öffnen und den Titel des Abfrageergebnisses in „Berufsbezeichnung“ zu ändern.

Ändern des Spaltennamens nach der Abfrage
Ich füge außerdem die Spalte „Berufsart“ hinzu, da ich zusammenfassende Angaben ausschließen möchte. Die Spalte „Beschäftigungsveränderung 2014–2024 – Anzahl“ füge ich hinzu, da mich die tatsächliche Anzahl der neu geschaffenen Stellen interessiert. Die Spalte „Prozentuales Wachstum“ erscheint zwar interessant, kann aber irreführend sein. Einer der am schnellsten wachsenden Berufe ist der des Windkraftanlagen-Servicepersonals. Allerdings wächst diese Zahl von 5.000 auf 10.000, was im Vergleich zu vielen anderen Branchen noch gering ist. Daher verwende ich die absolute Anzahl der neu geschaffenen Stellen anstelle des prozentualen Wachstums.
Ich füge außerdem das mittlere Jahresgehalt hinzu, da dies eines der Kriterien meines Sohnes war, sowie die typische Einstiegsqualifikation . Schließlich füge ich noch die wohl wichtigste Spalte hinzu: Stellenangebote aufgrund von Wachstum und Personalersatz (2014–2024) . Es zeigt sich, dass viele Berufe zwar ein relativ langsames Wachstum aufweisen, aber so viele ausscheidende Mitarbeiter ersetzt werden müssen, dass sich große Chancen für Berufseinsteiger ergeben. Ein Beispiel ist der Maschinenbau. Hier gibt es ein moderates Wachstum von 14.600 Stellen (5 %) über den Zehnjahreszeitraum. Berücksichtigt man jedoch auch den Personalersatz, so kommen insgesamt 102.500 Stellen hinzu – von insgesamt 277.500 Stellen in diesem Berufsfeld! Dies ist ein typisches Verhältnis. Statistiker müssen in diesem Zeitraum 50 % ihrer Stellen neu besetzen. Hier ist die Spaltenauswahl des Abfrage-Generators vor der Filterung:

Abfrage vor dem Filtern
Ich möchte eine Spalte einfügen, die den prozentualen Anteil von Stellenersatz und -wachstum anzeigt. Dazu wähle ich das rote Dreiecksmenü neben „Verfügbare Spalten“ und anschließend „Berechnete Spalte hinzufügen“. Als Zähler wähle ich „Offene Stellen…“ und als Divisor „Beschäftigung 2014“ aus und klicke auf „OK“.
Berechnete Spalte hinzufügen
Die Spalte wurde mit dem Namen „Calc1“ erstellt. Über das Kontextmenü kann ich den Namen in „Jobs pro Gesamt“ ändern und sie dann zu den eingeschlossenen Spalten hinzufügen. Dort kann ich das Feld „Format“ auf „Prozent“ ändern. Aufgrund der langen Variablennamen müssen Sie möglicherweise den Bereich „Eingeschlossene Spalten“ vergrößern, um alle Felder zu sehen. Jetzt kann ich meine Suche mithilfe von Filtern eingrenzen.
Zuerst ziehe ich „Berufsart“ in den Filterbereich. Dort klicke ich auf „Einzelposten“, um nur die Zeilen anzuzeigen, die keine Zusammenfassungstypen sind. Jetzt filtere ich nach „Durchschnittliches Jahresgehalt “ und füge nur Stellen mit einem Jahresgehalt von über 75.000 $ hinzu. Wenn ich „Jahresgehalt“ direkt unter den Filter „Berufsart“ ziehe, wird standardmäßig eine UND-Verknüpfung durchgeführt. Genau das möchte ich. Für eine ODER-Verknüpfung muss man auf die ODER-Schaltfläche klicken. Außerdem füge ich „Typische erforderliche Ausbildung “ hinzu und wähle „Bachelor-Abschluss“, „Master-Abschluss“ und den Bindestrich für „nicht kodiert“ aus. Schließlich stelle ich fest, dass viele der verbleibenden Stellen Managementpositionen sind. Da es sehr unwahrscheinlich ist, dass Berufsanfänger eine Managementposition erhalten, möchte ich diese Positionen ausschließen. Das kann ich mit einem „Enthält“-Filter tun, indem ich ihn auf „Enthält nicht“ ändere. Dazu ziehe ich meine Matrixtitel-Variable darüber. Anschließend wähle ich im Dropdown-Menü mit dem roten Dreieck „Filtertyp → Enthält“ aus. Neben „Titel“ erscheint eine Dropdown-Liste. Dort kann ich „Enthält nicht“ auswählen und dann „Manager“ eingeben. Dasselbe kann ich nun für „Führungskraft“ tun, um Geschäftsführer auszuschließen (deren Anzahl übrigens in den letzten 10 Jahren um 3 % gesunken ist). Die Filterliste sieht nach der Auswahl wie folgt aus:
Abgeschlossene Filter
Jetzt kann ich auf „Abfrage ausführen“ klicken und erhalte die Tabelle mit den gewünschten Daten. Wir haben die Anzahl der Zeilen von über tausend auf 58 reduziert. Wir können die Abfrage speichern und später zur Bearbeitung wieder öffnen. Die Abfrage, mit der die Tabelle erstellt wurde, ist auch als Tabellenskript in der Datentabelle gespeichert. Sie kann bearbeitet werden, um die Funktionsweise zu verfolgen, sie zur Neuerstellung der Daten auszuführen oder die Abfrage sogar zu ändern (hier ist Vorsicht geboten).

Quellskript in der Datentabelle
Nachdem ich meine Daten habe, wähle ich „Berufsbezeichnung“ als Beschriftung für meine Diagramme aus. Ich starte den Graph Builder und gebe „Durchschnittlicher Jahreslohn“ für den X-Wert und „Stellenangebote… “ für den Y-Wert ein. Um weitere Informationen anzuzeigen, wähle ich „Typische Ausbildung erforderlich…“ als Farbe und lege die Markergröße als Prozentsatz fest, der angibt, wie viele Stellen im Verhältnis zum gesamten Arbeitskräftepool neu geschaffen werden. Dazu ziehe ich „Arbeitsplätze für insgesamt“ in das Dropdown-Feld „Größe“. Beim Betrachten des Diagramms fällt mir auf, dass Software-Jobs eine recht prominente Position einnehmen. Ich markiere Jobs im Bereich Anwendungs- und Systemsoftware als Rauten. Das kann ich meinem älteren Sohn, einem Informatikstudenten, schicken, um ihm zu versichern, dass er die richtige Wahl getroffen hat. Nach einer letzten Anpassung des Titels sieht das Diagramm schließlich so aus:

Ausgabe des Graph Builders in JMP
Ich beschließe, meinem älteren Sohn diese Ergebnisse als interaktiven HTML-Bericht zu senden. So kann er die Datenpunkte bequem mit der Maus erkunden, während er arbeitet oder – wahrscheinlicher – ein Spiel auf seinem Computer spielt. Interaktives HTML überträgt die Analysedaten direkt im HTML-Bericht. Beachten Sie dies bitte, wenn Sie sensible Daten verwenden. Ich kann den Bericht ganz einfach über „Datei“ → „Speichern unter“ (bzw. „Datei“ → „Exportieren“ auf dem Mac) erstellen und anschließend im Dropdown-Menü „Dateityp“ die Option „Interaktives HTML mit Daten“ auswählen. Diesen eigenständigen Bericht kann ich meinem Sohn per E-Mail schicken. Er kann ihn dann in einem Webbrowser öffnen und die Datenpunkte mit der Maus erkunden.
Interaktiver HTML-Bericht in Chrome
Mein jüngerer Sohn, die eigentliche Zielgruppe, nutzt sein iPad sehr viel. Ich möchte ihm einen ersten Überblick über die Daten geben, ihm aber anschließend ermöglichen, sie selbstständig weiter zu erkunden. Graph Builder für das iPad öffnet eine JMP-Datentabelle. Findet es darin ein Graph-Builder-Skript, öffnet es dieses automatisch in Graph Builder. Ich kann die Datentabelle mit einer Analyse vorbereiten und meinen Sohn die Daten dann selbst untersuchen lassen. Ich möchte die Anzahl der offenen Stellen in diesem Diagramm stärker hervorheben. Ich beginne mit Stellenangeboten… als Y-Achse und Berufsbezeichnung als X-Achse, wobei das Gehalt als Farbbereich dargestellt wird. Allerdings wirkt das Diagramm dadurch etwas überladen und unübersichtlich.

Erster Versuch
Ich kann das Bedienfeld des Graph Builders erneut öffnen und erhalte mit einem einzigen Klick auf die Schaltfläche „Baumdiagramm“ ein Diagramm, das mir besser gefällt. Das Beste daran ist, dass man ganz einfach mit der Maus über ein Quadrat fahren und weitere Informationen erhalten kann:
Graph-Generator Baumdiagramm
Bevor ich meine Datentabelle versende, muss ich das Graph-Builder-Skript einbetten. Dazu klicke ich auf das rote Dreieck im Dropdown-Menü neben dem Graph-Builder-Gliederungsknoten und wähle „Skript speichern“ → „In Datentabelle“. Ich werde aufgefordert, dem Skript einen Namen zu geben; ich wähle „Stellenangebote“ und klicke auf „OK“. Dadurch wird das Treemap-Skript in die Tabelle eingebettet.
Ich kann meine Datentabelle jetzt in einem Cloud-Speicher wie Dropbox, iCloud oder Google Drive ablegen. JMP Graph Builder für das iPad erkennt diese Speicherorte und ich kann meine Tabelle schnell auf mein iPad herunterladen. Zunächst wird lediglich ein großes JMP-Symbol zur Auswahl der Tabelle angezeigt.
Tabellenauswahlbereich
Sobald ich darauf klicke, öffnet die Graph Builder-App die Tabelle, sucht nach dem ersten in der Tabelle eingebetteten Graph Builder-Skript und zeigt diese Analyse an.
Graph öffnet sich automatisch
Jetzt, da mein Sohn die Daten und meine erste Analyse hat, kann er selbst mit den Daten und Grafiken experimentieren. Er kann beispielsweise auf „Filter“ klicken und eine beliebige Spalte auswählen, um sie genauer zu untersuchen. Ein Beispiel wäre, nach „Üblicher Bildungsabschluss für den Einstieg“ zu filtern, um zu sehen, welche Positionen einen Bachelor-Abschluss und welche einen Master-Abschluss erfordern.

Filtern nach erforderlichem Abschluss
Ein weiteres tolles Feature der Graph Builder-App ist, dass man die meisten Diagramme der Desktop-Version ausprobieren kann. Mein Sohn kann sich also verschiedene Darstellungen ansehen oder die Daten aus einer anderen Perspektive betrachten, indem er Spalten verschiebt. Neben den Spaltennamen befinden sich Griffe, die das Verschieben erleichtern. Die bekannten Ablagebereiche von Graph Builder werden beim Ziehen der Variablen hervorgehoben. Außerdem lassen sich Markierungen, Hintergrundfarben und die Achsen anpassen. Er könnte die Ausgabe beispielsweise so ändern:

Erstellen eines neuen Diagramms mit der iPad-App
Damit ist meine Arbeit abgeschlossen. Ich habe jedem meiner Söhne einen interaktiven Bericht zur Ansicht geschickt. Mein Sohn, der sich noch in der Findungsphase befindet, kann eigene Berichte erstellen und so hoffentlich seine Entscheidungen besser verstehen lernen.
Es gibt viele weitere Möglichkeiten, Daten in JMP zu importieren, beispielsweise durch die Anbindung an SAS, den Import von Textdaten, SPSS-Daten aus anderen Quellen, Triple-S-Umfragedaten und vieles mehr. Im Dialogfeld „Datei öffnen“ finden Sie die verschiedenen Optionen. Die erstellten Berichte lassen sich interaktiv mit anderen teilen, auch wenn diese JMP nicht installiert haben.
[1] Vereinigte Staaten. Bureau of Labor Statistics. Beschäftigungsprognosen . Bureau of Labor Statistics, o. J. Web. 18. Aug. 2017. https://www.bls.gov/emp/ep_data_occupational_data.htm