Sélection des variables bayésiennes - ça marche vraiment?

14

Je pensais que je pourrais jouer avec une sélection de variables bayésiennes, à la suite d'un bel article de blog et des articles liés. J'ai écrit un programme dans rjags (où je suis plutôt une recrue) et récupéré des données de prix pour Exxon Mobil, ainsi que certaines choses qui sont peu susceptibles d'expliquer ses rendements (par exemple les prix du palladium) et d'autres choses qui devraient être fortement corrélées (comme le SP500 ).

En cours d'exécution lm(), nous constatons qu'il existe des preuves solides d'un modèle sur-paramétré, mais que le palladium doit certainement être exclu:

Call:
lm(formula = Exxon ~ 0 + SP + Palladium + Russell + OilETF + 
    EnergyStks, data = chkr)

Residuals:
       Min         1Q     Median         3Q        Max 
-1.663e-03 -4.419e-04  3.099e-05  3.991e-04  1.677e-03 

Coefficients:
           Estimate Std. Error t value Pr(>|t|)    
SP          0.51913    0.19772   2.626 0.010588 *  
Palladium   0.01620    0.03744   0.433 0.666469    
Russell    -0.34577    0.09946  -3.476 0.000871 ***
OilETF     -0.17327    0.08285  -2.091 0.040082 *  
EnergyStks  0.79219    0.11418   6.938 1.53e-09 ***

Après la conversion en retours, j'ai essayé d'exécuter un modèle simple comme celui-ci

  model {
    for (i in 1:n) {
      mean[i]<-inprod(X[i,],beta)
      y[i]~dnorm(mean[i],tau)
    }
    for (j in 1:p) {
      indicator[j]~dbern(probindicator)
      betaifincluded[j]~dnorm(0,taubeta)
      beta[j] <- indicator[j]*betaifincluded[j]
    }
    tau~dgamma(1,0.01)
    taubeta~dgamma(1,0.01)
    probindicator~dbeta(2,8)
  }

mais j'ai trouvé que, peu importe les paramètres des distributions gamma choisies, j'ai obtenu des réponses assez absurdes, comme une probabilité d'inclusion de 20% invariante pour chaque variable.

J'ai également obtenu de minuscules, minuscules coefficients de régression, que je suis prêt à tolérer car il s'agit d'un modèle de sélection, mais cela semblait toujours bizarre.

                              Mean        SD  Naive SE Time-series SE
SP         beta[1]       -4.484e-03   0.10999  0.003478       0.007273
Palladium  beta[2]        1.422e-02   0.16646  0.005264       0.011106
Russell    beta[3]       -2.406e-03   0.08440  0.002669       0.003236
OilETF     beta[4]       -4.539e-03   0.14706  0.004651       0.005430
EnergyStks beta[5]       -1.106e-03   0.07907  0.002500       0.002647
SP         indicator[1]   1.980e-01   0.39869  0.012608       0.014786
Palladium  indicator[2]   1.960e-01   0.39717  0.012560       0.014550
Russell    indicator[3]   1.830e-01   0.38686  0.012234       0.013398
OilETF     indicator[4]   1.930e-01   0.39485  0.012486       0.013229
EnergyStks indicator[5]   2.070e-01   0.40536  0.012819       0.014505
           probindicator  1.952e-01   0.11981  0.003789       0.005625
           tau            3.845e+03 632.18562 19.991465      19.991465
           taubeta        1.119e+02 107.34143  3.394434       7.926577

La sélection des variables bayésiennes est-elle vraiment si mauvaise / sensible? Ou est-ce que je fais une erreur flagrante?

