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?
la source
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).Réponses:
Dans une dimension, cela ressemble à un travail de régression bêta (avec ou sans dispersion variable). Il s'agit d'un modèle de régression avec variable dépendante bêta-distribuée, naturellement 0-1 contraint. Un package R est betareg et un document décrivant son utilisation est ici .
Pour plus de deux proportions, l'extension habituelle de la distribution bêta conduit à une régression de Dirichlet. Un package R DirichletReg est disponible, décrit par exemple ici .
Il y a quelques raisons de ne pas utiliser les liens logit et la régression logistique multinomiale pour les vraies données de composition, principalement en raison des hypothèses fortes qu'elles impliquent pour la variance. Cependant, si vos données sont toutes des dénombrements normalisés (abondances?), Ces hypothèses peuvent être correctes et la suggestion de Peter serait probablement la voie à suivre.
la source
Je ne sais pas exactement ce que vous essayez de découvrir, mais qu'en est-il d'une régression logistique multinomiale avec gradient comme variable indépendante?
Dans R, une façon de procéder est la fonction mlogit dans la bibliothèque mlogit. Voir cette vignette
la source