Singulärer Verlaufsfehler während bootstrapped nls passt zu schlechten Daten

8

Ich habe ein Dataset, das eine unabhängige Variable und eine Menge abhängiger Variablen enthält. Ich würde gerne eine Funktion für jede Gruppe von unabhängigen Variablen mit einer Bootstrapped nichtlinearen Methode der kleinsten Quadrate anpassen. In einigen Fällen sind die unabhängigen Variablen "gute Qualität", d. H. Sie passen zu der Funktion ziemlich gut. In anderen Fällen sind sie laut.

In allen Fällen kann ich nls() verwenden, um eine Schätzung der Parameter zu erhalten. Wenn die Daten jedoch verrauscht sind, löst ein Bootstrap den Fehler Error in nls(...) : singular gradient aus. Ich kann verstehen, warum nls , das zu verrauschten Daten passt, fehlschlagen würde, z. indem ich nicht konvergiere nach zu vielen Iterationen, aber ich verstehe nicht, warum es ein einzelner Gradientenfehler ist, und warum ich nur resample Datensätze von schlechter Qualität bekomme.

Code:

%Vor%

nls ist vollkommen in der Lage, die Daten anzupassen (auch wenn in manchen Fällen, wie a , ich bezweifle, dass das Modell zu den Daten passt.

%Vor%

Bootstrapping funktioniert gut für die Daten guter Qualität:

%Vor%

Aber nicht für die Daten schlechter Qualität

%Vor%

Was verursacht diesen Fehler? Und was soll ich tun, wenn ich plyr verwenden möchte, um gleichzeitig viele Bootstrap-Simulationen durchzuführen?

    
Drew Steen 23.10.2012, 14:35
quelle

1 Antwort

3

Damit können Sie untersuchen, was passiert:

%Vor%

Sie können auch ein selbststartendes Modell verwenden:

%Vor%

Damit werden Fehlermeldungen etwas informativer. Zum Beispiel ist ein Fehler

%Vor%

was bedeutet, dass einige Bootstrap-Proben weniger als drei verschiedene Konzentrationen enthalten. Aber es gibt auch einige andere Fehler:

%Vor%

, die Sie möglicherweise vermeiden können, indem Sie minFactor verringern.

Die folgenden sind böse. Sie könnten verschiedene Anpassungsalgorithmen oder Startwerte mit diesen versuchen:

%Vor%     
Roland 24.10.2012, 09:57
quelle