Der Klassiker der Statistik ist die Regression und diese ist in der Regel schnell erstellt. Eine solche Berechnung ist natürlich auch in Excel möglich, allerdings ist die Implementierung in R deutlich leistungsfähiger und mit den entsprechenden Vorkenntnissen auch einfach zu implementieren. Wir haben glücklicherweise Absatzdaten über 3 Jahre, so dass eine vernünftige Analyse möglich ist (s. Abb. 1).
Abb. 1: Zeitreihe in Excel
Nun gilt es, hieraus die Daten für 2018 zunächst mittels Regression zu schätzen. Bildlich gesprochen, wird eine Linie durch die zeitlich geordneten Punkte gezogen, wobei der vertikale Abstand zwischen der Linie und den Punkten minimiert wird (Abb. 2).
1.1.1 Daten aus Excel nach R übertragen
Wie kommen die Daten allerdings nach R? Übertragen werden sie aus Excel mit einer weiteren selbst geschriebenen BERT-Funktion:
E.defineDT = function(var,rng) { library(data.table) eval(parse(text=paste (var, "<<- data.table(range.to.data.frame(rng,TRUE))" ))) TRUE } |
Die Funktion "E.defineDT()" steht für "define DataTable". Damit kann R die Daten in einer für unsere Aufgabenstellung geeigneten Struktur übernehmen."var" ist die Variable, die angelegt werden soll. Mit "range.to.data.frame" findet eine Konvertierung zur Tabellenstruktur statt. Der Excel-Name "Daten" umfasst den Datenausschnitt einschließlich der Feldbeschreibung. Tragen Sie einfach folgende Zeile in eine Excel-Zelle ein
=R.E.defineDT("Daten";Daten) |
Durch "Return" wird die Funktion in R ausgeführt. Damit kennt R das Tabellenobjekt "Daten".
1.1.2 Regression in R ausführen
Eine Regression wird in R durch die Funktion "lm()" abgebildet. Die abhängige Variable wird durch eine Tilde von den unabhängigen Variablen (im Fall der Zeit die fortlaufende Variable "Period_Index") getrennt. Der folgende Code kann in ein oder 2 Excel-Zellen eingetragen werden und über die "R.E.eval()"-Funktion ausgeführt werden.
lin_model<-lm(Absatz ~ Period_Index,data=Daten) pred=predict(lin_model,data.frame(Period_Index=61:72)) |
Über "predict()" kann eine Vorschau erzeugt werden. Die X-Achse wird quasi um die Werte 61 bis 72 verlängert. Daher möchte "predict()" auch den gleichen Datentyp haben: "Period_Index" wird als Vektor mit den Werten 61 bis 72 definiert. Über "data.frame()" findet eine Umwandlung in eine Datentabelle statt.
"lin_model" ist ein R-Objekt mit zahlreichen Ergebnisinformationen. Über "summary()" können Details zu diesem Objekt abgerufen werden. So können bspw. die folgenden Werte abgerufen werden:
- Regressionsparameter über "summary(lin_model)$coefficients";
- F-Test-Werte über "summary(lin_model)$fstatistic";
- T-Test über "summary(lin_model)$fstatistic".
1.1.3 Ergebnis als Grafik darstellen
Das Ergebnis kann mit einer Grafik dargestellt werden. Die Grafik-Komponente in R funktioniert anders als in Excel, ist in vieler Hinsicht leistungsfähiger. In diversen Packages gibt es umfassende Erweiterungen.
Eingeleitet wird die Grafikerstellung über "BERT:graphics.device(<Name>)". "BERT.grahics.device()" überträgt eine in R erstellte Grafik (Plot) nach Excel. Diese Grafik ist dynamisch und wird bei jeder Code-Ausführung aktualisiert. Dieser Funktion kann ein Name als Parameter mitgegeben werden. Das hieraus erstellte Objekt hat in Excel die Kennung "BGD_<name>".
"plot()" ist der Standardbefehl für Diagramme in R. Über "xlim" und "ylim" werden die Achsenweiten begrenzt. Achsenbeschriftungen werden über "xlab" und "ylab" festgelegt. Mit dem "type" wird die Art (hier Linie) festgelegt. Mit "abline()" kann die Regressionsgerade gezeichnet werden. Hierzu werden die Regressionsparameter eingesetzt.
BERT.graphics.device("Grafik"); plot(Daten$Period_Index,Daten$Absatz,ylim=c(0,max(Daten$Absatz)),xlim=c(0,72),xlab="Perioden",ylab="Absatz",xaxt='n',type='l') abline(lin_model$coefficients[1],lin_model$coefficients[2]) axis(1,at=1:72,c(paste0(Daten$Monat,'.',Daten$Jahr),paste0(Daten[1:12,]$Monat,'.',2018))) |
Das Ergebnis ist aus Abb. 2 ersichtlich (der Excel-Name ist BGD_Grafik).
Abb. 2: Verlauf der Absatzkurve und Regressionsgerade
Höhere Qualität als mit Excel
Gut, das hätten Sie auch mit Excel hinbekommen. Aber zu den wirklich anspruchsvollen Methoden gehören auch häufig anspruchsvolle Grafiken dazu. Und hier kann man sich eine Menge Arbeit sparen, wie Sie noch sehen werden.
Wie kann nun die Qualität der Analysemethode gemessen werden? Üblicherweise wird das Bestimmtheitsmaß "R2" herangezogen. R2 kennzeichnet den Anteil der erklärten Abweichungen durch die gesamten Abweichungen vom Mittelwert. Es ist nur bedingt geeignet, da keine Aussage über die statistische Signifikanz gemacht wird. Zudem fehlt ein objektiver Vergleichsmaßstab zu anderen Verfahren.
Es besteht auch die Möglichkeit, über einen Vergleich mit den Istzahlen...