Tengo un conjunto de datos que contiene múltiples proporciones que suman 1. Estoy interesado en el cambio de estas proporciones a lo largo de un gradiente (ver a continuación los datos de ejemplo).
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()
Información adicional: No es necesario que sea necesariamente lineal, lo hice solo para facilitar el ejemplo. Los recuentos originales a partir de los cuales se calculan estas proporciones también están disponibles. El conjunto de datos real contiene más variables que suman 1 (por ejemplo, B1, B2 y B3, C1 a C4, etc.), por lo que también sería útil una sugerencia para una solución multivariante ... Pero por ahora me quedaré con el univariante lado de las estadísticas.
Pregunta: ¿Cómo se puede analizar este tipo de datos? ¿He leído un poco, y quizás un modelo multinomial o un glm es adecuado? - Si ejecuto 3 (o 2) glms, ¿cómo puedo incorporar la restricción de que los valores pronosticados suman 1? No solo quiero trazar ese tipo de datos, también quiero hacer una regresión más profunda como el análisis. Preferiblemente quiero usar R, ¿cómo puedo hacer esto en R?
proprcspline
en Stata podría ser lo que estás buscando (sé que quieres usarR
, pero tal vez esto podría ser un punto de partida): proprcspline calcula una spline cúbica restringida de proporciones de observaciones en cada categoría de yvar dado xvar, y los grafica como un diagrama de área apilada. Opcionalmente, estas proporciones suavizadas se pueden ajustar para un conjunto de variables de control (cvars).