De nombreux emplois statistiques demandent une expérience avec des données à grande échelle. Quelles sont les compétences statistiques et informatiques nécessaires pour travailler avec de grands ensembles de données? Par exemple, qu’en est-il de la construction de modèles de régression à partir d’un ensemble de données contenant 10 millions d’échantillons?
regression
machine-learning
multivariate-analysis
large-data
bit-question
la source
la source
Réponses:
De bonnes réponses sont déjà apparues. Je partagerai donc simplement quelques réflexions basées sur l'expérience personnelle: adaptez les pertinentes à votre propre situation en fonction des besoins.
Pour le fond et le contextePour que vous puissiez prendre en compte les préjugés personnels qui pourraient s’insérer dans ce message, une grande partie de mon travail a consisté à aider les gens à prendre des décisions importantes en fonction de jeux de données relativement restreints. Elles sont petites parce que les données peuvent être coûteuses à collecter (10 000 dollars pour le premier échantillon d’un puits de surveillance des eaux souterraines, par exemple, ou plusieurs milliers de dollars pour des analyses de produits chimiques inhabituels). Je suis habitué à tirer le maximum de toutes les données disponibles, à les explorer à mort et à inventer de nouvelles méthodes pour les analyser si nécessaire. Cependant, au cours des dernières années, je me suis engagé à travailler sur des bases de données assez volumineuses, telles que des données socio-économiques et techniques couvrant l’ensemble des États-Unis au niveau du bloc de recensement (8,5 millions d’enregistrements,
Avec de très grands ensembles de données, toute l'approche et l'état d'esprit changent . Il y a maintenant trop de données à analyser. Parmi les implications évidentes immédiates (et rétrospectives) (en mettant l’accent sur la modélisation par régression), citons:
Toute analyse que vous envisagez de faire peut prendre beaucoup de temps et de calculs. Vous devrez développer des méthodes de sous - échantillonnage et de travail sur des ensembles de données partiels afin de pouvoir planifier votre flux de travail lors du calcul avec l'ensemble de données. (Le sous-échantillonnage peut être compliqué, car vous avez besoin d'un sous-ensemble représentatif de données aussi riche que l'ensemble du jeu de données. Et n'oubliez pas la validation croisée de vos modèles avec les données conservées.)
Pour cette raison, vous passerez plus de temps à documenter ce que vous faites et à tout écrire dans un script (afin que cela puisse être répété).
Comme @dsimcha vient de le noter, de bonnes compétences en programmation sont utiles. En fait, vous n'avez pas besoin de beaucoup d'expérience dans les environnements de programmation, mais vous avez besoin de volonté de programmer, de savoir reconnaître quand la programmation vous aidera (à chaque étape, vraiment) et de bien comprendre les éléments de base de l'informatique, telle que la conception de structures de données appropriées et l'analyse de la complexité de calcul d'algorithmes. C'est utile pour savoir à l'avance si le code que vous prévoyez d'écrire sera mis à l'échelle pour l'intégralité du jeu de données.
Certains jeux de données sont volumineux car ils comportent de nombreuses variables (des milliers ou des dizaines de milliers, toutes différentes). Attendez-vous à passer beaucoup de temps à résumer et à comprendre les données . Un dictionnaire ou un dictionnaire de données , ainsi que d’autres formes de métadonnées , deviennent essentiels.
Une grande partie de votre temps est consacrée au simple déplacement des données et à leur reformatage. Vous avez besoin de compétences pour traiter de grandes bases de données et de résumer et de représenter graphiquement de grandes quantités de données. ( Le petit multiple de Tufte apparaît ici.)
Certains de vos outils logiciels préférés échoueront. Oubliez les feuilles de calcul, par exemple. Beaucoup de logiciels open source et académiques ne seront tout simplement pas en mesure de gérer de grands ensembles de données: le traitement durera une éternité ou le logiciel plantera. Attendez-vous à cela et assurez-vous de disposer de plusieurs façons d'accomplir vos tâches principales.
Presque tous les tests statistiques que vous exécuterez seront si puissants qu'il est presque certain d'identifier un effet "significatif". Vous devez vous concentrer davantage sur l’ importance statistique , telle que la taille de l’effet, que sur l’importance.
De même, la sélection du modèle est gênante, car presque toutes les variables et toutes les interactions que vous pourriez envisager auront l’air significatif. Vous devez vous concentrer davantage sur la signification des variables que vous choisissez d'analyser.
Il y aura plus qu'assez d'informations pour identifier les transformations non linéaires appropriées des variables. Savoir comment faire cela.
Vous aurez suffisamment de données pour détecter les relations non linéaires, les changements de tendance, la non-stationnarité, l'hétéroscédasticité , etc.
Vous ne serez jamais fini . Il y a tellement de données que vous pourriez les étudier pour toujours. Il est donc important d’établir vos objectifs analytiques dès le départ et de les garder constamment à l’esprit.
Je terminerai par une courte anecdote qui illustre une différence inattendue entre la modélisation par régression avec un grand ensemble de données et un plus petit. À la fin de ce projet avec les données du recensement, un modèle de régression que j'avais développé devait être implémenté dans le système informatique du client, ce qui impliquait l'écriture de code SQL dans une base de données relationnelle. Il s'agit d'une étape de routine, mais le code généré par les programmeurs de base de données impliquait des milliers de lignes de code SQL. Cela rendait presque impossible de garantir que le logiciel était exempt de bogues - même si nous pouvions détecter les bogues (les résultats des tests étaient différents), les trouver était un autre problème. (Tout ce dont vous avez besoin, c'est d'une erreur typographique dans un coefficient ...) Une partie de la solution consistait à écrire un programme générant les commandes SQL directement à partir des estimations du modèle. . Cela garantissait que ce qui était sorti du paquet de statistiques était exactement ce qui était dans le SGBDR. En prime, quelques heures consacrées à l'écriture de ce script ont éventuellement remplacé plusieurs semaines de codage et de test SQL. Ceci est une petite partie de ce que cela signifie pour le statisticien de pouvoir communiquer ses résultats.
la source
Votre question devrait donner de bonnes réponses. Voici quelques points de départ.
Une capacité à travailler avec les compromis entre la précision et les exigences imposées à la puissance de calcul.
Installation dotée de techniques d’exploration de données pouvant servir d’outil de présélection avant la régression. Par exemple, chaid, charrette ou réseaux de neurones.
Une compréhension profonde de la relation entre la signification statistique et la signification pratique. Un large répertoire de méthodes de sélection variable.
L'instinct de validation croisée.
la source
De bonnes compétences en programmation sont indispensables. Vous devez être capable d’écrire du code efficace capable de traiter d’énormes quantités de données sans s’étouffer, et peut-être de pouvoir paralléliser ledit code pour le faire fonctionner dans un laps de temps raisonnable.
la source
J'ajouterais également que les données à grande échelle introduisent également le problème des "données incorrectes" potentielles. Non seulement les données manquantes, mais aussi les erreurs de données et les définitions incohérentes introduites par chaque élément d'un système ayant jamais touché les données. Donc, en plus des compétences statistiques, vous devez devenir un nettoyeur expert de données, à moins que quelqu'un d'autre ne le fasse pour vous.
-Ralph Winters
la source
la source