J'ai un jeu de données contenant plusieurs proportions qui s'additionnent à 1. Je suis intéressé par le changement de ces proportions le long d'un gradient (voir ci-dessous pour des exemples de données).
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()
Informations supplémentaires: il ne doit pas nécessairement être linéaire, je l'ai fait juste pour la facilité de l'exemple. Les dénombrements originaux à partir desquels ces proportions sont calculées sont également disponibles. Le jeu de données réel contient plus de variables totalisant jusqu'à 1 (par exemple B1, B2 et B3, C1 à C4, etc.) - donc un indice pour une solution multivariée serait également utile ... Mais pour l'instant, je m'en tiendrai à l'univarié côté des statistiques.
Question: Comment analyser ce type de données? J'ai lu un peu et peut-être qu'un modèle multinomial ou un glm convient? - Si je lance 3 (ou 2) glms, comment puis-je incorporer la contrainte que les valeurs prédites totalisent 1? Je ne veux pas seulement tracer ce type de données, je veux aussi faire une régression plus profonde comme une analyse. Je veux de préférence utiliser R - comment puis-je faire cela dans R?
proprcspline
dans Stata pourrait être ce que vous cherchez (je sais que vous voulez utiliserR
, mais cela pourrait être un point de départ): proprcspline calcule une spline cubique restreinte lisse des proportions d'observations dans chaque catégorie de yvar donnée xvar, et les représente sous forme de graphique de zone empilée. Facultativement, ces proportions lissées peuvent être ajustées pour un ensemble de variables de contrôle (cvars).