Quadratische Regression Koeffizienten vorgeben
Betrifft: Quadratische Regression Koeffizienten vorgeben
von: Philipp
Geschrieben am: 01.08.2014 11:43:21
Hallo,
ich würde Excel gerne folgende Regression per macro durchführen lassen:
y=ax^2+bx+c mit b=0.
Leider schaffe ich es mit LINEST UND RGP nur c=0 zu setzen und mir dann die Koeffizienten ausgeben zu lassen. Als Datenbasis dienen x/y-Wertepaare.
Muss ich das Problem händisch in ein Gleichungssystem umwandeln oder gibt es dafür bereits eine passende Excel-VBA-Funktion, ähnlich wie LINEST und RGP, wo ich die Bedingung b=0 beim lösen der Koeffizienten setzen kann?
Schönen Gruß und Danke für eure Hilfe
Philipp
Betrifft: AW: Quadratische Regression Koeffizienten vorgeben
von: Dieter Klemke
Geschrieben am: 06.08.2014 18:07:28
Hallo Philipp,
wenn ich dein Problem richtig verstanden habe, dann kannst du das mit dem folgenden VBA-Programm lösen (x-Werte in Spalte A, y-Werte in Spalte B, jeweils ab Zeile 2):
Sub Test_Regression()
Dim achsAbschn As Double
Dim letzteZeile As Long
Dim steig As Double
Dim ws As Worksheet
Dim x() As Variant
Dim y() As Variant
Dim z As Long
Set ws = ThisWorkbook.Worksheets("Regression")
letzteZeile = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
If letzteZeile <= 3 Then
MsgBox "Zu wenig Daten"
Exit Sub
End If
x = ws.Range(ws.Cells(2, "A"), _
ws.Cells(letzteZeile, "A")).Value
For z = 1 To letzteZeile - 1
x(z, 1) = x(z, 1) ^ 2
Next z
y = ws.Range(ws.Cells(2, "B"), _
ws.Cells(letzteZeile, "B")).Value
steig = Application.WorksheetFunction.Slope(y, x)
ws.Cells(2, "D") = steig
achsAbschn = Application.WorksheetFunction.Intercept(y, x)
ws.Cells(2, "E") = achsAbschn
End Sub
Ich füge meine Arbeitsmappe bei, in der parallel mit Tabellenblatt-Formeln gerechnet wird:
https://www.herber.de/bbs/user/91940.xls
Viele Grüße
Dieter
Beiträge aus den Excel-Beispielen zum Thema "Quadratische Regression Koeffizienten vorgeben"