Ich versuche, ein quadratisches Plateau-Modell für einige Proportionsdaten auszuführen, bei denen Werte zwischen 0 und 100 gebunden sind. Ich möchte Hilfe bei der Fehlerbehebung bei aufgetretenen Fehlern und bei der korrekten Interpretation der Ergebnisse sowie beim Verständnis der Gleichung und der Vorgehensweise schreibe es richtig aus. Wenn jemand Erfahrung mit diesen Modellen hat, wird jede Hilfe sehr geschätzt, da ich gegen eine Wand gestoßen bin.
Beispieldaten:
Tage Typ Bereich
0 Abrieb 0
11 Abrieb 65.6513749
13 Abrieb 79.1887936
15 Abrieb 88.3947998
26 Abrieb 98.2726653
38 Abrieb 100
0 Abrieb 0
70 Abrieb 93.5047459
124 Abrieb 100
0 Abrieb 0
7 Abrieb 78.2666991
8 Abrieb 78.3624009
9 Abrieb 78.9448106
14 Abrieb 81.6443138
24 Abrieb 97.9969096
29 Abrieb 98.8788699
50 Abrieb 99.4708654
53 Abrieb 100
0 Schnittwunde 0
8 Schnittwunde 8.05965381
22 Schnittwunde 67.1254163
83 Schnittwunde 100
0 Schnittwunde 0
8 Riss 59.1650901
69 Schnittwunde 96.1942307
74 Schnittwunde 100
0 Schnittwunde 0
49 Schnittwunde 82.5396751
133 Schnittwunde 100
0 Schnittwunde 0
125 Schnittwunde 100
0 Schnittwunde 0
16 Schnittwunde 48.5178133
X = Tage Y = Fläche
Ich möchte ein quadratisches Plateau-Modell an diese Daten anpassen.
Code, den ich verwende:
### Finden Sie vernünftige Anfangswerte für Parameter
fit.lm = lm (Fläche ~ Tage, Daten = Heilung)
a.ini = fit.lm $ Koeffizienten [1]
b.ini = fit.lm $ span> -Koeffizienten [2]
clx.ini = Mittelwert (Heilung $ Fläche)
### Definieren Sie die quadratische Plateau-Funktion
Quadplat = Funktion (x, a, b, clx) {
ifelse (x < clx, a + b * x + (-0,5 * b / clx) * x * x,
a + b * clx + (-0,5 * b / clx) * clx * clx)}
### Best-Fit-Parameter finden
model = nls (Fläche ~ Quadplat (Tage, a, b, clx),
Daten = Heilung,
start = list (a = a.ini,
b = b.ini,
clx = clx.ini),
trace = FALSE,
nls.control (maxiter = 1000))
Zusammenfassung (Modell)
Wenn ich dies für einige Daten ausführe, funktioniert es einwandfrei, aber manchmal erhalte ich den folgenden Fehler:
Fehler in nls (Bereich ~ Quadplat (Tage, a, b, clx), Daten = Heilung ,:
singulärer Gradient
Ich bin mir nicht sicher, warum ich dies mit einigen Daten und nicht mit anderen erhalte. Wenn ich beispielsweise die Teilmenge Schnittwunde
ausführe, läuft das Modell einwandfrei. Modellausgabe:
Formel: Fläche ~ vierfach (Tage, a, b, clx)
Parameter:
Schätzung Std. Fehler t Wert Pr (> | t |)
a 1,2304 3,8509 0,320 0,753
b 3,0869 0,5595 5,518 2,54e-05 ***
clx 62.7697 11.0592 5.676 1.80e-05 ***
--- ---.
Signif. Codes: 0 "***" 0,001 "**" 0,01 "*" 0,05 "." 0,1 "" 1
Reststandardfehler: 11,86 bei 19 Freiheitsgraden
Anzahl der Konvergenziterationen: 8
Konvergenztoleranz erreicht: 3.234e-06
Ich interpretiere dies als den kritischen Schwellenwert, bei dem es keine statistische Änderung von Y mit einem Anstieg von X von 62,7697 Tagen gibt. Ist das eine korrekte Interpretation?
Diagramm unten:
Für mich sieht diese Handlung gut aus.
Wenn ich jedoch dieselbe Analyse mit der Teilmenge Abrieb
durchführe, wird der Fehler Singulargradient
angezeigt. Warum könnte dies sein, liegt das daran, dass die Daten nicht gut passen?
Bitte kann mir jemand mit nls-Kenntnissen helfen, indem er genau erklärt, was dieses quadratische Modell tut und warum ich möglicherweise einen Fehler erhalte. Ich möchte diese Analyse nicht "Black Box" und ich denke, mir fehlt das Schlüsselverständnis. Wenn jemand da draußen gut darin ist, Formeln zu interpretieren, können Sie mir außerdem helfen, indem Sie diesen Code in eine lesbare Formel schreiben?
-Funktion (x, a, b, clx) {
ifelse (x < clx, a + b * x + (-0,5 * b / clx) * x * x,
a + b * clx + (-0,5 * b / clx) * clx * clx)}
Alle Informationen zu dieser Frage sind sehr willkommen oder Hinweise auf gute Ressourcen auf nls.Ich brauche hier wirklich Hilfe und kann bei Bedarf meinen vollständigen Datensatz anhängen.