Comment modéliser des big data longitudinales?

14

Traditionnellement, nous utilisons un modèle mixte pour modéliser des données longitudinales, c'est-à-dire des données comme:

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

nous pouvons supposer une interception ou une pente aléatoire pour différentes personnes. Cependant, la question que j'essaie de résoudre impliquera d'énormes ensembles de données (des millions de personnes, 1 mois d'observation quotidienne, c'est-à-dire que chaque personne aura 30 observations), actuellement je ne sais pas si des packages peuvent faire ce niveau de données.

J'ai accès à spark / mahout, mais ils n'offrent pas de modèles mixtes, ma question est, est-il de toute façon que je peux modifier mes données afin que je puisse utiliser RandomForest ou SVM pour modéliser cet ensemble de données?

Y a-t-il une technique d'ingénierie de fonctionnalités que je peux utiliser pour aider RF / SVM à prendre en compte l'auto-corrélation?

Merci beaucoup!

Quelques méthodes potentielles mais je ne pouvais pas me permettre de les écrire

Comment puis-je inclure des effets aléatoires dans une forêt aléatoire

Régression SVM avec données longitudinales

user2926523
la source
1
l'ensemble de données n'est pas si grand. 1 million de sujets avec 30 enregistrements, peut-être 20 octets de données par enregistrement apporteront 600 Mo. ce n'est rien. n'importe quel paquet de statistiques gérera cela
Aksakal

Réponses:

4

Si vous n'avez que quelques variables, comme dans l'exemple, vous ne devriez avoir aucun problème avec une variante de lme4.

Là où les techniques d'apprentissage automatique brillent vraiment, c'est lorsque vous avez beaucoup de variables et que vous souhaitez modéliser les non-linéarités et les interactions entre vos variables. Peu d'approches ML ont été développées qui peuvent le faire avec des données longitudinales. Les RNN sont une option, bien qu'ils soient généralement optimisés pour les problèmes de séries chronologiques, plutôt que pour les données de panneau.

En principe, un réseau neuronal à action directe est un modèle linéaire (généralisé), avec des régresseurs qui sont des fonctions non linéaires des données d'entrée. Si les régresseurs dérivés - la couche supérieure du modèle avant la sortie - sont considérés comme la partie non paramétrique, rien ne vous empêche d'ajouter une structure paramétrique avec elle - peut-être sous la forme d'effets aléatoires.

Cependant, cela n'a pas été implémenté pour les problèmes de classification, ce que je suppose que vous faites parce que vous êtes intéressé par SVM en tant que candidat.

utilisateur_générique
la source
2

Répétition de techniques d'apprentissage automatique pour les données longitudinales : la documentation de Sklearn de validation croisée a des itérateurs de validation croisée pour les données groupées! Voir GroupKFold , LeaveOneGroupOut et LeavePGroupsOut .

Si vous êtes intéressé par la prédiction pure, la meilleure option est probablement d'utiliser les réseaux de neurones récurrents . Une autre option est les modèles de Markov cachés .

user0
la source
2

Avez-vous vraiment besoin de forêts aléatoires, de NN, etc. pour vos données longitudinales? lme4est capable de gérer des millions de personnes:

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

Il peut facilement gérer des modèles mixtes linéaires, et comme vous pouvez le voir sur le lien, il prend également en charge les modèles mixtes non linéaires (bien que je ne m'attendrais pas à ce qu'il soit rapide comme l'éclair pour les modèles non linéaires).

DeltaIV
la source