Zwei Werte mithilfe linearer Regression bestimmen

Modelle zur Korrelations- und Regressionsanalyse

Moderator: EDi

Antworten
jenv107
Beiträge: 5
Registriert: Sa Dez 28, 2019 8:20 pm

Zwei Werte mithilfe linearer Regression bestimmen

Beitrag von jenv107 »

Hallo zusammen,

wir haben in der Uni eine Aufgabe zu nonlinearer Regression bekommen.

Ein Aufgabenteil lautet wie folgt:
Die Daten für (Y3,X3) werden aus dem folgenden Modell generiert: Yi=(b1+0.3b2)+(2b1-b2)*Xi. Finden Sie die Werte von b1,b2 mittels linearer Regression.

Nun haben wir leider überhaupt keine Ahnung, wie wir das ganze angehen sollen.

Vielen Dank schon mal für Eure Hilfe und Anregungen. :D

Liebe Grüße
jenv107
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Zwei Werte mithilfe linearer Regression bestimmen

Beitrag von jogo »

Hallo Jenv,

willkommen im Forum!
Mach doch einfach eine normale Regression. Die liefert Dir Intercept und den Koeffizienten vor dem X.
b1 und b2 kannst Du dann als Lösung eines linearen Gleichungssystems ermitteln:

Code: Alles auswählen

1*b1 + 0.3*b2 = Intercept
2*b1   - 1*b2 = "Koeffizienten vor dem X"
Gruß, Jörg
jenv107
Beiträge: 5
Registriert: Sa Dez 28, 2019 8:20 pm

Re: Zwei Werte mithilfe linearer Regression bestimmen

Beitrag von jenv107 »

Hallo jogo,

vielen Dank für deine Hilfe. Hatte mir das so tatsächlich auch schon gedacht, allerdings habe ich gedacht es würde doch einen anderen Lösungsweg geben.

Ich hätte noch eine Frage bei einem anderen Aufgabenteil:
Es handelt sich um ein Log-Lin-Modell und wir sollen da die re-transformierte Regressionslinie in die Originaldaten einzeichnen. Leider haben wir da auch absolut keine Idee, wie das geht. Für ein anderes Log-Log-Modell haben wir das hinbekommen, aber hier wissen wir nicht weiter.

Liebe Grüße jenv
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Zwei Werte mithilfe linearer Regression bestimmen

Beitrag von jogo »

Hallo jenv,

Du könntest Dir eine nichtlineare Funktion definieren unter Verwendung der geschätzten Parameter.
Diese kannst Du dann mit curve(...) in das Diagramm einzeichnen.

z.B.

Code: Alles auswählen

a <- 0.5; b <- 0.3

myFunc <- function(x) a*exp(b*x) 

plot(1:10, 1:10)
curve(myFunc, from=1, to=10, add=TRUE, col="red")


Gruß, Jörg
jenv107
Beiträge: 5
Registriert: Sa Dez 28, 2019 8:20 pm

Re: Zwei Werte mithilfe linearer Regression bestimmen

Beitrag von jenv107 »

Hallo jogo,

danke dafür.

Eine letzte kleine Frage hätte ich noch.
Wir haben eine einfache lineare Regression und wollen daraus einfach nur den Slope-Koeffizient speichern.

Mit "slope=regTraining$coefficients[,2]" funktioniert das leider nicht, aber irgendwie ist das doch bestimmt möglich oder?

Liebe Grüße
Jenny
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Zwei Werte mithilfe linearer Regression bestimmen

Beitrag von jogo »

Hallo Jenny,

kannst Du bitte zeigen, wie Du die Regression berechnest?
Es gibt nämlich auch die Funktion coef():

Code: Alles auswählen

reg <- lm(..)
coef(reg)
Gruß, Jörg
jenv107
Beiträge: 5
Registriert: Sa Dez 28, 2019 8:20 pm

Re: Zwei Werte mithilfe linearer Regression bestimmen

Beitrag von jenv107 »

Hallo Jörg,

die Regression berechnen wir wie folgt:

Code: Alles auswählen

regTraining=lm(y_train~X_train)
Wir haben ein Test- und ein Trainingset. Da variieren ja die die Koeffizienten immer. Deswegen können wir dem Slope ja nicht einfach "irgendeinen" Wert zuweisen.
Wir bekommen dann bei der Regression einen Intercept und den Koeffizienten für X_train. Den Koeffizienten für X_train müssen wir für das weitere Vorgehen irgendwie speichern.

Liebe Grüße
Jenny
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Zwei Werte mithilfe linearer Regression bestimmen

Beitrag von jogo »

Code: Alles auswählen

wohin.auch.immer <- coef(regTraining)[2]
Gruß, Jörg
jenv107
Beiträge: 5
Registriert: Sa Dez 28, 2019 8:20 pm

Re: Zwei Werte mithilfe linearer Regression bestimmen

Beitrag von jenv107 »

Super, vielen Dank.

Mein Fehler war, dass mein Code dafür so aussah:

Code: Alles auswählen

slope=coef(regTraining)[,2]
Also hatte ich nur ein Komma zu viel :D

Liebe Grüße
Jenny
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Zwei Werte mithilfe linearer Regression bestimmen

Beitrag von jogo »

:D

genau, die Koeffizienten sind ein Vektor - keine Matrix.
... aber ansonsten schon klasse Coding-Style - richtig R-like.

Gruß, Jörg
Antworten