Multivariate Attribute Utility and Risk

Thursday and Friday, we organize, with Olivier, Debrah and Christoph a small workshop, at Université de Rennes 1, on Multiattribute Utility and Risk. The workshop will take place place Hoche, at the Economics faculty. Speakers are

It should be a nice informal workshop, organized with the financial support of the Actinfo Chair.

Picking an asset to invest

Yesterday, Andrew Lo spent some time on a nice graph, discussing attitudes towards risk. Here are four assets (thanks  for improving the terminology), real data (no information here about time, but it’s the same scale for the four of them)

The question raised was quite simple

if you could invest in one, and only one, asset which one will you pick ?

Continue reading Picking an asset to invest

Econometrics and Machine Learning

I will be in London, UK, at the Centre for Central Banking Studies, invited as a keynote speaker for a major conference. For my talk, on Econometric Models and Statistical Learning Techniques, the agenda is the follownig

  • introduction on High Dimensional Data and Modeling
  • foundations of econometric models, and probabilistic aspects
  • machine learning techniques, with a discussion on boosting, cross validation
  • classification, from the logistic regression to trees and random forest
  • machine learning tools that can be used in econometrics, such as bootstrap, principal component analysis / partial least squares, and instrumental variables and variable selection

Slides are avaible (as usual, the pdf version is more informative than the one on slideshare where animations are missing)

 

Mathématiques et économie

Dimanche, je vais participer au week-end organisé à Rennes, sur la place des mathématiques dans la société,

J’interviendrais dimanche matin sur la place des maths dans la science économique.  Les slides sont légers. Je reviendrais sur des notions assez générale, sur l’économie, et la science économique. Je parlerais ensuite du concept de prix, dans un environnement incertain. On verra en particulier la valorisation en assurance (méthode actuarielle, reposant sur la mutualisation et la loi des grands nombres) et la valorisation en finance (sous hypothèse d’absence d’arbitrage, de prix de réplication, et de valorisation risque neutre). L’idée est de montrer comment les prix apportent de l’information, en finance (en marché complet, et liquide). Je parlerais aussi un peu d’économétrie, et de la spécificité de la science économique (où on utilise des données, et pas des expériences). Enfin, je conclurais sur le concept de mathiness, introduit par Paul Romer, récemment (que nous avions présenté dans un article avec Béatrice Cherrier, il y a quelques mois).

Trouver le millionième chiffre

Dimanche, avec mon fils, on a tenté de résoudre un petit problème posé par Ian Stewart (qu’est-ce qu’il faut pas inventer pour éviter de voir mon fils sur sa tablette toute la matinée). Le problème est très simple, dans sa formulation : considérons la suite suivante

> paste(1:26,collapse="")
[1] "1234567891011121314151617181920212223242526"

Quel serait le millionième chiffre ? Regardons la réponse,

> L=paste(1:999999,collapse="")
> f=function(n) substr(L,n,n)
> f(1000000)
[1] "1"

J’espérais trouver une logique (genre “c’est toujours un 1“), en vain. Le point de départ était “si on va jusqu’à écrire 99“, combien de chiffres faut-il ? Facile

> 9+90*2
[1] 189

et maintenant “si on va jusqu’à 999” ?

> 9+90*2+900*3
[1] 2889

Etc. On peut utiliser la petite fonction

> g=function(k) sum(9*10^(1:k-1)*(1:k))

Pour le millionième chiffre, quel était la taille du nombre ?

> g(5)
[1] 488889
> g(6)
[1] 5888889

C’était manifestement un nombre à 6 chiffres: quand on aura écrit le dernier nombre à 5 chiffres – 99999 – il y aura eu, en tout, 488889 chiffres. Pour savoir quel chiffre on aura atteint au millionième chiffre, notons que

> (1000000-g(5))%/%6
[1] 85185

autrement dit, on cherche le 85185ème nombre à 6 chiffres, soit

> 100000+(1000000-g(5))%/%6
[1] 185185

Et pour trouver quel chiffre se trouve précisément à la position 1000000, rien de plus simple

> (1000000-g(5))%%6
[1] 1

autrement dit, c’est le premier chiffre du nombre 185185, qui est un 1. C’est le calcul qu’on avait commencé avec mon fils… mais je me demandais s’il n’y avait pas un truc… Si on regarde pour le millième chiffre, ou le dix millième chiffre, ou le cent millième chiffre, il ne semble pas y avoir de logique

