Проанализируйте пропорции

13

У меня есть набор данных, содержащий несколько пропорций, которые в сумме составляют 1. Меня интересует изменение этих пропорций вдоль градиента (см. Пример данных ниже).

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

введите описание изображения здесь

Дополнительная информация: он не обязательно должен быть линейным, я сделал это только для простоты примера. Также доступны исходные значения, из которых рассчитываются эти пропорции. Реальный набор данных содержит больше переменных, суммирующих до 1 (например, B1, B2 & B3, C1 до C4 и т. Д.), Поэтому подсказка для многомерного решения также будет полезна ... Но сейчас я остановлюсь на одномерном сторона статистики.

Вопрос: Как можно анализировать такие данные? Я прочитал немного вокруг, и, возможно, подходит многочленная модель или GLM? - Если я запускаю 3 (или 2) глянец, как я могу включить ограничение, что прогнозируемые значения в сумме до 1? Я не хочу строить только такие данные, я также хочу провести более глубокую регрессию, такую ​​как анализ. Я предпочтительно хочу использовать R - как я могу сделать это в R?

EDi
источник
Команда proprcsplineв Stata может быть то , что вы ищете (я знаю , что вы хотите использовать R, но , возможно , это может быть отправной точкой): proprcspline вычисляет ограниченный кубический сплайн сглаживать пропорции наблюдений в каждой категории yvar дается xvar, и Графики их как участок с накоплением площади. По желанию, эти сглаженные пропорции могут быть скорректированы для набора контрольных переменных (cvars).
Boscovich
Не могли бы вы уточнить, что означает «заинтересовать»? Вы просто хотите построить пропорции против градиента? Или вы имеете в виду более глубокий анализ? Если да, то какова его природа - что именно вы надеетесь узнать из этих данных? Кроме того, у вас есть оригинальные счета (что было бы хорошо) или только пропорции? Не могли бы вы рассказать немного больше о том, из чего состоят эти данные и как они собираются?
whuber
1
@whuber: я хочу сделать более глубокий анализ с этими данными. Моя гипотеза состоит в том, что пропорции изменятся с градиентом. Подсчет также доступны.
EDi
1
Похоже, у вас есть композиционные данные. Я не знаю много об этом, но работа Aitchison - место, чтобы начаться. Там есть пакет, композиции, на CRAN.
Аарон покинул Stack Overflow

Ответы:

13

В одном измерении это звучит как работа по бета-регрессии (с переменной дисперсией или без нее). Это регрессионная модель с бета-распределенной зависимой переменной, естественно ограниченная 0-1. Пакет R является бетарегом, а документ с описанием его использования находится здесь .
Для более чем двух пропорций обычное расширение бета-распределения приводит к регрессии Дирихле. Доступен пакет R DirichletReg , описанный, например, здесь .

Есть несколько причин не использовать логитные ссылки и многочленную логистическую регрессию для истинных композиционных данных, в основном из-за того, какие сильные предположения они подразумевают для дисперсии. Однако, если ваши данные все на самом деле нормированные отсчеты (содержания?), Эти предположения могут быть правильными и предложение Петра, вероятно , будет путем.

conjugateprior
источник
Спасибо за ссылки, я посмотрю на них. ДирихлетРег выглядит многообещающе! Например, слайд 3 вашей ссылки: «Если« вероятность »ответа в определенной категории относится к различным вариантам, подход Дирихле более информативен». , Потому что я не знал, как это сделать с помощью mlogit, потому что выбор не должен быть уникальным. Также хороший способ графического представления - не думал об этом ...
EDi
Для графики вам могут пригодиться функции splineplot и cdplot . В самом деле, если вы просто хотели использовать подогнанные линии и не нуждались в большом количестве машин регрессии, то вы, вероятно, могли бы уговорить cdplot дать вам соответствующие кривые (это только плотность внизу)
сопряженный
Извините, я хотел напечатать spineplot выше, очевидно.
конъюнктура
Обратите внимание, что пакет DirichletReg теперь доступен в CRAN , и виньетка была опубликована.
Jbaums
4

Я не уверен, что именно вы пытаетесь выяснить, но как насчет полиномиальной логистической регрессии с градиентом в качестве независимой переменной?

В R один из способов сделать это - функция mlogit в библиотеке mlogit. Посмотри эту виньетку

Питер Флом - Восстановить Монику
источник