Ich habe einen Datensatz mit mehreren Anteilen, die sich zu 1 addieren. Ich bin an der Änderung dieser Anteile entlang eines Verlaufs interessiert (siehe unten für Beispieldaten).
gradient <- 1:99
A1 <- gradient * 0.005
A2 <- gradient * 0.004
A3 <- 1 - (A1 + A2)
df <- data.frame(gradient = gradient,
A1 = A1,
A2 = A2,
A3 = A3)
require(ggplot2)
require(reshape2)
dfm <- melt(df, id = "gradient")
ggplot(dfm, aes(x = gradient, y = value, fill = variable)) +
geom_area()
Zusätzliche Informationen: Es muss nicht unbedingt linear sein, ich habe dies nur zur Vereinfachung des Beispiels getan. Die ursprünglichen Zählungen, aus denen diese Anteile berechnet werden, sind ebenfalls verfügbar. Der reale Datensatz enthält mehr Variablen, die sich zu 1 addieren (z. B. B1, B2 und B3, C1 bis C4 usw.) - daher wäre auch ein Hinweis für eine multivariate Lösung hilfreich ... Aber im Moment bleibe ich bei der univariaten Seite der Statistik.
Frage: Wie kann man solche Daten analysieren? Ich habe ein bisschen rumgelesen und vielleicht ist ein multinomiales Modell oder ein glm geeignet? - Wenn ich 3 (oder 2) glms ausführe, wie kann ich die Einschränkung berücksichtigen, dass die vorhergesagten Werte 1 ergeben? Ich möchte nicht nur solche Daten zeichnen, sondern auch eine tiefere Regressionsanalyse durchführen. Ich möchte vorzugsweise R verwenden - wie kann ich dies in R tun?
quelle
proprcspline
in Stata könnte das sein, wonach Sie suchen (ich weiß, dass Sie ihn verwenden möchtenR
, aber vielleicht könnte dies ein Ausgangspunkt sein): proprcspline berechnet einen eingeschränkten kubischen Spline aus den Proportionen der Beobachtungen in jeder Kategorie von yvar mit xvar und Zeichnet sie als gestapeltes Flächendiagramm. Optional können diese geglätteten Anteile für eine Reihe von Steuervariablen (cvars) angepasst werden.Antworten:
In einer Dimension klingt dies wie ein Job für die Beta-Regression (mit oder ohne variable Streuung). Dies ist ein Regressionsmodell mit einer Beta-verteilten abhängigen Variablen, die natürlich auf 0-1 beschränkt ist. Ein R-Paket ist Betareg und eine Beschreibung seiner Verwendung finden Sie hier .
Bei mehr als zwei Anteilen führt die übliche Erweiterung der Beta-Verteilung zur Dirichlet-Regression. Ein R-Paket DirichletReg zur Verfügung, das zB hier beschrieben ist .
Es gibt einige Gründe, Logit-Links und multinomiale logistische Regression für echte Zusammensetzungsdaten nicht zu verwenden. Dies hängt hauptsächlich mit den starken Annahmen zusammen, die sie für die Varianz implizieren. Handelt es sich bei Ihren Daten jedoch nur um normalisierte Zählungen (Häufigkeiten?) , Sind diese Annahmen möglicherweise richtig und der Vorschlag von Peter wäre wahrscheinlich der richtige Weg.
quelle
Ich bin nicht sicher, was genau Sie herausfinden wollen, aber wie steht es mit einer multinomialen logistischen Regression mit Gradient als unabhängiger Variable?
In R ist eine Möglichkeit, dies zu tun, die mlogit-Funktion in der mlogit-Bibliothek. Siehe diese Vignette
quelle