PHP - Trendfunktion

Tach zusammen!

Ich habe Datenpaare in einer Datenbank. Nun möchte ich aus denen eine Trendfunktion (Regression - http://de.wikipedia.org/wiki/Regressionsanalyse) ableiten. In Excel ist das wunderbar einfach.

Ich denke es ist schwierig bis unmöglich das in php zu realisieren. Hat jemand eine Idee oder so etwas vielleicht schon gemacht?

Schönes Wochenende
HSK

Tach zusammen!

Ich habe Datenpaare in einer Datenbank. Nun möchte ich aus
denen eine Trendfunktion (Regression -
http://de.wikipedia.org/wiki/Regressionsanalyse) ableiten. In
Excel ist das wunderbar einfach.

Ich denke es ist schwierig bis unmöglich das in php zu
realisieren. Hat jemand eine Idee oder so etwas vielleicht
schon gemacht?

die schwierigkeit ist ausschliesslich jemanden zu finden, der die mathematik versteht und diese dann auch beweisbar in code notieren kann :smile:

einfacher duerfte es sein, ein fertiges analyseprogramm zu finden, dass seine daten auf der konsole ausgibt und dieses dann per system od. exec anzustubsen.

Richtig :smile: Die Problematik dürfte wirklich sein jemand zu finden der das kann - meine Kenntnisse reichen bei weitem nicht.

Ein Analyse Programm, das auf dem Server läuft und ich mit exec () anschubsen könnte habe ich bisher noch nicht gefunden. Im Moment mache ich die Auswahl der Daten auf dem Server und lasse mir dann die Datensätze an Excel schicken - dort bearbeite ich sie dann weiter.

Es wäre nur schön unabhängig vom eigenen Rechner arbeiten zu können.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo HSK,

Du wirst lachen: Das geht sogar innerhalb eines SQL-Statement. Okay, man muss noch etwas Arithmetik in der Ausgabe machen, aber erst wenn man zusätzliche Statistikwerte haben will, muß man noch ein zweites Select loslassen.

MfG Georg V.

Hallo HSK,

Du wirst lachen: Das geht sogar innerhalb eines SQL-Statement.
Okay, man muss noch etwas Arithmetik in der Ausgabe machen,
aber erst wenn man zusätzliche Statistikwerte haben will, muß
man noch ein zweites Select loslassen.

kannst du das kurz umreissen?

danke, gruss

Hallo,

klar kann ich das, ich hätte mir nur gewünscht, dass ich etwas mehr über die Tabelle gewußt hätte. Also nehmen wir eine Tabelle tab_linear die Attribute x und y besitzt und alle Werte sollen der linearen Regression unterworfen werden:

select count(\*) as n,
 sum(x) as sx,
 sum(y) as sy,
 sum(x\*x) as sxx,
 sum(x\*y) as sxy
 from tab\_linear
;

dann gilt für die Geradengleichung der Regression (y=mx+b) folgendes:

m=(sxy-sy\*sx)/(sxx\*n-sx\*sx)
b=sy/n-m\*sx/n

Das ganze müßte auch als ein (geschachteltes) SQL-Statement machbar sein (ohne getestet zu haben):

select m,sy/n-m\*sx/n as b 
 from (
 select (sxy-sy\*sx)/(sxx\*n-sx\*sx) as m, sy, sx, n 
 from (select count(\*) as n,
 sum(x) as sx,
 sum(y) as sy,
 sum(x\*x) as sxx,
 sum(x\*y) as sxy
 from tab\_linear
 )
 )
;

MfG Georg V.

Hallo Georg,

sensationel … es funktioniert! Herzlichen Dank schon mal! Du hast mir schon sehr weitergeholfen.Ich musste lediglich am Ende etwas einfügen:

from tab_linear

)AS tmp
)AS tmpi

m und b lasse ich mir so ausgeben:

$query = mysql_query($query);

while ($spalte=mysql_fetch_assoc($query)){

echo " Anzahl Datensätze".$spalte[‚n‘]." m = „.$spalte[‚m‘].“ und b = „.$spalte[‚b‘].“";
}

Die Ausgabe von n - also der Anzahl an verwendeten Datensätzen - bekomme ich so leider nicht hin. Wie könnte ich die verwendeten Datensätze und deren Anzahl ausgeben?

Andere Frage:
Gibt es auch die Möglichkeit einer polynomen Regression? Oder einer multiplen Regression?

Ich versuche Preisabhängigkeiten einer Ware aus reelen Verkaufsfällen anhand verschiedener Merkmale der Ware abzuleiten und zu prognostizieren.

Viele Grüße
Holger

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]