R Frage NLS.LM package "panel"

Benrath

Community-Forum
Mitglied seit
19.05.2003
Beiträge
19.535
Reaktionen
688
Im bezug zu meiner anderen Frage, habe ich ne nichtlineare Funktion, die ich auf dem Intervall x [0,1] und y [0,1] fitten möchte.

Das klappt auch problemlos, nur würde ich gerne mehrere Beispiele gleichzeitig schätzen, um z.b. einige der Parameter konstant zu setzen und nur einen variabel zu haben, wie bei nem Panel. Jetzt kann ich z.B. nur ein Set von x und y fitten, ich würde aber gerne mehrere Sets gleichzeitig fitten.

Mein Problem ist ich bekomms nicht gut hin, den ursprünglichen Datenvektor als einen vektor zu haben.
Ich hangel mich eigentlich total an der Hilfe des nls.lm beispiels lang

## values over which to simulate data
x <- seq(0,1,length=100)
Hier würde ich gerne unterschiedlich lange Vektoren haben

## model based on a list of parameters
getPred <- function(parS, xx) parS$a * exp(xx * parS$b) + parS$c

und hier gerne verschiedene Funktionen um den Prediction vektor zu bekommen.

Ich hatte gehofft ich könnte das als Matrik machen, geht das?

Wenn ich 2 sets hätte.

hätte ich ja eine Matrix mit 2 Spalten. In der ersten Spalte meine x sequenz und dann 0, und in der zweiten Spalte 0 und dann die nächste x sequenz. Die matrix nehm ich dann mal nem vektor mit der ersten Funktion in der ersten Zeile und der zweiten Funktion in der zweiten Zeile. Kann ich den zweiten Vektor Funktionen stecken?

oder geht da irgendwas mit apply wenn ich die Funktion als f1(par,x) und f2(par,x) definiere und dann jeweils die parameter und x sequenzen über nen applyfunktikon laufen lassen und danach stacke?
 
Zuletzt bearbeitet:

Benrath

Community-Forum
Mitglied seit
19.05.2003
Beiträge
19.535
Reaktionen
688
Ich hab eigentlich ein Problem wie ich am besten ein Paneldataset aufsetze und das in die getpred funktion des nls.lm Beispiels bekomme. Ich habs jetzt hässlich gelöst. Ich hab in jeder Beobachtung z.B. 10 x und y Beobachtung und für jede Beobachtung ein z. also repeate ich das z für jede Beobachtung zehn mal und hab einen Vektor den ich einfach in die getpred funktion einfüge, so dass ich einen der Parameter durch ne Linearkombination der z variablen ersetzen kann.

Hab Paper gefunden, die sonst einfach die Parameter für alle Beobachtung der x und y nehmen und danach z auf den Vektor der Parameter regressieren.
 

FORYOUITERRA

TROLL
Mitglied seit
22.07.2002
Beiträge
4.647
Reaktionen
400
Website
www.frauentag.de
die funktion nls.lm ist ja lediglich irgendein nichtlineare optimierungsalgorithmus, der irgendeine residuenquadratsumme minimiert. innerhalb der nls.lm funktion spezifizierst du dabei die residuen als funktion der parameter nach welchen du miniminierst. wichtig ist dabei wohl nur, dass die residuen ein reellwertiger vektor sind (und dieser vektor von den parametern abhängt).
=> wenn ich dich richtig verstehe, dann ist dein problem einfach, dass deine getpred funktion über (PARAMETER;x,y,z) anstatt wie im beispiel (PARAMETER;x) läuft?
 

Benrath

Community-Forum
Mitglied seit
19.05.2003
Beiträge
19.535
Reaktionen
688
Jo das geht wohl auch und implizit mach ich das schon indem ich den Vektor vorher festlege und dann in die Funktion haue.

Als ich den Thread als erstes aufgemacht hab, hab ich gar nicht gecheckt wie ichs lösen kann, weil ich R noobie bin, aber mit ein paar Stunden damit beschäftien, läufts schon viel besser, wobei ich immer noch noobie bin.
 
Oben