Zeige Ergebnis 1 bis 5 von 5
  1. #1
    Community-Forum Benutzerbild von Benrath
    Registriert seit
    Mai 2003
    Beiträge
    15.296
    Likes
    1061

    R Frage NLS.LM package "panel"

    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?
    Geändert von Benrath (22. März 2016 um 17:30 Uhr)
    "Wenn ihr nicht wisst wovon ihr redet, sprecht von einem System."


    "Wenn jeder an sich denkt, ist an alle gedacht !"

    "wollen wollen ist die höchste Form der Unterdrückung"


  2. #2
    Benutzerbild von FORYOUITERRA
    Registriert seit
    Jul 2002
    Beiträge
    2.915
    Likes
    2738
    mir ist nicht ganz klar, was du willst.
    WinterSprinter.de http://wintersprinter.de

  3. #3
    Community-Forum Benutzerbild von Benrath
    Registriert seit
    Mai 2003
    Beiträge
    15.296
    Likes
    1061
    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.
    "Wenn ihr nicht wisst wovon ihr redet, sprecht von einem System."


    "Wenn jeder an sich denkt, ist an alle gedacht !"

    "wollen wollen ist die höchste Form der Unterdrückung"

  4. #4
    Benutzerbild von FORYOUITERRA
    Registriert seit
    Jul 2002
    Beiträge
    2.915
    Likes
    2738
    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?
    WinterSprinter.de http://wintersprinter.de

  5. #5
    Community-Forum Benutzerbild von Benrath
    Registriert seit
    Mai 2003
    Beiträge
    15.296
    Likes
    1061
    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.
    "Wenn ihr nicht wisst wovon ihr redet, sprecht von einem System."


    "Wenn jeder an sich denkt, ist an alle gedacht !"

    "wollen wollen ist die höchste Form der Unterdrückung"

Forumregeln

  • Es ist dir nicht erlaubt, neue Themen zu verfassen.
  • Es ist dir nicht erlaubt, auf Beiträge zu antworten.
  • Es ist dir nicht erlaubt, Anhänge hochzuladen.
  • Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
  •