rgi00b.jpg
Edit v1.022 from 2005-01-10 to 2008-05-20 by Team

Regression

Die Regressionsanalyse wird verwendet, um einen nächsten Wert, aus schon bereits vorhandenen Werten zu berechnen. D.h. der Sinn liegt darin, das man einen Wert schon für einen weitern Wertebereich voraussagen kann. Dabei muss der Wert nicht von der Zeit abhängen. Dies ist zwar hauptsächlich das Einsatzgebiet, deshalb spricht man auch im Allgemeinen i.d.R. von den Zukunftswerten.
In einigen Kalkulationsprogrammen, im Bereich Diagramm, gibt es dafür den Begriff der Trendlinie, die man dort optional einfügen und verwenden kann.
Wir wollen Sie hier aber einmal berechnen.

 
Edit v1.000 from 2008-05-28 to 2008-06-06 by H. Schärfer

Lineare Regression

rgi01a.jpg Abb. 1.a: Zukünftiger Verlauf nach Regression, auf der Basis von 3 Monatswerten.
Diese Art der Regression ist dann einsetzbar, wenn der weitere Verlauf einigermaßen linear verläuft. Den, je linearer der Verlauf ist, desto weiter gilt die Vorhersage.
In wie weit die Daten voneinander abhängen, klärt die Korrelation. Das ist hier aber nicht Ziel der Betrachtung.



Die Formel

für die lineare Regression (/1/ S. 651: Regession und Korrelation) lautet:

Beispiel

Der Auftraggeber nimmt an, das es einen linearen Zusammenhang gibt, zwischen Geschäftsjahr und Umsatz. Die Frage ist, wie wird der Umsatz sich in den nächsten 2 Jahren entwickeln, wenn es so weiter geht, wie in den bisherigen 3 Jahren.


Gegeben:

In den letzten 3 Jahren (2001 ... 2003) wurden jeweils 4.000; 3.000 und 5.000 Euro Umsatz erzielt.

Gesucht:

Wie lautet die Umsatzprognose für 2004 und 2005.

Skizze:

rgi01b.png Abb. 1.b: Umsatzentwicklung der drei Jahre von 2001 bis 2003
Man erkennt deutlich, das im Jahr 2003 der Umsatz deutlich zurückgegangen war. Dafür hat der Umsatz im Folgejahr, nicht nur den alten Umsatz von 2002 erreicht, sondern diesen sogar noch übertroffen.


Formeln:

Als Gleichungen werden die oben angegebenen verwendet.

Lösung:

Um die Umsatzprognose per linearer Regession zu berechnen, benötigen wir als Zwischenschritt
  • Die Anzahl der Ist-Werte n=3, d.h. Jahresangaben plus dazugehörigen Umsatz (2001: 4.000€), (2002: 3.000€), (2003: 5.000€);
  • Den Mittelwert der Jahre x = (2001+2002+2003/)3= 2002;
  • Den Mittelwert des Umsatzes y = (4.000+3.000+5.000)/3= 4.000;
  • Die Summei=1n(xi - x)2 der Quadrate:
          = (2001-2002)2 + (2002-2002)2 + 
            (2003-2002)2
          = (-1)2 + (0)2 + (+1)2
          = 2
          
  • Die Summei=1n[(xi - x) * (yi - y)] der Produkte:
          = (2001-2002)*(4.000-4.000) + (2002-2002)*(3.000-4.000) +
            (2003-2002)*(5.000-4.000)
          = 0 + 0 + 1.000 = 1.000
          
  • Den Wertefaktor bx
          = Summe der Produkte / Summe der Quadrate = 1.000/2 = 500
          
    und
  • ax genannt der Mittelwert der Regression
    = y - (bx * x)
          = 4.000 - (500 * 2) = -997.000
          
Daraus ergibt sich für
   Y   = ax + (bx * x)
   Y2004 = -997.000 + (500 * 2004) = 5.000 und 
Y2005 = -997.000 + (500 * 2005) = 5.500!

