J'ai un fichier assez volumineux de 100 millions de lignes et 30 colonnes environ, sur lequel j'aimerais exécuter plusieurs régressions. J'ai un code spécialisé pour exécuter les régressions sur l'ensemble du fichier, mais ce que je voudrais faire est de tirer des échantillons aléatoires du fichier et de les exécuter dans R. La stratégie est la suivante: échantillonner au hasard N lignes du fichier sans remplacement exécuter une régression et enregistrer les coefficients d'intérêt répéter ce processus M fois avec différents échantillons pour chaque coefficient calculer les moyennes et les erreurs standard des coefficients sur M exécutions.
Je voudrais interpréter la moyenne calculée sur M exécutions comme une estimation des valeurs des coefficients calculés sur l'ensemble des données, et les erreurs standard des moyennes comme des estimations des erreurs standard des coefficients calculés sur l'ensemble des données.
Les expériences montrent qu'il s'agit d'une stratégie prometteuse, mais je ne suis pas sûr de la théorie sous-jacente. Mes estimateurs sont-ils cohérents, efficaces et non biaisés? S'ils sont cohérents, à quelle vitesse devraient-ils converger? Quels compromis de M et N sont les meilleurs?
J'apprécierais beaucoup que quelqu'un puisse m'indiquer les articles, livres, etc. avec la théorie pertinente.
Cordialement et merci beaucoup,
Joe Rickert
la source
Réponses:
Si vous pouvez supposer que vos lignes de votre matrice de données sont échangeables, votre stratégie de modélisation devrait bien fonctionner. Votre méthode devrait être correcte dans les conditions énoncées par Gaetan Lion auparavant.
La raison pour laquelle votre méthode fonctionnera ( compte tenu de l'hypothèse d'échangeabilité ) est qu'elle doit être considérée comme un cas particulier de bootstrap paramétrique dans lequel vous prenez un nouvel échantillon de N lignes de grand échantillon, ajustez un modèle et stockez les coefficients et répétez cette M fois (dans la terminologie bootstrap traditionnelle, votre M est équivalent à B ) et prenez la moyenne des estimations du coefficient M. Vous pouvez également l'examiner d'un point de vue de test de permutation.
Mais tous ces résultats sont vrais si l' hypothèse d'échangeabilité ( difficile à vérifier ) est vraie . Si l'hypothèse d'échangeabilité ne tient pas, la réponse dans ce cas devient un peu compliquée. Vous devez probablement prendre soin des sous-groupes de vos données qui sont échangeables et effectuer votre processus en fonction de ces sous-groupes. Fondamentalement, la modélisation hiérarchique.
la source
La réponse à votre question initiale est oui, car la théorie classique s'applique dans le cadre de votre plan d'échantillonnage. Vous n'avez pas besoin d'hypothèses sur la matrice de données d'origine. Tout le caractère aléatoire (implicitement derrière les erreurs standard et la cohérence) provient de votre schéma d'échantillonnage de lignes de la matrice de données.N
Considérez l'ensemble de vos données (100 millions de lignes) comme la population. Chaque estimation (en supposant que votre échantillon de taille est un simple échantillon aléatoire des lignes) est une estimation cohérente des coefficients de régression (par exemple, ) calculés à partir de l'ensemble de données entier. De plus, il est approximativement Normal avec une moyenne égale à et une certaine covariance. L'estimation habituelle de la covariance de l'estimation est également cohérente. Si vous répétez ces fois et faites la moyenne de ces estimations, alors l'estimation résultante (par exemple, ) sera également approximativement normale. Vous pouvez traiter ces estimations comme étant presque indépendantes (non corrélées) tant queN β^∗ β^∗ M M β^avg M N et sont petits par rapport à 100M. C'est une hypothèse importante. L'idée étant que l'échantillonnage sans remplacement est à peu près le même que l'échantillonnage avec remplacement lorsque la taille de l'échantillon est petite par rapport à la taille de la population.M
Cela étant dit, je pense que votre problème est vraiment de savoir comment estimer efficacement l'estimation de régression ( ) calculée à partir de l'ensemble de données. Il existe une différence entre (1) la moyenne des estimations basées sur des échantillons de taille et (2) une estimation basée sur un échantillon de taille . Le MSE de (2) sera généralement plus petit que le MSE de (1). Ils ne seraient égaux que si l'estimation était linéaire dans les données, mais ce n'est pas le cas. Je suppose que vous utilisez le moins de carrés. L'estimation des moindres carrés est linéaire dans le vecteur (réponse), mais pas dans la matrice (covariables). Vous êtes d' échantillonnage aléatoire et .β^∗ M N MN Y X Y X
(1) et (2) sont tous deux des schémas simples, mais pas nécessairement efficaces. (Même si cela n'a pas d'importance puisque vous n'avez que 30 variables.) Il existe de meilleures façons. Voici un exemple: http://arxiv.org/abs/0710.1435
la source
Plus l'échantillon N est grand, plus l'erreur standard (t stat supérieure et les valeurs p respectives) associée à tous vos coefficients de régression est petite. Plus M est élevé, plus vous aurez de points de données et plus votre erreur standard de la moyenne des coefficients sur M exécutions sera petite. De tels moyens devraient avoir une erreur standard qui est normalement distribuée selon le théorème de limite centrale. En termes de convergence de ces moyens, je ne suis pas sûr qu'il existe des principes statistiques qui dictent cela. Je soupçonne que si votre échantillonnage aléatoire est bien fait (pas de biais structurel, etc ...) la convergence devrait se produire assez rapidement. C'est quelque chose que vous devrez peut-être observer empiriquement.
Sinon, votre méthode semble bonne, je n'y vois aucun problème.
la source