> f(1000)
[1] "3"
> f(10000)
[1] "7"
> f(100000)
[1] "2"
> f(1000000)
[1] "1"

Pourtant,  il y a une forte régularité, quand on regarde la répartition des 10 chiffres (de 0 à 9), dans la séquence

> library(RColorBrewer)
> COL= brewer.pal(10, "Set3")
> k=100
> V=rep(NA,k*k)
> plot(0:k,0:k,col="white",xlab="",ylab="")
> for(i in 1:k){
+   for(j in 1:k){
+     n=(i-1)*k+(j-1)
+     x=as.numeric(f(n))
+     rect(i-1,j-1,i,j,col=COL[x],border=NA)
+     V[n]=x
+   }
+ }

Mais rien de probant… Plus étonnant, si on regarde la distribution des chiffres, sur les 100000 premiers,

> Z=Vectorize(function(x) as.numeric(f(x)))(1:1e5)
> table(Z)[1:8]
    0     1     2     3     4     5     6     7 
 8642 19753 11111  8642  8642  8642  8642  8642

Le 1 ressort très majoritairement… le 2 se distingue aussi, mais ensuite, c’est étonnamment constant

> barplot(table(Z))

 

On peut d’ailleurs noter que la différence entre le nombre de 1 et le nombre de 2 est très exactement le nombre de 0, de 3, de 4, de 5, …

> table(Z)[3]-table(Z)[2]
    2 
-8642

 

étonnant, non ?

L’état civil, les données publiques, la psychose de la confidentialité, et tant d’autres choses

Suite à des discussions avec Simon et Marin, les semaines passées, je me suis dit que j’allais prendre le temps de narrer quelques (més)aventures qui me sont arrivées, en partant à la pêche des données. Et oui, ça va parler de données, de données ouvertes (ou fermées), d’administrations, et un peu de recherche publique (en vrac).

Le point de départ est assez simple. Je cherche en France une base proche de celle qui existe aux Etats-Unis, à savoir le Social Security Death Master File, qui donne – pour toutes les personnes disposant d’un numéro de sécurité sociale – la date de naissance et date de décès. Cette base est pratique pour faire de la démographie (quoi qu’incomplète puisqu’on n’a que les personnes décédées). Je cherche aussi une autre information, permettant de faire le lien (pour faire simple) entre l’espérance de vie d’un individu, et de l’information relative à ses parents. Autrement dit, je cherche un fichier liant un individu à ses parents (par numéro de sécurité sociale pour faire simple, mais on peut anonymiser en hashant le numéro). Je veux ainsi une base indiquant l’identifiant d’un individu, celui de son père, et celui de sa mère.

Continue reading L’état civil, les données publiques, la psychose de la confidentialité, et tant d’autres choses

Econometrics: Learning from Statistical Learning Techniques

In two weeks, I will be invited as a keynote speaker in London, to give a talk on what can central bank policymakers learn from other disciplines. Which is an interesting question. Initially, I wanted to give a talk on actuarial science, large risks, and connexion with finance, but I will finally give a talk on connexions between Econometrics and Machine Learning, and how we can – as Econometricans – actually learn a lot from people coming from the Statistical Learning community – in the spirit of Varian (2013). I will upload the slides within the next ten days….

Et si je tweetais en anglais pour une mauvaise raison

Sur Twitter, assez naturellement, j’ai tendance à tweeter en anglais. J’ai toujours eu l’impression qu’en anglais, la limite des 140 caractères était moins contraignante. Qu’en anglais, la même chose pouvait être dite de manière plus concise.

Histoire de vérifier cette vague intuition, je suis allé chercher des livres sur Gutenberg. Le plus simple est de récupérer un livre en français, au format texte (txt), de compter le nombre de symboles, et de trouver le même livre en anglais. La fonction, à partir d’un code de livre, ressemble à ça

> cpte=function(no){
+     url0=paste(
+         "http://www.gutenberg.org/cache/epub/",
+         no,"/pg",no,".txt",sep="")
+     download.file(url0,destfile="u.txt")
+     s=scan("u.txt",what="character")
+     sum(nchar(s))
+ }

Par exemple, pour David Copperfield, de Dickens, le  code pour la version originale, en anglais, est

> gb=766

et en français, il faut récupérer 2 fichiers

> fr_a=17868
> fr_b=17869

Aussi,

