Как моделировать большие продольные данные?


14

Традиционно мы используем смешанную модель для моделирования продольных данных, то есть таких данных, как:

id obs age treatment_lvl yield
1  0   11   M  0.2
1  1   11.5 M  0.5
1  2   12   L  0.6
2  0   17   H  1.2
2  1   18   M  0.9

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

У меня есть доступ к spark / mahout, но они не предлагают смешанные модели, мой вопрос в том, могу ли я как-то изменить свои данные, чтобы я мог использовать RandomForest или SVM для моделирования этого набора данных?

Любая техника разработки функций, которую я могу использовать, чтобы она могла помочь RF / SVM учитывать автокорреляцию?

Большое спасибо!

Некоторые потенциальные методы, но я не мог позволить себе время, чтобы написать их в искру

Как я могу включить случайные эффекты в randomForest

SVM регрессия с продольными данными


1
набор данных не такой большой. 1 миллион субъектов с 30 записями, может быть, 20 байтов данных на запись принесут 600 МБ. Это ничто. любой пакет статистики справится с этим
Аксакал

Ответы:


4

Если у вас есть только несколько переменных, как в примере, то у вас не должно возникнуть проблем с каким-либо вариантом lme4.

Техника машинного обучения действительно полезна, когда у вас много переменных, и вы хотите смоделировать нелинейности и взаимодействия между вашими переменными. Было разработано несколько подходов ОД, которые могут сделать это с помощью продольных данных. RNN являются одним из вариантов, хотя обычно они оптимизированы для проблем временных рядов, а не для панельных данных.

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

Однако это не было реализовано для задач классификации, которые, как я полагаю, вы делаете, потому что вы заинтересованы в SVM в качестве кандидата.


2

Повторение методов машинного обучения для продольных данных : документация sklearn для перекрестной проверки содержит итераторы перекрестной проверки для сгруппированных данных! Смотрите GroupKFold , LeaveOneGroupOut и LeavePGroupsOut .

Если вы заинтересованы в чистом прогнозировании, лучше всего использовать рекуррентные нейронные сети . Другой вариант - скрытые марковские модели .


2

Вам действительно нужны случайные леса, NN и т. Д. Для ваших продольных данных? lme4способен обрабатывать миллионы людей:

https://cran.r-project.org/web/packages/lme4/vignettes/Theory.pdf

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

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