Stefan Welscher: Trendlinie berechnen

Moin moin,
ich habe hier ein Diagramm mit JPGraph erstellt, dass Stückzahlen(y) in Kalenderwochen(x) darstellt. Da die Werte sehr unterschiedlich ausfallen würde ich dem Diagramm gerne eine Trendlinie hinzufügen.

Kann mir !als Nicht-Mathematiker! jemand sagen wie das geht?
Hat evtl. schon jemand irgendwo eine Funktion gesehen, der man nur noch die x/y-Werte übergeben muss?

Besten Dank!

  1. Meinst du sowas wie die 90-Tage Linie?
    Da wird der Durchschnitt aus den Werten der letzten 90 Tage berechnet und aufgetragen. Wie das genau geht findest du sicher in Wikipedia, schau mal unter Chart, Chartanalyse oder so. Von daher kenn ich sowas.

    Wie man das macht hängt natürlich davon ab was genau du haben willst. In diesem Fall nimmst du die Summe der letzten 90 und teilst die durch 90.

    1. Ich meine sowas in der Art:
      http://nsidc.org/images/arcticseaicenews/20090908_Figure3.png

      Wiki bringt mich da irgendwie nicht weiter :/
      Genauso wie Google....

      1. @@Stefan Welscher:

        nuqneH

        Ich meine sowas in der Art:
        http://nsidc.org/images/arcticseaicenews/20090908_Figure3.png

        Verweise einbinden, Grafiken einbinden.

        Wiki bringt mich da irgendwie nicht weiter :/
        Genauso wie Google....

        Der Suchbegriff ist lineare Regression.

        Qapla'

        --
        Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
        (Mark Twain)
  2. Hallo Stefan Welscher,

    Du meinst eine Gerade, wie sie bspw. in Excel hinzugefügt werden kann?

    Mit freundlichem Gruß
    Micha

    1. Ja, das meine ich.
      z.B. http://nsidc.org/images/arcticseaicenews/20090908_Figure3.png

      1. Hallo Stefan Welscher,

        Ja, das meine ich.

        Die Formeln für die Berechnung findest Du in der Excel-Hilfe (vgl. die Funktionen: STEIGUNG und ACHSENABSCHNITT) oder in dem von Gunnar verlinkten Wiki-Artikel.

        Mit freundlichem Gruß
        Micha

  3. Hallo!

    Kann mir !als Nicht-Mathematiker! jemand sagen wie das geht?

    Ja. Falls du eine Gerade einzeichnen möchtest, ginge das wie folgt:
    du nimmst das erste [auf der X-Achse ganz linke] Wertepaar, zum Beispiel
    Punkt A mit X = 0 u Y = 1
    und das letzte [auf der X-Achse ganz rechte] Wertepaar, z.B.
    Punkt B mit X = 90 u Y = 10

    Nun konstruierst du eine Strecke von (0/1) zu (90/10).
    Die Funktion der Geraden G, auf die die Strecke AB lautet
    Y = M*X+B

    Die Steigung M der Geraden G ist
    M = ⌂Y/⌂X (http://de.wikipedia.org/wiki/Steigung)

    -> M = (10-1)/(90-0)   # (Y2-Y1)/(X2-X1)

    B ist der Y-Achsenabschnitt der Funktion Y (der Y-Wert für X = 0)
    -> B = 1

    --> Die Funktion lautet Y = 9/90 * X + 1

    Hat evtl. schon jemand irgendwo eine Funktion gesehen, der man nur noch die x/y-Werte übergeben muss?

    Ja:

    Y = (Y2-Y1)/(X2-X1) * X + Y0

    Liebe Grüße aus Norddeutschland.

    --
    ie:{ fl:( br:> va:} ls:[ fo:| rl:? n4:~ ss:) de:> js:| ch:? sh:( mo:) zu:)
    1. Hi,
      das ist schonmal ein Ansatz, aber das Problem ist ja, dass ich nicht nur zwei Punkte in die Berechnung einbeziehen muss, sondern 52-53 (Je nach Jahr ;) ). Wenn jetzt der letzte Wert auf der x-Achse kleiner ist als der erste bekomme ich eine negative Trendlinie, obwohl die "Jahresbilanz" ja durchaus positiv sein könnte.

      1. aber das Problem ist ja, dass ich nicht nur zwei Punkte in die Berechnung einbeziehen muss, sondern 52-53 (Je nach Jahr ;) ). Wenn jetzt der letzte Wert auf der x-Achse kleiner ist als der erste bekomme ich eine negative Trendlinie, obwohl die "Jahresbilanz" ja durchaus positiv sein könnte.

        Erst berechnest du den Schwerpunkt deiner Werte (bei Daten von Wochen gehe ich mal davon aus, daß die fortlaufend sind und immer den gleichen Abstand auf der x-Achse haben):

          
        $leange = count($daten);  
        $mittelwert_x = $leange / 2;  
        $mittelwert_y = array_sum($daten) / $leange;  
        
        

        dann den Anstieg der Geraden

          
        $summe_1 = 0;  
        $summe_2 = 0;  
        for ($zz = 0; $zz < $leange; $zz++) {  
          $xi_diff = $zz - $mittelwert_x;  
          $summe_1 += $xi_diff * ($daten[$zz] - $mittelwert_y);  
          $summe_2 += $xi_diff * $xi_diff;  
        }  
        $m_gerade = $summe_1 / $summe_2;  
        
        

        Der Rest sollte kein Problem sein.

      2. das ist schonmal ein Ansatz, aber das Problem ist ja, dass ich nicht nur zwei Punkte in die Berechnung einbeziehen muss, sondern 52-53 (Je nach Jahr ;) ). Wenn jetzt der letzte Wert auf der x-Achse kleiner ist als der erste bekomme ich eine negative Trendlinie, obwohl die "Jahresbilanz" ja durchaus positiv sein könnte.

        sagt wer?

        Folgende Zahlen
        10 0 1 2 3 4 5

        Was ist der Trend? Darüber streiten sich die Klima-Doktoren.

        Meines Wissens beruht die Aussagekräftigkeit eines Trends auf der Standardabweichung gegenüber einer Linie. Ein Trend ist dann aussagekräftig, wenn die einzelnen Punkte nur gering von einer relativ einfachen Linie abweichen.

        Du kannst also folgendes Verfahren wählen:

        Nimm beliebig wenige Datenpunkte
        Berechne daraus eine Geradengleichung
        Berechne die Standardabweichung

        Wiederhole diese Schritte beliebig oft
        Wähle jene Gleichung als Trendlinie, deren Standardabweichung am geringsten ist.

        Mein obiges Beispiel kann für einfache Gleichungen zu grosse Standardabweichungen ergeben.
        Mehr Parameter in der Gleichung führen aber zur Aussage: Zu viele Einflüsse bestimmen die einzelnen Datenpunkte.

        Dies ist mein vollkommen undoktoraler Ansatz.

        mfg Beat

        --
        ><o(((°>           ><o(((°>
           <°)))o><                     ><o(((°>o
        Der Valigator leibt diese Fische
        1. das ist schonmal ein Ansatz, aber das Problem ist ja, dass ich nicht nur zwei Punkte in die Berechnung einbeziehen muss, sondern 52-53 (Je nach Jahr ;) ). Wenn jetzt der letzte Wert auf der x-Achse kleiner ist als der erste bekomme ich eine negative Trendlinie, obwohl die "Jahresbilanz" ja durchaus positiv sein könnte.

          sagt wer?

          Folgende Zahlen
          10 0 1 2 3 4 5

          Was ist der Trend?

          Auf jeden Fall nichts was an dem "könnte" rütteln könnte.

        2. Tach.

          Folgende Zahlen
          10 0 1 2 3 4 5

          Was ist der Trend? Darüber streiten sich die Klima-Doktoren.

          Würde mich wundern, wenn die sich auf lineare Funktionen für ihre Trendlinien beschränkten. Und auch, wenn man kein "Klima-Doktor" ist, muß man das vermutlich nicht.

          --
          Always remember that you are unique. Just like everybody else.
          1. Folgende Zahlen
            10 0 1 2 3 4 5

            Was ist der Trend? Darüber streiten sich die Klima-Doktoren.

            Würde mich wundern, wenn die sich auf lineare Funktionen für ihre Trendlinien beschränkten.

            Nein die Produzieren Graphen und kolorieren diese angemessen, dass der intendierte Trend sich bei der Mehrzahl der Opfer ganz automatisch einstellt.

            Und auch, wenn man kein "Klima-Doktor" ist, muß man das vermutlich nicht.

            Ich werfe eine Laplace-Münze:
            Kopf, Kopf, Kopf

            Nein, man muss nicht.

            mfg Beat

            --
            ><o(((°>           ><o(((°>
               <°)))o><                     ><o(((°>o
            Der Valigator leibt diese Fische
      3. Hallo!

        Hi,
        das ist schonmal ein Ansatz, aber das Problem ist ja, dass ich nicht nur zwei Punkte in die Berechnung einbeziehen muss, sondern 52-53 (Je nach Jahr ;) ). Wenn jetzt der letzte Wert auf der x-Achse kleiner ist als der erste bekomme ich eine negative Trendlinie, obwohl die "Jahresbilanz" ja durchaus positiv sein könnte.

        Dann könntest du auch einen Durchschnittspunkt aus den kumulierten Funktionswerten Y1..Yn für den X-Wert X0 bilden und mit diesem Durchschnittswert deine Formel aufstellen.
        Leider weiß ich nicht, wie genau dein Graph aussieht. Ich ging aber davon aus, dass deine Stückbilanz stetig steigt. ;-)

        Liebe Grüße aus Norddeutschland.

        --
        ie:{ fl:( br:> va:} ls:[ fo:| rl:? n4:~ ss:) de:> js:| ch:? sh:( mo:) zu:)
        1. Tach auch.

          Dann könntest du auch einen Durchschnittspunkt aus den kumulierten Funktionswerten Y1..Yn für den X-Wert X0 bilden und mit diesem Durchschnittswert deine Formel aufstellen.
          Leider weiß ich nicht, wie genau dein Graph aussieht. Ich ging aber davon aus, dass deine Stückbilanz stetig steigt. ;-)

          Bitte hört auf, hier Tipps zu verbreiten, welche bestenfalls suboptimal sind. Das Stichwort lineare Regression ist ja bereits gestern Vormittag von Gunnar gefallen.

          Bis die Tage,
          Matti