14 votos

Analizar las proporciones

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 abajo 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()

enter image description here

Información adicional: No tiene que ser necesariamente lineal, lo he hecho sólo 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 una pista para una solución multivariante también sería útil... Pero por ahora me quedaré con el lado univariado de la estadística.

Pregunta: ¿Cómo se puede analizar este tipo de datos? He leído un poco por ahí, y ¿quizás sea adecuado un modelo multinomial o un glm? - Si ejecuto 3 (o 2) glms, ¿cómo puedo incorporar la restricción de que los valores predichos sumen 1? No quiero sólo graficar este tipo de datos, también quiero hacer un análisis más profundo tipo regresión. Preferiblemente quiero usar R - ¿cómo puedo hacer esto en R?

0 votos

El comando proprcspline en Stata podría ser lo que estás buscando (sé que quieres usar R pero tal vez esto podría ser un punto de partida): proprcspline calcula un spline cúbico restringido que suaviza las proporciones de las observaciones en cada categoría de yvar dada xvar, y las grafica como un gráfico de área apilado. Opcionalmente, estas proporciones suavizadas pueden ajustarse para un conjunto de variables de control (cvars).

0 votos

¿Podría explicar con más detalle lo que significa "interesado en"? ¿Simplemente quiere trazar las proporciones contra el gradiente? ¿O tiene en mente un análisis más profundo? Si es así, ¿cuál es su naturaleza? ¿Qué espera aprender exactamente de estos datos? Además, ¿tiene los recuentos originales disponibles (lo que sería bueno) o sólo ¿las proporciones? ¿Podría explicar un poco más en qué consisten estos datos y cómo se recogen?

1 votos

@whuber: Quiero hacer un análisis más profundo con estos datos. Mi hipótesis es que las proporciones cambiarán con el gradiente. Los recuentos también están disponibles.

14voto

James Sutherland Puntos 2033

En una dimensión, esto parece un trabajo para la regresión beta (con o sin dispersión de variables). Se trata de un modelo de regresión con variable dependiente distribuida por beta, naturalmente con restricciones 0-1. Un paquete de R es betareg y un documento que describe su uso es aquí .
Para más de dos proporciones, la extensión habitual de la distribución Beta conduce a la regresión de Dirichlet. Un paquete de R DirichletReg está disponible, descrito por ejemplo aquí .

Hay algunas razones para no utilizar los enlaces logit y la regresión logística multinomial para los datos de composición real, sobre todo por las fuertes suposiciones que implican para la varianza. Sin embargo, si sus datos son todo En realidad, los recuentos normalizados (¿abundancias?), esas suposiciones pueden ser correctas y la sugerencia de Peter sería probablemente el camino a seguir.

0 votos

Gracias por los enlaces, les echaré un vistazo. DirichletReg parece prometedor. Por ejemplo, la diapositiva 3 de tu enlace: "Si la 'probabilidad' de responder en una determinada cateogoría está repartida entre las opciones, un enfoque Dirichlet es más informativo". . Porque no sabía cómo hacer esto con mlogit, ya que las opciones no tienen que ser únicas. También una buena forma de representación gráfica - no he pensado en eso...

0 votos

Para los gráficos puede encontrar las funciones de R splineplot y cdplot útil. De hecho, si sólo quiere las líneas ajustadas y no necesita una gran cantidad de maquinaria de regresión, entonces probablemente podría coaccionar cdplot en darle las curvas pertinentes (sólo es densidad por debajo)

0 votos

Lo siento, quise escribir spineplot arriba, obviamente.

4voto

Zizzencs Puntos 1358

No estoy seguro de lo que quieres averiguar exactamente, pero ¿qué tal una regresión logística multinomial con el gradiente como variable independiente?

En R, una forma de hacerlo es la función mlogit de la biblioteca mlogit. Vea esto viñeta

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X