![]() |
Frage aus dem Bereich: Lineare Regression
Ich suche ein Äquivalent zur
Excel-Funktion 'SCHÄTZER' Aus einigen bekannten X-und Y-Werten berechnet / 'schätzt' diese Funktion den Y-Rückgabewert für einen gegebenen X-Wert. Vielen Dank. |
AW: Frage aus dem Bereich: Lineare Regression
Was passiert bei einer Googlesuche mit "
![]() |
AW: Frage aus dem Bereich: Lineare Regression
Danke für die Antwort.
Ich habe natürlich erstmal selbst tagelang gesucht und versucht und leider keine Alternative zur Funktion 'Schätzer' gefunden. Meine 'Google'-Suchen ergaben sehr viel zum Hauptthema 'Lineare Regression', aber keinen Sourcecode zum Finden der Unbekannten. Hier ist das Microsoft-Beispiel: ![]() Die Gleichung für SCHÄTZER lautet: a+bx, mit: An der Stelle komme ich nicht weiter. |
AW: Frage aus dem Bereich: Lineare Regression
Delphi-Quellcode:
Ausgabe:
program Project1;
{$AppType Console} uses System.Math, System.SysUtils; type TFunction<T, TResult> = reference to function (const X: T): TResult; TSchätzfunktion = TFunction<Extended, Extended>; function ErzeugeSchätzer(const X, Y: array of Extended): TSchätzfunktion; { http://office.microsoft.com/de-de/excel-help/Schätzer-HP005209096.aspx } var MittelwertX, MittelwertY: Extended; Zähler, Nenner: Extended; Index: NativeInt; Wert: Extended; A, B: Extended; begin Assert(Length(X) = Length(Y)); MittelwertX := Mean(X); MittelwertY := Mean(Y); Zahler := 0; for Index := 0 to High(X) do Zahler := Zahler + (X[Index] - MittelwertX) * (Y[Index] - MittelwertY); Nenner := 0; for Wert in X do Nenner := Nenner + Sqr(Wert - MittelwertX); B := Zahler / Nenner; A := MittelwertY - B * MittelwertX; Result := function (const X: Extended): Extended begin Result := A + B * X; end; end; procedure Run; var F: TSchätzfunktion; I: NativeInt; X, Y: Extended; begin F := ErzeugeSchätzer( [0, 2], [0, 1] ); WriteLn('X':6, 'Y':6); for I := -10 to 10 do begin X := I / 2; Y := F(X); WriteLn(X:6:2, Y:6:2); end; end; begin try Run; except on E: Exception do WriteLn(E.ClassName + ': ' + E.Message); end; if DebugHook <> 0 then ReadLn; end.
Code:
X Y
-5.00 -2.50 -4.50 -2.25 -4.00 -2.00 -3.50 -1.75 -3.00 -1.50 -2.50 -1.25 -2.00 -1.00 -1.50 -0.75 -1.00 -0.50 -0.50 -0.25 0.00 0.00 0.50 0.25 1.00 0.50 1.50 0.75 2.00 1.00 2.50 1.25 3.00 1.50 3.50 1.75 4.00 2.00 4.50 2.25 5.00 2.50 |
AW: Frage aus dem Bereich: Lineare Regression
Vielen herzlichen Dank für Deine Mühe.
Ich werde mir das asap anschauen, vielleicht noch heute abend. |
AW: Frage aus dem Bereich: Lineare Regression
Das war genau das, was ich gesucht habe!
Es funktioniert wunderbar. Thanks. :-D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz