Unser geschätzter Kollege Prof. Dr. Dr. David Meintrup bewirbt gerade seinen Online-Kurs zum Thema "Ingenieursmathematik für Jedermann" im Rahmen der MOOC Production Fellowship. Hoffentlich kann das folgende Video, Sie dazu hier für Ihn abzustimmen.
2013-05-15
2013-02-14
Spielen mit JMP
14.02.2013 - Ein kleines Update:
Die Kollegen von SAS fanden diesen Eintrag interessant und haben ihn auch auf ihrem JMP-Blog veröffentlicht (hier der direkte Link).
Vielen Dank dafür! Ich wünsche allen viel Spass mit dem Spiel!
Sebastian Hoffmeister
2013-01-09
Why we need the lower-order-terms ...
This is the second article in our series about non-hierarchical models. Here i want to point out the problem of non-hierarchical regression models meaning models that include some higher-order-terms without the corresponding lower-order-terms.
Labels:
Modellierung,
Non-Hierarchical-Regression
2013-01-08
Why we need the intercept ...
This is the first article in the series on non-hierarchical regression models. In this article we discuss the pitfalls when performing a regression without using the intercept term.
Labels:
Modellierung,
Non-Hierarchical-Regression
A Discussion on Non-Hierarchical Regression Models
There is a certain point in many trainings where we talk about the advice to respect "model hierarchy" in the context of multiple linear regression models. Model hierarchy means: If there is a term of higher order included in the model, all corresponding terms of lower order should be in the model, too.
Example
If you estimated a model $Y = b_0 + b_1 X_1 + b_2 X_2 + b_{12} X_1 \cdot X_2 + \epsilon$ and see that $b_{12}$ is significant different from 0 the main effects $X_1$ and $X_2$ should stay in the model in any case. No matter if they are significant themselves or not.
In the following series of articles I want to give an explanation why we give this recommendation.
In the first article I will present the problems that occur if the intercept term drops out of the model. Of course this is the most simple kind of violating the model hierarchy. I give a motivation why we should prefer:
$$ y = b + b_1 x_1 + \epsilon $$
in nearly all cases over:
$$ y = b_1 x_1 + \epsilon $$
The second article will explain the difficulties that occur whenever you estimate a non-hierarchical model by removing terms of lower order, while keeping the corresponding terms of higher order. This includes not only 2 (and more)-factor-interactions but polynomial terms as well. So our general advice applies to models like
$$ y = b + b_1 x_1 + b_{11} x_1^2 + \epsilon$$
even though.
Of course there are exceptions from these general rules. The last article will give some examples, where one might use non-hierarchical models.
2012-09-05
Die R-Schnittstelle von JMP angewendet
Im folgenden Beitrag erklärt unser Gastautor Mirko Löhmann, die "Auswertung von Objekten in der Ebene mit Räumlicher Statistik". Besonders spannend: Dabei werden die Vorzüge von JMP und R über die R-Schnittstelle von JMP benutzt.
Vielen Dank für diesen Beitrag!
2012-05-11
Control 2012 - Tag 3
| Das Messegebäude "von Hinten" |
8:55 - Ich bin nicht mehr alleine und auf Anfrage hält Doug tatsächlich eine, nicht ganz ernst gemeinte, Morivationsrede.
| Unsere Partner aus Amerika: Mike und Doug |
10:37 - Die App funktioniert. Da der Rest des Tages relativ ruhig verlief, ich es aber gleichzeitig nicht geschafft habe die letzte bisher unerschlossene Halle (5) zu besuchen, möchte ich kurz diese ominöse Android-App beschreiben:
Idee:
Wir wollen Daten mit den Sensoren eines Android-Tablets erheben und mithilfe von InfinityQS analysieren. Das beinhaltet im Wesentlichen:
- Eine App, die die Daten erhebt, darstellt und an InfinityQS schickt.
- Eine Schnittstellt zwischen der Android-App und InifinityQS zum Übertragen der Daten.
Typische Android-Devices haben einen Lage-, Licht- und einen Abstandssensor. Ausserdem können natürlich Audio-Daten vom Mikrophon aufgenommen werden. Wir haben uns entschlossen den Lichtsensor sowie das Mikrophon zu verwenden. Dabei werden konstant Audio-Daten aufgenommen. Über eine Fast-Fourier-Transformation werden diese Daten in Frequenzen und die zugehörigen Amplituden umgerechnet.Ausgewählte Frequenzen werden im Tablet grafisch dargestellt.
![]() |
| Die Messeapp mit der Auswertung der Daten in InfinityQS |
Auf dem Rechner werden die Daten von einem Java-Programm über eine TCP-IP-Verbindung empfangen und in eine Textdatei geschrieben. InfinityQS liest die Werte aus der Textdatei aus und analysiert sie anschließend. Im Bild sieht man ausgewählte Regelkarten für verschiedene Frequenze.
Man kann an den Grafiken und Daten relative gut ablesen, ob gerade jemand vor dem Tablet steht und spricht oder nicht. Man kann von der gemessenen Lautstärke auch gut auf den Traffic vor dem Stand schließen.
Am letzten Tag steht jetzt noch ein Ausflug in Halle 5 an. Dann werde ich hoffentlich noch viele interessante Bilder von Ausstellungsstücken präsentieren können!
Labels:
Control2012
2012-05-10
Control 2012 - Tag 2
| Messegebäude andere Ansicht |
08:30 - Da ich meine Eintrittskarte behalten habe läuft heute alles wie geschmiert. Um 9:00 Uhr stelle ich fest, dass diese Erwartungshaltung etwas voreilig war. Nachdem ich unsere Messe-App gestern Abend Zuhause noch einmal ausprobiert habe und alles stabil lief war ich optimistisch, dass wir das heute hinbekommen. Ausserdem haben Boris und Bertram ein neues Wunderwerk der Technik (W-Lan Router) mitgebracht.
08:45 Mit einem hauch von Neid bemerken wir, das am Nachbarstand eine Motivationsrede für einen Erfolgreichen Arbeitstag gehalten wird. Das sollten wir auch einführen. Auch unser amerikanischer Kollege Doug ist begeistert. Ich bin gespannt, wer den Part morgen übernimmt.
10:00 - Die Zeit vergeht wie im Fluge, da heute etwas mehr los zu sein scheint als gestern.
11:30 - Die erste Packung mit Keksen wird ausgepackt. Wirklich lecker.
14:30 - Wir stellen fest, dass der W-Lan Router sich positiv auf alle Geräte ausgewirkt hat. Die Verbindungen sind stabiler und/oder schneller. Leider gilt das mit einer Einschränkung: Galaxy Tab. Ich verbeuge mich vor der Technik und gebe auf. Zumindest produziert die App hübsche Bildchen auf dem Display (Foto folgt).
14:30 - Ich mache mich auf um einige Fotos von Ausstellungsstücken nachzuholen, die mir gestern aufgefallen waren. Resultat:
| Maschine zum Sortieren von Metallkugeln |
| Projektor-R2-D2 |
| Highlight von Halle 7 |
| Schokoladenauto? Ich durfte es nicht probieren! |
| Autos sind sehr beliebte Ausstellungsstücke - liegt das vielleicht an der Männerquote? |
| Die Erholungsoase. Aber Vorsicht: Keine Selbstbedienung |
17:00 - Fazit: Heute war sicher mehr los. Aber das ganze kann sich gerne noch einmal ein bisschen Steigern in den nächsten Tagen.
| Hatte ich vergessen zu erwähnen, dass die Messe direkt am Flughafen liegt? |
Labels:
Control2012
2012-05-08
Control 2012 - Erster Tag
| Stuttgarter Messegebäude samt Parkplatz |
8:30 - Pünktlich stehe ich vor dem Messegelände und erfahre, dass der Rest der Belegschaft noch unterwegs ist. Da ich als einziger nicht mit einer Eintrittskarte ausgestattet bin vertreibe ich mir die Zeit vor dem Messegelände und genieße das schöne Wetter.
8:45 - Claudia versorgt mich mit der lang ersehnten Eintrittskarte und so kann es losgehen. Der Stand befindet sich unweit von der Stelle an der wir vor einem Jahr residierten. Das ist aber schon die einzige Gemeinsamkeit. Jetzt sind die Monitore professionell an den Wänden angebracht, die Plakate an den Standwänden überzeugen mit schlichter Eleganz und berücksichtigt man die einheitliche Oberbekleidung des Personals kann man das als einen Quantensprung in Sachen professioneller Erscheinung zusammenfassen.
| Messestand mit dem Statcon-Team (vlnr: Boris Kulig, Claudia Walber, Sebastian Hoffmeister, Bertram Schäfer) |
11:00 - Ein Rundgang durch Halle 3 liefert zahlreiche neue Ideen, was man nächstes Jahr noch machen könnte. Angefangen von einer Maschine zum sortieren von Stahl-Kugeln gemäß ihres Durchmessers bis hin zur Liveproduktion von Schiedsrichterpfeifen gibt es allerlei praktische oder zumindest faszinierende Dinge zu bestaunen.
12:00 - Nach einer Sonderzahlung an eine der beiden Firmen, die für die Internetverbindung vor Ort zuständig sind, läuft auch das W-Lan … auf einigen Geräten. Leider gilt das nicht für das Galaxy Tab, für das besagte Android-App entwickelt wurde.
13:00 - Ein anderes Consulting und Trainings-Unternehmen beeindruckt durch einen R2-D2 in (annähernder) Lebensgröße. Zwar ist der Funktionsumfang eingeschränkt - statt Raumschiffe reparieren dient er nur als Projektor - aber er kann sich bewegen und lockt so sicher den einen oder anderen Kunden zum Stand.
16:00 - Der Messetag geht relativ beschaulich zu Ende. Der Besucherandrang lässt sich wahrscheinlich an zwei Händen abzählen, aber das war am ersten Tag auch schon letztes Jahr der Fall.
Ziel für Morgen:
- viele Fotos von den spannenden Maschinen (präziser: Messmitteln) machen
Labels:
Control2012
2012-01-10
Interaktive Graphiken online Präsentieren
Wieder einmal gibt es eine neue Ausgabe des R Journal und wieder finden sich dort spannende Themen. Besonders aufgefallen ist mir dieses mal ein Artikel von Markus Gesmann und Diego de Castillo: Using the Google Visualisation API with R!
Mit dem googleVis Paket können interaktive Graphiken erstellt und direkt im Browser angezeigt werden.
Als kleiner Vorgeschmack:
Mit dem googleVis Paket können interaktive Graphiken erstellt und direkt im Browser angezeigt werden.
Als kleiner Vorgeschmack:
Die Wechselkurse von EUR, GBP, YEN und Renminbi (Chinesische Währung) - jeweils zum USD.AnnotatedTimeLineIDf456e3929f
R version 2.14.1 (2011-12-22) • googleVis-0.2.13
• Google Terms of Use • Data Policy
Der Weg dahin ist gar nicht schwer. Zunächst müssen die Daten in die passende Form gebracht werden. Für obige Graphik heißt das:
Jetzt reichen zwei Befehle um die entsprechende Graphik zu erstellen und anzuzeigen:
lineChart = gvisAnnotatedTimeLine(exchange.data,
erzeugt HTML-Code, der alle zum Anzeigen der Grafik benötigten Informationen enthält. Um das Ergebnis zu sehen benutzt man:
. Im Browser öffnet sich dann die oben angezeigte Grafik. Das Kommando:
lineChart
zeigt bei Bedarf den der Grafik zugrundeliegenden HTML-Code an. Dieser enthält unter anderem auch die Daten selber. Somit kann man die Grafik einfach im Internet veröffentlichen indem man den HTML-Code auf dem eigenen Web-Space hoch lädt. Oder man kopiert den HTML-Code in den eigenen Blog.
Literatur:
Der Weg dahin ist gar nicht schwer. Zunächst müssen die Daten in die passende Form gebracht werden. Für obige Graphik heißt das:
- eine Spalte für das Datum
- eine Spalte für die numerischen Werte, die hier als Linie angezeigt werden (die Wechselkurse, die angezeigt werden sollen)
- eine Spalte für die Unterteilung der numerischen Werte in verschiedene Kategorien (hier: die verschiedenen Währungen)
- eine Spalte für die Titel der Annotationen (die sowohl in, wie auch neben der Grafik angezeigt werden)
- eine Spalte für die Annotationen
Jetzt reichen zwei Befehle um die entsprechende Graphik zu erstellen und anzuzeigen:
lineChart = gvisAnnotatedTimeLine(exchange.data,
datevar="Datum", # Datumsvariable
numvar="Kurs", # numerische Werte
idvar="Währung", # enthält die Gruppen
titlevar="Titel", # enthält die Titel der Bemerkungen
annotationvar="Anmerkung", # die Bemerkungen
options=list(displayAnnotations=TRUE,#Bemerkungen anzeigen
scaleColumns='[0,1]', # 2-Y-Achsen (eine links eine rechts)
scaleType='allmaximized'))
erzeugt HTML-Code, der alle zum Anzeigen der Grafik benötigten Informationen enthält. Um das Ergebnis zu sehen benutzt man:
plot(lineChart)
. Im Browser öffnet sich dann die oben angezeigte Grafik. Das Kommando:
lineChart
zeigt bei Bedarf den der Grafik zugrundeliegenden HTML-Code an. Dieser enthält unter anderem auch die Daten selber. Somit kann man die Grafik einfach im Internet veröffentlichen indem man den HTML-Code auf dem eigenen Web-Space hoch lädt. Oder man kopiert den HTML-Code in den eigenen Blog.
Literatur:
- Markus Gesmann and Diego de Castillo, Using the Google Visualisation API with R - R Journal (December 2011, Volume 3/2)
2011-10-13
Datenimport mal anders
Wer kennt es nicht. Man liest ein Paper und denkt sich: Diese Daten hätte ich jetzt auch gern. Sei es um die Ergebnisse noch einmal selber nachzurechnen oder andere Methoden mit der vorgestellten zu vergleichen.
[Einschub: Ok, es gibt wahrscheinlich den einen oder anderen, der diese Gefühl nicht kennt. Aber ganz abwegig ist es auch nicht :-)]
Glücklich, wer eine passende Grafik in dem Paper findet und das R-Paket digitize kennt.
Nehmen wir uns mal die folgende Grafik vor. Fehlen uns dazu die numerischen Werte (also die Koordinaten der einzelnen Punkte), so könnte man sich nun mit Lineal und Bleistift vor eine ausgedruckte Version setzen und die Werte der Punkte abmessen. Aber digitize macht es etwas bequemer.
install.packages("digitize")
library(digitize)
axis = ReadAndCal("daten.jpg")
Es öffnet sich gleich die importierte JPG-Datei. Zuerst müssen wir nun 4 Referenzpunkte setzen. Jeweils 2 auf der X-Achse und 2 auf der Y-Achse. Das geschieht durch einen Linksklick in der Grafik.
Im nächsten Schritt müssen die einzelnen Datenpunkte in der Grafik markiert werden. Das geschieht wieder mit einem Linksklick in die Grafik.
points = DigitData(col="red")
Wer das ausprobiert, weiß spätestens jetzt warum sich das Paket nur für überschaubare Datensätze eignet. Manchmal dauert es etwas länger, aber wenn alle Punkte rot markiert sind beenden wir den Schritt indem man ESC drückt.
points = DigitData(col="red")
Wer das ausprobiert, weiß spätestens jetzt warum sich das Paket nur für überschaubare Datensätze eignet. Manchmal dauert es etwas länger, aber wenn alle Punkte rot markiert sind beenden wir den Schritt indem man ESC drückt.
Zuletzt werden die gesammelten Achsen-Informationen benutzt um die Koordinaten der Punkte hochzurechnen. Dazu muss angeben werden an welchen Stellen die Punkte auf der X- bzw. Y-Achse gesetzt wurden (hier jeweils 0 und 2).
data = Calibrate(points, axis, 0, 2, 0, 2)
Es ergeben sich die Folgenden gerundeten Werte:
| X | Y | |
| 1 | -2,5 | -2,6 |
| 2 | 1,2 | 1,3 |
| 3 | 0 | 0,3 |
| 4 | 0,8 | 0,4 |
| 5 | 2 | 2,2 |
| 6 | 0,1 | 0,3 |
| 7 | -0,3 | -0,3 |
| 8 | 2,3 | 2,8 |
| 9 | ? | ? |
| 10 | 2,0 | 2,1 |
Abgesehen von minimalen Abweichungen stimmen diese Daten mit denen die ich tatsächlich benutzt habe um die Grafik zu erzeugen überein. Allein Punkt 9, der von den Koordinaten identisch zu Punkt 3 ist kann mit der Methode natürlich nicht gefunden werden. 2 direkt übereinanderliegende Punkte können in der Grafik schließlich nicht auseinandergehalten werden.
Literatur:
- Timothée Poisot: The digitize Package: Extracting Numerical Data from Scatterplots - R Journal Vol 3/1 (June 2011). http://journal.r-project.org/archive/2011-1/RJournal_2011-1_Poisot.pdf (Stand: 10. Oktober 2011).
Labels:
Datenmanagement,
R
2011-10-07
(Welt)-Karten mit JMP
In Anlehnung an den letzten Beitrag möchte ich noch erwähnen, dass R natürlich nicht die einzige Software ist, die sich zum Erstellen von Karten eignet. Hier möchte ich noch kurz anhand der FIFA-Damen-Weltrangliste zeigen, wie sich die gleichen Grafiken in JMP erzeugen lassen.
Die benutzten Daten finden sich wieder im Internet.
Nachdem die Daten in JMP eingelesen sind erzeugen wir die Karte nun im Graph Builder (Graph ⇒ Graphik erstellen).
Zieht man die Ländernamen in den Shape- (bzw. Form-) Bereich des Graphbuilders entsteht automatische die entsprechende Weltkarte.
Danach fehlen noch die Farben gemäß der Punktezahl der verschiedenen Teams. Dazu zieht man die Variable Pts auf die Karte.
Nach einem bisschen Heraumspielen an den Farbverläufen (Rechtsklick auf die Legende ⇒ Verlauf) kann man eine Karte erzeugen, die der mit R erstellten verblüffend ähnlich sieht. Abgesehen davon, dass wir hier den Damen-Fußball und mit R den Herren-Fußball analysiert haben.
Auch hier stimmen die Namen der Länder nicht überall mit den von JMP erwarteten Namen überein. Das sieht man an den weißen Flächen auf der Karte (Zentral-Afrika, China,...).Literatur:
- FIFA Weltrangliste der Damen (Stand: 7. Oktober 2011) - http://www.fifa.com/worldranking/rankingtable/women/index.html
Abonnieren
Posts (Atom)












