Eu tenho um conjunto de dados contendo várias proporções que somam 1. Estou interessado na alteração dessas proporções ao longo de um gradiente (veja abaixo, por exemplo, dados).
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()
Informações adicionais: não precisa ser necessariamente linear, fiz isso apenas para facilitar o exemplo. As contagens originais a partir das quais essas proporções são calculadas também estão disponíveis. O conjunto de dados real contém mais variáveis que somam 1 (por exemplo, B1, B2 e B3, C1 a C4, etc) - portanto, uma dica para uma solução multivariada também seria útil ... Mas, por enquanto, continuarei com a univariada lado das estatísticas.
Pergunta: Como se pode analisar esse tipo de dados? Eu li um pouco, e talvez um modelo multinomial ou um glm seja adequado? - Se eu executar 3 (ou 2) glms, como posso incorporar a restrição de que os valores previstos somam 1? Não quero plotar apenas esse tipo de dados, também quero fazer uma regressão mais profunda, como análise. Eu preferencialmente quero usar R - como posso fazer isso em R?
proprcspline
no Stata pode ser o que você está procurando (eu sei que você deseja usarR
, mas talvez isso possa ser um ponto de partida): proprcspline calcula um spline cúbico restrito, suave com proporções de observações em cada categoria de yvar dado xvar, e os representa como um gráfico de área empilhada. Opcionalmente, essas proporções suavizadas podem ser ajustadas para um conjunto de variáveis de controle (cvars).