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


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?


Команда proprcsplineв Stata может быть то , что вы ищете (я знаю , что вы хотите использовать R, но , возможно , это может быть отправной точкой): proprcspline вычисляет ограниченный кубический сплайн сглаживать пропорции наблюдений в каждой категории yvar дается xvar, и Графики их как участок с накоплением площади. По желанию, эти сглаженные пропорции могут быть скорректированы для набора контрольных переменных (cvars).
— Boscovich

Не могли бы вы уточнить, что означает «заинтересовать»? Вы просто хотите построить пропорции против градиента? Или вы имеете в виду более глубокий анализ? Если да, то какова его природа - что именно вы надеетесь узнать из этих данных? Кроме того, у вас есть оригинальные счета (что было бы хорошо) или только пропорции? Не могли бы вы рассказать немного больше о том, из чего состоят эти данные и как они собираются?
— whuber

1
@whuber: я хочу сделать более глубокий анализ с этими данными. Моя гипотеза состоит в том, что пропорции изменятся с градиентом. Подсчет также доступны.
— EDi

1
Похоже, у вас есть композиционные данные. Я не знаю много об этом, но работа Aitchison - место, чтобы начаться. Там есть пакет, композиции, на CRAN.
— Аарон покинул Stack Overflow

Ответы:


13

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

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


Спасибо за ссылки, я посмотрю на них. ДирихлетРег выглядит многообещающе! Например, слайд 3 вашей ссылки: «Если« вероятность »ответа в определенной категории относится к различным вариантам, подход Дирихле более информативен». , Потому что я не знал, как это сделать с помощью mlogit, потому что выбор не должен быть уникальным. Также хороший способ графического представления - не думал об этом ...
— EDi

Для графики вам могут пригодиться функции splineplot и cdplot . В самом деле, если вы просто хотели использовать подогнанные линии и не нуждались в большом количестве машин регрессии, то вы, вероятно, могли бы уговорить cdplot дать вам соответствующие кривые (это только плотность внизу)
— сопряженный

Извините, я хотел напечатать spineplot выше, очевидно.
— конъюнктура

Обратите внимание, что пакет DirichletReg теперь доступен в CRAN , и виньетка была опубликована.
— Jbaums

4

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.