Brian B
la source
5
Pardonnez mon ignorance; mais quelles étaient les preuves de surapprentissage auxquelles vous faites référence?
curious_cat
Vous devez expliquer quelles variables sont lesquelles dans la deuxième sortie. J'ai utilisé la sélection de variables bayésiennes sur une variété de problèmes et dans un certain nombre de situations (y compris la régression), cela fonctionne généralement assez bien. Mais vos résultats - en particulier les estimations - me semblent étranges.
Glen_b -Reinstate Monica
@curious_cat La preuve d'un sur-ajustement est, par exemple, dans le coefficient négatif entre Exxon (une compagnie pétrolière) et le prix du pétrole. Cela vient du fait que j'ai délibérément fait de ce modèle une victime de la multicolinéarité . (Peut-être que «sur-ajustement» n'est pas le bon mot pour le décrire - je suppose que le sur-paramétrage est plus précis).
Brian B
@BrianB Ce coefficient devient-il positif si vous supprimez toutes les variables explicatives à l'exception du pétrole? Juste curieux.
curious_cat
@curious_cat Oui, certainement (environ 0,7). Il s'agit d'un cas classique de multicolinéarité (un autre mot moche).
Brian B

Réponses:

3

Dans le code BUGS, mean[i]<-inprod(X[i,],beta)devrait être mean[i]<-inprod(X[i,],beta[]).

Vos priors sur tau et taubeta sont trop informatifs.

Vous avez besoin d'un préalable non informatif sur bêta inclus, utilisez par exemple un gamma(0.1,0.1)sur taubeta. Cela peut expliquer pourquoi vous obtenez de minuscules coefficients de régression.

Crispin
la source
Merci de l'avoir noté. Malheureusement, cela n'a pas amélioré la situation.
Brian B
2

Cela fonctionne, mais vous avez donné à tous les indicateurs d'inclusion variables la même distribution sous-jacente.

  model {
    for (i in 1:n) {
      mean[i]<-inprod(X[i,],beta)
      y[i]~dnorm(mean[i],tau)
    }
    for (j in 1:p) {
      indicator[j]~dbern(probindicator[j])
      probindicator[j]~dbeta(2,8)
      betaifincluded[j]~dnorm(0,taubeta)
      beta[j] <- indicator[j]*betaifincluded[j]
    }
    tau~dgamma(1,0.01)
    taubeta~dgamma(1,0.01)

  }

pourrait mieux fonctionner avec un nombre limité de variables.

Erik
la source
Essayer cette recette n'a pas fonctionné mieux, au moins à 10000 échantillons.
Brian B
2

Si vous avez utilisé des retours de journal, vous avez fait une erreur légèrement biaisée, mais si vous avez utilisé la valeur future divisée par la valeur actuelle, votre probabilité est fausse. En fait, votre probabilité est fausse dans les deux cas. C'est assez mal pour avoir de l'importance.

Considérez qu'une statistique est n'importe quelle fonction des données. Les retours ne sont pas des données, ce sont des transformations de données. Ils sont une valeur future divisée par une valeur actuelle. Les prix sont des données. Les prix doivent avoir une fonction de distribution, mais la fonction de distribution des retours doit dépendre uniquement de la nature des prix.

ptpt+1

pt+1pt-1.

1πσσ2+(y-β1X1-β2X2-βnXn-α)2.

OLS force un meilleur ajustement aux données observées même si ce n'est pas la bonne solution. Les méthodes bayésiennes tentent de trouver la fonction de génération de données par la vraisemblance. Vous aviez vraisemblablement tort, alors il n'a pas pu le trouver.

J'ai un document à ce sujet si vous avez besoin d'informations supplémentaires.

EDIT Je pense que vous avez mal compris. Si vous convertissiez la probabilité en fonction de densité et preniez l'espérance, vous constateriez qu'elle n'en a aucune. D'après la preuve d'Augustin Cauchy en 1852 ou peut-être 1851, toute forme de solution des moindres carrés est parfaitement imprécise. Cela échouera toujours. Ce n'est pas que vous devez utiliser la régression standard parce que le bayésien est sensible à la probabilité, c'est que Bayes est la seule solution disponible qui est admissible, avec quelques exceptions spéciales pour certains cas spéciaux inhabituels.

En faisant les tests empiriques à ce sujet, et avant d'avoir suffisamment lu les mathématiques, j'ai naïvement pensé que la solution bayésienne et fréquenciste devait correspondre. Il existe, approximativement, un théorème qui dit que lorsque l'échantillon devient suffisamment grand, les deux convergent. J'ai utilisé tous les échanges de fin de journée dans l'univers CRSP de 1925 à 2013 pour le tester. Ce n'est pas ce que dit le théorème. J'avais mal compris les règles.

J'ai également essayé le problème dans les journaux et il ne correspond toujours pas. J'ai donc réalisé quelque chose, toutes les distributions sont des formes, et j'ai donc construit une solution géométrique pour déterminer quelle solution était correcte. Je l'ai traité comme un problème de géométrie pure pour déterminer quelle réponse algébrique correspondait aux données.

Le Bayésien correspondait. Cela m'a conduit sur une voie très mathématique parce que je ne pouvais pas comprendre pourquoi l'estimateur sans biais était si faux. Pour mémoire, en utilisant des rendements désagrégés sur la période 1925-2013 et en supprimant les sociétés fictives, les fonds fermés, etc., l'écart entre le centre de localisation est de 2% et la mesure du risque est sous-estimée de 4% pour les rendements annuels. . Cet écart tient sous la transformation de journal, mais pour une raison différente. Il peut être différent pour des indices individuels ou des sous-ensembles de données.

La raison de cet écart est double. La première est que les distributions impliquées manquent de statistiques suffisantes. Pour certains types de problèmes, cela n'a pas d'importance. Cependant, à des fins projectives, telles que la prédiction ou l'allocation, elles importent beaucoup. La deuxième raison est que l'estimateur sans biais est toujours une version de la moyenne, mais la distribution n'a pas de moyenne.

La densité ci-dessus n'est pas un membre de la famille exponentielle comme la distribution normale ou gamma. D'après le théorème de Pitman – Koopman – Darmois, aucune statistique ponctuelle suffisante n'existe pour les paramètres. Cela implique que toute tentative de création d'un estimateur ponctuel doit jeter des informations. Ce n'est pas un problème pour les solutions bayésiennes car le postérieur est une densité entière et si vous aviez besoin d'une estimation ponctuelle, vous pourriez trouver la densité prédictive et minimiser une fonction de coût par-dessus pour la réduire à un seul point. La vraisemblance bayésienne est toujours minimale.

L'estimateur sans biais de variance minimale pour la fonction ci-dessus consiste à conserver les 24,6% centraux des données, à trouver sa moyenne ajustée et à éliminer le reste des données. Cela signifie que plus de 75% des données sont supprimées et que les informations sont perdues. Juste une note, il pourrait être de 24,8%, car je travaille de mémoire. Vous pouvez trouver l'article de Rothenberg sur:

Rothenberg, TJ et FM Fisher, et CB Tilanus, A Note on Estimation from a Cauchy Sample, Journal of the American Statistical Association, 1964, vol 59 (306), pp. 460-463

Le deuxième problème m'a surpris. Jusqu'à ce que je travaille sur la géométrie, je ne savais pas quelle était la cause. Les rendements sont liés en bas à -100%. Cela déplace la médiane de 2% et l'intervalle interquartile est décalé de 4% bien que la demi-masse soit toujours aux mêmes points. La demi-masse est la bonne mesure de l'échelle, mais pas la demi-largeur. S'il n'y avait pas de troncature, alors la demi-largeur et la demi-masse seraient aux mêmes points. De même, la médiane et le mode resteraient au même point. La médiane est le rendement pour l'acteur moyen ou du moins le commerce moyen. En tant que tel, il s'agit toujours de l'emplacement de la MVUE et de la moyenne du journal.

La bonne compréhension du théorème est que tous les estimateurs bayésiens sont des estimateurs admissibles. Les estimateurs fréquentistes sont des estimateurs admissibles si l'une des deux conditions est remplie. La première est que dans chaque échantillon, le Frequentist et la solution bayésienne sont identiques. La seconde est que si la solution limite de la méthode bayésienne correspond à la solution Frequentist, alors la solution Frequentist est admissible.

Tous les estimateurs admissibles convergent vers la même solution une fois que la taille de l'échantillon est suffisamment grande. L'estimateur Frequentist suppose que son modèle est le vrai modèle et que les données sont aléatoires. Le bayésien suppose que les données sont vraies, mais le modèle est aléatoire. Si vous disposiez d'une quantité infinie de données, le modèle subjectif doit converger vers la réalité. Si vous aviez une quantité infinie de données, mais le mauvais modèle, alors le modèle Frequentist convergera vers la réalité avec une probabilité nulle.

Dans ce cas, la solution bayésienne, sous des a priori raisonnables, dominera toujours stochastiquement tout estimateur fréquenciste en raison de la troncature et de la perte d'informations pour créer l'estimateur.

Dans les journaux, la fonction de vraisemblance est la distribution sécante hyperbolique. Il a une variance finie, mais pas de covariance. La matrice de covariance trouvée en utilisant OLS est un artefact des données et ne pointe pas vers un paramètre qui existe dans les données sous-jacentes. Comme pour la forme brute, rien dans la forme logarithmique ne se cache, mais rien n'est indépendant non plus. Au lieu de cela, il existe une relation beaucoup plus complexe qui viole la définition de la covariance, mais dans laquelle ils peuvent aboutir.

Markowitz et Usman l'ont presque trouvé dans leurs travaux sur les distributions, mais la distribution sécante hyperbolique n'est pas dans une famille Pearson et ils ont mal interprété les données en ne remarquant pas que lorsque vous modifiez une distribution à partir de données brutes pour enregistrer des données, vous modifiez également ses propriétés statistiques . Ils ont essentiellement découvert cela mais l'ont manqué parce qu'ils n'avaient aucune raison de le rechercher et qu'ils ne réalisaient pas les conséquences inattendues de l'utilisation des journaux.

Je n'ai pas le Markowitz et Usman citer avec moi où j'en suis, mais ils ont fait l'un des rares très bons travaux pour estimer la distribution qui existe.

En tout cas, je n'utilise pas JAGS. Je ne sais pas comment faire. Je code tout mon travail MCMC à la main.

J'ai un article qui est beaucoup plus complet et précis sur ce sujet à:

Harris, DE (2017) La distribution des retours. Journal of Mathematical Finance, 7, 769-804.

Il vous fournira une méthode pour construire des distributions pour toute classe d'actif ou de passif, ainsi que des ratios comptables.

J'étais verbeux, mais je pouvais voir que vous compreniez mal la relation entre Bayes et les méthodes Pearson-Neyman. Vous les avez renversés. Bayes fonctionne toujours, mais vous êtes pris au piège avec une densité antérieure qui perturbera votre solution. Avec un bon a priori, vous avez la garantie d'un estimateur biaisé et pour ce type de fonction de vraisemblance, je crois que vous devez utiliser un bon avant pour garantir l'intégrabilité à l'unité. Les méthodes fréquentistes sont rapides et fonctionnent généralement. Ils ne sont pas biaisés, mais peuvent ne pas être valides.

Dave Harris
la source
La différence entre les logarithmes et les rendements des prix au niveau quotidien est d'environ 1 partie sur 500 (j'ai pris comme référence un rendement de 50 points de base). Il convient également de noter que les rendements quotidiens, mesurés de toute façon, sont assez loin d'être normalement distribués (indépendamment des théories économiques contraires). Dans tous les cas, si l'algorithme est sensible à ces problèmes, il est inutile à des fins pratiques. J'aimerais savoir comment la fonction de vraisemblance que vous citez correspond au code JAGS - pouvez-vous élaborer?
Brian B
@BrianB J'ai édité la réponse. Vous faites une erreur de penser que j'ai fait. Il m'a fallu une éternité pour comprendre pourquoi j'avais tort.
Dave Harris