‘Mathiness’ et Assurance

Au printemps dernier, l’économiste Paul Romer avait initié une discussion passionnante autour de la notion de “mathiness” (“mathitude” pourrait être la traduction la plus simple pour reprendre l’expression de Lavigne (2015)), posant la question de la place du formalisme mathématique en économie. Ou plus précisément, des liens entre les théorèmes mathématiques et la réalité économique. Et la principale critique faite par Paul Romer est que les mathématiques sont trop souvent utilisées pour obscurcir, plutôt qu’éclairer un débat. Cette discussion n’est pas nouvelle, mais il est intéressant de voir qu’elle survient à un moment où les assureurs s’interrogent, eux aussi, sur les modèles actuariels.

Science économique, et économie

Le point de départ de la discussion de Romer (2015) est qu’il est surprenant qu’en plus de 20 ans, la théorie de la croissance n’ait toujours pas abouti à un consensus. Son explication repose sur le concept de mathiness. Pour reprendre l’expression de Tim Harford, “economics has a reputation for producing rigourous nonsense“. Dans les années 40, Paul Samuelson avait initié un mouvement visant à clarifier les arguments des économistes, en cherchant des fondements plus « scientifiques ». La route de l’enfer serait-elle pavée de bonnes intentions ?

Continue reading ‘Mathiness’ et Assurance

Données TP ANOVA

Demain, en cours de statistique mathématique, on verra l’Analyse de la Variance, à un et deux facteurs. Les données que nous utiliserons sont des durées d’appels de téléphone cellulaire,

> download.file(
"http://freakonometrics.free.fr/celulaire.Rdata","cellulaire")
> load("cellulaire")
> head(cellulaire)
  Jour Duree  EntSor
1  LUN    30 Sortant
2  LUN    47 Entrant
3  LUN     6 Entrant
4  LUN     6 Sortant
5  LUN    17 Sortant
6  LUN   116 Entrant
> tail(cellulaire)
   Jour Duree  EntSor
60  SAM    46 Sortant
61  DIM     4 Sortant
62  DIM    44 Sortant
63  DIM    10 Sortant
64  DIM    63 Sortant
65  DIM   193 Entrant

Profile Likelihood

Consider some simulated data

> set.seed(1)
> x=exp(rnorm(100))

Assume that those data are observed i.id. random variables with distribution, with . The natural idea is to consider the maximum likelihood estimator

For instance, consider some maximum likelihood estimator,

> library(MASS)
> (F=fitdistr(x,"gamma"))
     shape       rate   
  1.4214497   0.8619969 
 (0.1822570) (0.1320717)
> F$estimate[1]+c(-1,1)*1.96*F$sd[1]
[1] 1.064226 1.778673

Here, we have an approximated (since the maximum likelihood has an asymptotic Gaussian distribution) confidence interval for . We can use numerical optimization routine to get the maximum of the log-likelihood function

> log_lik=function(theta){
+   a=theta[1]
+   b=theta[2]
+   logL=sum(log(dgamma(x,a,b)))
+   return(-logL)
+ }

> optim(c(1,1),log_lik)
$par
[1] 1.4214116 0.8620311
 
$value
[1] 146.5909

And we have the same value.

Now, what if we care only about , and not . The we can use profile likelihood. The idea is to solve

i.e.

or, equivalently,

> prof_log_lik=function(a){
+   b=(optim(1,function(z) -sum(log(dgamma(x,a,z)))))$par
+   return(-sum(log(dgamma(x,a,b))))
+ }

> vx=seq(.5,3,length=101)
> vl=-Vectorize(prof_log_lik)(vx)
> plot(vx,vl,type="l")
> optim(1,prof_log_lik)
$par
[1] 1.421094
 
$value
[1] 146.5909

A few weeks ago, we have mentioned the likelihood ratio test, i.e.

The analogous can be obtained here, since

(the 1 comes from the fact that  is a one-dimensional coefficient). The (technical) proof can be found in Suhasini Subba Rao’s notes (see also Section 4.5.2 in Antony Davison’s Statistical Models). From that property, we can easily obtain a confidence interval for 

Hence, from our sample, we get the following 95% confidence interval,

> abline(v=optim(1,prof_log_lik)$par,lty=2)
> abline(h=-optim(1,prof_log_lik)$value)
> abline(h=-optim(1,prof_log_lik)$value-qchisq(.95,1)/2)
 
> segments(F$estimate[1]-1.96*F$sd[1],
-170,F$estimate[1]+1.96*F$sd[1],-170,lwd=3,col="blue")
> borne=-optim(1,prof_log_lik)$value-qchisq(.95,1)/2
> (b1=uniroot(function(z) Vectorize(prof_log_lik)(z)+borne,c(.5,1.5))$root)
[1] 1.095726
> (b2=uniroot(function(z) Vectorize(prof_log_lik)(z)+borne,c(1.25,2.5))$root)
[1] 1.811809

that can be visualized below,

> segments(b1,-168,b2,-168,lwd=3,col="red")

In blue the obtained obtained using the asymptotic Gaussian property of the maximum likelihood estimator, and in red, the obtained obtained using the asymptotic chi-square distribution of the log (profile) likelihood ratio.

Cite this article as: Arthur Charpentier, "Profile Likelihood," in Freakonometrics, 16/11/2015, https://freakonometrics.hypotheses.org/20573.

ENSAE, devoir 2

Pour le second devoir, je propose de faire un modèle de modélisation d’un comptage. Le code pour récupérer la base est le même que pour le premier devoir (on va travailler sur la même base)

rm(list=ls())
download.file(url="http://freakonometrics.free.fr/base_ensae_1.RData",destfile="base.RData")
load("base.RData")

A partir de la base base_ensae_1, proposez deux modèles (une régression de Poisson, et un modèle parmi ceux vus en cours) pour modéliser la variable (au choix) Nb1 ou Nb2, indiquant le nombre de sinistres survenus sur une police d’assurance. Il s’agit, comme en cours, d’expliquer la fréquence annuelle de sinistres.

Le rapport doit contenir entre 5 et 10 pages, expliquant les modèles retenus, les choix qui ont été fait (pour rendre catégorielles de variables continues, ou au contraire les lisser, etc).

En plus du rapport, je veux une prévision à l’aide des deux modèles sur la base de données pricing. Je veux, par mail, avec un fichier csv, contenant le numéro de la police, PolNum, et les fréquences annuelles de déclaration d’accidents, avec les deux modèles (Freq1 et Freq2 respectivement)

pricing <- read.csv2("http://freakonometrics.free.fr/pricing.csv")

Le tout (rapport pdf et base csv) doit être envoyé pour le retour des vacances de Noël, par mail à arthur.charpentier@gmail.com. La première page du rapport doit indiquer les noms des deux étudiants du binôme.

Petite précision, une description (succincte) des variables est faite ci-dessous,