Einfache Frage: Wie spezifiziere ich eine logarithmische Normalverteilung im Argument der GLM-Familie in R? Ich konnte nicht finden, wie dies erreicht werden kann. Warum ist lognormal (oder exponentiell) keine Option im Familienargument?
Irgendwo in den R-Archiven habe ich gelesen, dass man einfach den Log-Link für die Familie verwenden muss, die im GLM auf Gauß gesetzt ist, um einen Lognormalen anzugeben. Dies ist jedoch Unsinn, da dies zu einer nichtlinearen Regression passt und R nach Startwerten fragt.
Ist jemandem bekannt, wie eine logarithmische (oder exponentielle) Verteilung für einen GLM festgelegt wird?
Antworten:
Mit dem gamlss- Paket können Sie verallgemeinerte additive Modelle mit logarithmischen und exponentiellen Verteilungen sowie einer Reihe anderer Modelle mit verschiedenen Verknüpfungsfunktionen anpassen und auf Wunsch semi- oder nichtparametrische Modelle verwenden, die auf Splines mit Bestrafung basieren. Es wurden einige Artikel über die verwendeten Algorithmen und die Dokumentation sowie Beispiele veröffentlicht, die mit der Site verknüpft sind, auf die ich verlinkt habe.
quelle
Zur Anpassung des Exponentialmodells mit
glm
: Bei Verwendung derglm
Funktion mit family = Gamma müssen auch die Hilfsfunktionen von verwendetsummary.glm
werden, um den Dispersionsparameter auf 1 zu fixieren:Und wie ich schon erwähnen wollte, aber Jbowman hat mich geschlagen, sorgt das "gamlss" -Paket für eine log-normale Anpassung:
quelle
glm
, sondern mit Mathematik. Wenn Sie Parameterschätzungen haben, ist die Konstruktion von Residuen in R trivial. Stellen Sie diese Frage in SO mit einem [r] -Tag und Ihnen wird sicherlich eine schnelle Antwort bekommen.Lognormal ist keine Option, da die Lognormal-Verteilung nicht zur Familie der Exponentialverteilungen gehört . Verallgemeinerte lineare Modelle können nur Verteilungen aus der Exponentialfamilie anpassen.
Ich bin weniger klar , warum exponentielle ist keine Option, da die exponentielle Verteilung ist in der exponentiellen Familie (wie Sie vielleicht hoffen). Andere statistische Software, mit der ich vertraut bin, ermöglicht die Anpassung der Exponentialverteilung als GLM, indem sie als Sonderfall der Gammaverteilung behandelt wird, bei der der Formparameter (Skalierung oder Streuung) auf 1 festgelegt und nicht geschätzt wird. Ich kann jedoch keine Möglichkeit finden, diesen Parameter mit der
glm()
Funktion von R zu korrigieren. Eine Alternative wäre, diesurvreg()
Funktion aus demsurvival
Paket mit zu verwendendist="exponential"
.quelle
Das Anpassen eines log-normalen GLM hat nichts mit der Verteilung oder der Verknüpfungsoption der
glm()
Funktion zu tun . Der Begriff "log-normal" ist in diesem Sinne ziemlich verwirrend, bedeutet jedoch, dass die Antwortvariable normalverteilt ist (family = gaussian) und auf diese Variable wie folgt eine Transformation angewendet wird:Wenn Sie diesen logarithmischen Normalwert jedoch mit anderen Werten vergleichen, die eine andere Verteilung verwenden (z. B. Gamma), sollte die AIC () - Funktion korrigiert werden. Wüsste jemand in diesem Fall eine Alternative zu dieser fehlerhaften AIC ()?
quelle
Versuchen Sie es mit dem folgenden Befehl:
Es funktioniert hier und der AIC scheint korrekt zu sein.
quelle