Antwortsatz:
rgi01c.png Abb. 1.c: Prognose der Umsatzentwicklung mittels linearer Regression
Die lineare Regression liefert, unter den gemachten Voraussetzungen und Einschränkungen, folgende Antwort: "Im kommenden Jahr wird der Umsatz stagnieren, um im folgenden Jahr, dann weiter anzusteigen."



Edit v 1.003 from 2002-05-21 to 2005-10-31 by J. Greifendorff + A. Münch

Programmbeispiel

Die lineare Regression wurde in einem Visual Basic-Programm für eine Kalkulation in Excel eingesetzt. Die Realisierung ist auf der folgenden Seite zu sehen. Zu beachten ist, das das Ende auf den 12 Monate gesetzt worden ist.



   '***************************************************************
   '* Lineare Regressionsanalyse v1.23                            *
   '* ----------------------------------------------------------- *
   '* Formel Y(i) = rWertA+rWertB*rT                              *
   '* rWertA = 1 / n * ( Y1 + Y2 + Yn )                           *
   '* rWertB = 12 / n * ( n - 1 ) * Summe mit j=1 bis n[ Yj       *
   '* ****************             (j - ( ( n + 1 ) / 2) ) ]      *
   '* rT = i - ( n + 1 ) / 2                                      *
   '* Input                                                       *
   '* - arWerte: Feld mit bzw. fuer die Gleitkomma-Werten. Zur    *
   '*   Vorsicht bzgl. der Dimensionierung sollte diese in dem    *
   '*   Element mit dem Index NULL stehen.                        *
   '* iIst = Anzahl der vorhandenen Werte                         *
   '* iSoll = Anzahl der zu errechnenden Werte                    *
   '* Process                                                     *
   '* + Constant                                                  *
   '* + Variable                                                  *
   '* - rSumme ; rWertA, rWertB für die Berechnung der A " B Werte*
   '* - rT Für die Periode zuständig (nur für die Berechnung      *
   '* - iI Hilszähler                                             *
   '* Output                                                      *
   '* - arwerte ( rest für die regkursion                         *
   '* - rWertA Wert A für die Berechnung                          *
   '* - rWertB Wert b für die Berechnung                          *
   '* - rT Für die Berechnung                                     *
   '***************************************************************

    Public Function reg_lin(arWerte, iIst, iSoll) As Boolean

   '******* Variablen deklarieren *********************************

    Dim rSumme As Single
    Dim rWertA, rWertB, rWertbZ, rT As Single
    Dim iI As Integer

    '******* FOR schleife zum Berechnen der "A" und "B" Werte.******
    '******* für die funktion Y = A+B+T ****************************
    rSumme = 0!
    rWertA = 0!
    iI = 0
    rWertB = 0
    rWertbZ = 0
    For iI = 1 To iIst Step 1
     rWertA = rWertA + arWerte(iI)

     '***************************************************************
     '***** b =Summe von j=1 bis n[ Yj * (j - ( ( n + 1 ) / 2) ) ]
     '***************************************************************
     rWertB = rWertB + (arWerte(iI) * (iI - ((iIst + 1) / 2)))
     Next iI

    '******* Berechnung des Wertes "a" für die spätere Berechnung***
    '******* 'b = 12 / n * ( n - 1 ) * Summe ***********************
    rWertA = rWertA / (iIst)

    '****** Berechnung des b Wertes für die spätere Berechnung *****
    '******* 'b = 12 / n * ( n² - 1 ) * Summe **********************
    rWertB = 12 / (iIst * (iIst * iIst - 1)) * rWertB

    '******* Berechnung der neue Periode nur für Berechnung nötig***
    '******* rT = i - ( n + 1 ) / 2 ********************************
    '******* Y = A + B * T *****************************************
    rT = 0
    For iI = iIst + 1 To iSoll Step 1
    rT = iI - (iIst + 1) / 2
    arWerte(iI) = rWertA + rWertB * rT
    Next iI

   '****** Ausgabe des Wertes der für die Verknüpfung *************
   reg_lin = True
   End Function