> g=cpte(gb)
essai de l'URL 'http://www.gutenberg.org/cache/epub/766/pg766.txt'
Content type 'text/plain; charset=utf-8' length 1992535 bytes (1.9 MB)
=================================================
downloaded 1.9 MB

Read 288181 items
> f=cpte(fr_a)+cpte(fr_b)
essai de l'URL 'http://www.gutenberg.org/cache/epub/17868/pg17868.txt'
Content type 'text/plain; charset=utf-8' length 1161492 bytes (1.1 MB)
=================================================
downloaded 1.1 MB

Read 191311 items
essai de l'URL 'http://www.gutenberg.org/cache/epub/17869/pg17869.txt'
Content type 'text/plain; charset=utf-8' length 1135661 bytes (1.1 MB)
=================================================
downloaded 1.1 MB

Read 186515 items

le ratio du nombre de caractère en anglais, et en français, est de l’ordre de 90%. Autrement dit, la version anglaise contient 10% de caractères en moins que la version française,

> g/f
[1] 0.9090498

Si on regarde une pièce de théâtre, comme Othello, la version anglaise est 25% plus courte que la version française.

> fr=18179
> gb=1793
> g=cpte(gb)
essai de l'URL 'http://www.gutenberg.org/cache/epub/1793/pg1793.txt'
Content type 'text/plain; charset=utf-8' length 188634 bytes (184 KB)
=================================================
downloaded 184 KB

Read 24951 items
> f=cpte(fr)
essai de l'URL 'http://www.gutenberg.org/cache/epub/18179/pg18179.txt'
Content type 'text/plain; charset=utf-8' length 239158 bytes (233 KB)
=================================================
downloaded 233 KB

Read 36157 items
> g/f
[1] 0.746805

Plus généralement pour les pièces de théâtre de Shakespeare, on valide mon intuition : les versions en anglais sont toujours plus courtes que les versions en français,

Pour faire ce graphique, on peut utiliser la trentaine de livres que j’ai regardé, à l’aide du fichier

> download.file(
+ "http://freakonometrics.free.fr/livre.RData",
+ "livre.RData")
essai de l'URL 'http://freakonometrics.free.fr/livre.RData'
Content type 'text/plain' length 1095 bytes
=================================================
downloaded 1095 bytes

> load("livre.RData")

La base ressemble à ça

> base
           nom        FR      UK language   ratio
1  3 Mousquet.    1110255 1156011       FR 104.12
2  Dorian Grey     398653  404799       UK 101.54
3  Pierre-Jean     248299  228838       FR  92.16
4      Odyssée     691648  651044       GR 118.17
5       Iliade     550924  514953       GR  74.45
6  Jules César     157726  105685       UK  67.00
7      Macbeth     160571   96276       UK  59.95
8      Othello     189984  141881       UK  74.68
9       Hamlet     275629  145380       UK  52.74
10   Com. Mép.     115583   97704       UK  84.53
11  Ant.-Cléo.     185806  130857       UK  70.42
12   Rom.-Jul.     195273  126323       UK  64.69
13    Roi Lear     196185  124483       UK  63.45
14  Sganarelle      50408   63387       FR 125.74
15 OliverTwist     778914  770784       UK  98.95
16  D.Copperf.    1808770 1644262       UK  90.90
17    Assomoir     585237  565444       FR  96.61
18   T. Raquin     351525  353837       FR 100.65
19    20000 L.     745559  518932       FR  69.60
20    80 Jours     367388  329073       FR  89.57
21  5 Semaines     491510  483289       FR  98.32
22 CentreTerre     362617  370584       FR 102.19
23          93     585073  637499       FR 108.96
24  Notre Dame     885048  928256       FR 104.88
25   Jane Eyre     922233  919521       UK  99.70
26    Possédés    1241293 1293319       RU 104.19
27 Guerre-Paix    2409360 2739725       RU 113.71
28     Corbeau      27884   21886       UK  78.48
29  Mme Bovary     585237  565444       FR  96.61

Si on visualise tous les titres, et pas seulement les pièces de Shakespeare, on obtient

Autrement dit, la différence n’est pas aussi significative qu’elle y paraissait. Plus troublant, si on regarde les livres écrit en anglais (en rouge ci-dessous) on observe effectivement que la version française est plus longue. Par contre, pour les livres écrits en français (en bleu), la version anglaise est sensiblement de la même taille…

A suivre donc…