Hilfe & Service von EDV-Fachleuten
rgi01a.jpg

Edit v5.002 from 2002-05-21 to 2022-11-25 by AMu+HSc+SSc+JGr

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.

Die lineare Regression (/1/ S. 651: Regression und Korrelation) 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.

Wir verwenden Diese im Programm, um automatisch die Umsatz-Entwicklung für die nächsten 3 Jahre abschätzen zu können.
  • Eine nachvollziehbares Beispiel zum Rechnen und
  • der Realisierung als Funktion für ein Programm.

Aufgabe

In den letzten 3 Jahren (2001 ... 2003) wurden jeweils 4.000; 3.000 und 5.000 Euro Umsatz erzielt. 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.

Gesucht: In der Skizze rot unterstrichen. Wie lautet die Umsatzprognose für 2004 und 2005.
  1. Umsatz 2004: ?€
  2. Umsatz 2005: ?€

Gegeben: In der Skizze grün unterstrichen.
  • Umsatz 2001: 4.000€
  • Umsatz 2002: 3.000€
  • Umsatz 2003: 5.000€

Formel:
  • prognostischer Wert Y
  • ax + (bx * x)   (1)

    mit
  • Mittelwert der Regression ax
  • y - (bx * x)   (2)
     
  • Wertfaktor der linearen Regression bx
  • Summe der Produkte / Summe der Quadrate
  • i=1n [(xi - x) * (yi - y)] / ∑i=1n (xi - x)2   (3)
     
  • Mittelwert von x wobei
    n: die Anzahl der Werte ist und
    i: die Laufvariablen ist, welche nacheinander die Werte von 1 bis n annimmt.
  • 1/n * ∑i=1n(xi)   (4)
     
  • Mittelwert von y
  • 1/n * ∑i=1n(yi)   (5)
     
  • Anzahl der Ist-Werte n
  • (x1, y1), … (xn, yn)   (6)

Konstanten:
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.
Lösung:
Um die Umsatzprognose per linearer Regression zu berechnen, benötigen wir zur Berechnung folgende Zwischenwerte:
Ist-Werte nach Formel (6)
  • n, d.h. Jahresangaben plus dazugehörigen Umsatz
  • (2001, 4.000€), (2002, 3.000€), (2003, 5.000€)
  • 3

Den Mittelwert des Umsatzes nach Formel (5)
  • y
  • (4.000+3.000+5.000)/3 = 4.000

Den Mittelwert der Jahre nach Formel (4)
  • x
  • (2001+2002+2003/)3= 2002

Zähler des Wertfaktors der linearen Regression bx nach Formel (3)
  • i=1n [(xi - x) * (yi - y)]
  • (2001-2002)*(4.000-4.000) + (2002-2002)*(3.000-4.000) + (2003-2002)*(5.000-4.000)
  • 0 + 0 + 1.000 = 1.000

Nenner des Wertfaktors der linearen Regression bx nach Formel (3)
  • i=1n (xi - x)2
  • (2001-2002)2 + (2002-2002)2 + (2003-2002)2
  • (-1)2 + (0)2 + (+1)2
  • 2

Wertefaktor der linearen Regression bx nach Formel (3)
  • Zähler / Nenner
  • 1.000 / 2
  • 500
Mittelwert der linearen Regression nach Formel (2)
  • ax
  • 4.000 - (500 * 2002)
  • -997.000
Lineare Regression
Prognostischer Zukunftswert Y nach Formel (1)
  • Y2004
  • -997.000 + (500 * 2004) = 5.000

  • Y2005
  • -997.000 + (500 * 2005) = 5.500

Antwortsatz:
rgi01c.png
Abb. 1c: 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."

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
   
Nach Oben