This document summarizes the use of log-Poisson regression models for claims reserving and calculating reserves. It shows how to fit a log-Poisson regression model to incremental claims payments data and use it to estimate total reserves. It also provides methods for calculating the prediction error and quantifying the uncertainty of reserve estimates, including using the bootstrap procedure to generate multiple simulated reserve estimates.
This document discusses modeling and estimating extreme risks and quantiles in non-life insurance. It introduces the generalized extreme value distribution and three limiting distributions used to model extreme values. It also discusses estimators like the Hill estimator that are used to estimate the shape parameter of distributions modeling extreme risks. Methods for estimating value-at-risk and tail-value-at-risk based on the generalized Pareto distribution above a threshold are also presented.
This document summarizes the use of log-Poisson regression models for claims reserving and calculating reserves. It shows how to fit a log-Poisson regression model to incremental claims payments data and use it to estimate total reserves. It also provides methods for calculating the prediction error and quantifying the uncertainty of reserve estimates, including using the bootstrap procedure to generate multiple simulated reserve estimates.
This document discusses modeling and estimating extreme risks and quantiles in non-life insurance. It introduces the generalized extreme value distribution and three limiting distributions used to model extreme values. It also discusses estimators like the Hill estimator that are used to estimate the shape parameter of distributions modeling extreme risks. Methods for estimating value-at-risk and tail-value-at-risk based on the generalized Pareto distribution above a threshold are also presented.
This document discusses various modeling techniques for non-life insurance ratemaking including individual and collective models, Tweedie regression, and the LASSO method. It explores using a Tweedie distribution for compound Poisson models and the relationship between individual and collective models. The document also examines issues with high-dimensional data in insurance, bias-variance tradeoffs, and regularization methods like ridge regression and the LASSO for variable selection.
The document discusses provisions for outstanding claims in non-life insurance. It defines key terms like incurred but not reported (IBNR) and incurred but not paid (IBNP) claims. It also presents the chain ladder method for estimating future claim payments based on historical payment patterns represented in triangular payment tables. The chain ladder method estimates development factors that are applied to cumulative paid amounts to project final claim costs.
This document discusses modeling and estimating extreme risks and quantiles in non-life insurance. It introduces the generalized extreme value distribution and Pickands–Balkema–de Haan theorem, which state that maximums of iid random variables converge to one of three extreme value distributions. It also discusses estimators for the shape parameter of these distributions, such as the Hill estimator, and using the generalized Pareto distribution above a threshold to estimate value-at-risk quantiles. Examples are given applying these methods to Danish fire insurance loss data.
This document discusses various modeling approaches for non-life insurance tariffication including frequency-severity models, Tweedie regression models, and high-dimensional modeling techniques like ridge regression and the LASSO. It compares individual risk and collective risk models, explores the impact of the Tweedie parameter, and applies regularization methods to insurance data.
The document discusses provisions for outstanding claims in non-life insurance. It defines key terms like incurred but not reported (IBNR) and incurred but not paid (IBNP) claims. It also presents the chain ladder method for estimating reserves, which assumes a constant development factor between years. The chain ladder method is demonstrated on a numeric example using a triangle of cumulative paid claims.
This document discusses using regression models for claims reserving. Specifically, it examines using Poisson regression with incremental payments modeled as Poisson distributed, with the mean depending on occurrence year and development year factors. It provides an example of fitting such a model in R and summarizing the results. It also discusses using the model to estimate reserves and quantifying the uncertainty in those estimates through bootstrap simulations of the residuals.
This document discusses algorithms for solving the traveling salesman problem (TSP), including the Little algorithm. The Little algorithm uses a branch and bound approach to find the optimal solution to the TSP. It works by first computing a lower bound on the cost, then iteratively considering paths with the highest "regret" or deviation from the lower bound, branching on whether to include or exclude that path until an optimal solution is found. While exact, the Little algorithm runs into computational issues as the number of cities increases due to the large search tree that must be explored.
This document discusses the probabilistic foundations of econometrics and relationships to machine learning techniques. It describes how econometrics uses probability distributions and maximum likelihood estimation for linear regression models. It also discusses how machine learning uses loss functions and penalization methods like ridge regression to select models and avoid overfitting. Boosting techniques are mentioned as a way to sequentially learn from previous errors.
The document describes the simplex method for solving linear programming problems. It begins with an example problem of maximizing beer production given constraints on barley and corn supplies. It introduces slack variables to transform inequalities into equalities. The coefficients are written in a tableau and an initial basic feasible solution is chosen. Gaussian elimination is performed to introduce new basic variables while removing others. The process is repeated, moving through the feasible space, until an optimal solution is found without any negative entries in the objective function row. Duality between minimizing costs and maximizing profits is also discussed.
Le principe d'entropie maximale vise à définir une contrainte pour chaque information observée et choisir la distribution qui maximise l'entropie tout en restant consistante vis-à-vis de l'ensemble de ces contraintes (Jaynes, 1957). Dans ce cadre d'optimisation sous contraintes, il est mathématiquement prouvé qu'une solution unique existe et un algorithme itératif garantit la convergence vers cette dernière (Ratnaparkhi, 1996).
Pour tout commentaire, correction, amélioration : prénom.nom /arb/ irit.fr (Jean-Philippe Fauconnier)
This document discusses how family history can impact life insurance premiums. It reviews existing literature on relationships between family members' lifespans, such as husbands and wives or parents and children. Genealogical data is used to analyze dependencies between generations, like grandchildren and grandparents. Quantities important for life insurance are calculated based on family information, showing how premiums may differ depending on how many family members are still alive. The goal is to better understand how family history can influence longevity and mortality risk factors used in life insurance underwriting.
Family History and Life Insurance (UConn actuarial seminar)Arthur Charpentier
This document discusses how family history can impact life insurance premiums. It reviews existing literature on relationships between family members' lifespans. The document analyzes a genealogical dataset to study dependencies between husbands and wives, parents and children, and grandparents and grandchildren. It finds modest but robust correlations between related individuals' lifespans. This dependency is quantified for various life insurance metrics like annuities and whole life insurance, showing family history can impact premiums.
Talk at the modcov19 CNRS workshop, en France, to present our article COVID-19 pandemic control: balancing detection policy and lockdown intervention under ICU sustainability
The document discusses research on the relationship between family history and life insurance. It summarizes existing literature showing modest but robust connections between the lifespans of family members like spouses, parents and children, and grandparents and grandchildren. The document then presents analyses using a genealogical dataset, finding correlations between related individuals' lifespans. It explores how these family dependencies could impact life insurance premiums and quantities like annuities, widow's pensions, and life expectancies.
This document discusses the use of machine learning techniques in actuarial science and insurance. It begins with an overview of predictive modeling applications in insurance such as fraud detection, premium computation, and claims reserving. It then covers traditional econometric techniques like Poisson and gamma regression models and how machine learning is emerging as an alternative. The document emphasizes evaluating model goodness of fit and uncertainty, and addresses issues like price discrimination and fairness.
This document summarizes a paper on reinforcement learning in economics and finance. It introduces reinforcement learning concepts like agents, environments, actions, rewards, and states. It then discusses applications of reinforcement learning frameworks in economic problems like inventory management, consumption and income dynamics, and experiments. Finally, it notes connections between reinforcement learning and other fields like operations research, stochastic games, and finance.
This document models the COVID-19 pandemic using a compartmental SIDUHR+/- model that divides the population into susceptible (S), infected asymptomatic (I-), infected symptomatic (I+), recovered asymptomatic (R-), recovered symptomatic (R+), hospitalized (H), ICU (U), and dead (D) categories. Optimal lockdown policies are determined by minimizing costs related to deaths, economic impact, testing needs, and immunity while ensuring ICU sustainability. Increasing ICU capacity allows less stringent lockdown policies while achieving similar outcomes. Faster detection of asymptomatic cases through increased testing also enables more flexible lockdown policies.
The document summarizes research on using genealogical data to model dependencies in life spans between family members and quantify the impact on insurance premiums. It presents analysis of husband-wife, parent-child, and grandparent-grandchild relationships, showing dependencies exist. Mortality rates, life expectancies, and insurance quantities like annuities are estimated conditionally based on family history information.
The document discusses natural language processing techniques including word embeddings, text classification using naive Bayes classifiers, and probabilistic language models. It provides examples of part-of-speech tagging and analyzing sentiment. Key concepts covered include the bag-of-words assumption, n-gram models, and maximum likelihood estimation. Various papers on related topics are cited throughout.
This document discusses network representation and analysis. It defines networks as consisting of nodes (vertices) and edges, and describes different ways to represent networks mathematically using adjacency matrices, incidence matrices, and Laplacian matrices. It also discusses visualizing networks using multidimensional scaling and plotting them in R. Special types of networks like complete graphs and random graphs are briefly introduced.
The document discusses various techniques for classifying pictures using neural networks, including convolutional neural networks. It describes how convolutional neural networks can be used to classify images by breaking them into overlapping tiles, applying small neural networks to each tile, and pooling the results. The document also discusses using recurrent neural networks to classify videos by treating them as higher-dimensional tensors.
The document discusses using unusual data sources in insurance. It provides examples of using pictures, text, social media data, telematics, and satellite imagery in insurance. It also discusses challenges in analyzing complex and high-dimensional data from these sources and introduces machine learning tools like PCA, generalized linear models, and evaluating models using loss, risk, and cross-validation.
This document discusses classification and goodness of fit in machine learning. It introduces concepts like confusion matrices, ROC curves, and measures like sensitivity, specificity, and AUC. ROC curves are constructed by plotting the true positive rate vs. false positive rate for different classification thresholds. The AUC can measure classifier performance, with higher values indicating better classification. Chi-square tests and bootstrapping are also discussed for evaluating goodness of fit.
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24BenotGeorges3
Les informations et évènements agricoles en province du Luxembourg et en Wallonie susceptibles de vous intéresser et diffusés par le SPW Agriculture, Direction de la Recherche et du Développement, Service extérieur de Libramont.
Le fichier :
Les newsletters : https://agriculture.wallonie.be/home/recherche-developpement/acteurs-du-developpement-et-de-la-vulgarisation/les-services-exterieurs-de-la-direction-de-la-recherche-et-du-developpement/newsletters-des-services-exterieurs-de-la-vulgarisation/newsletters-du-se-de-libramont.html
Bonne lecture et bienvenue aux activités proposées.
#Agriculture #Wallonie #Newsletter #Recherche #Développement #Vulgarisation #Evènement #Information #Formation #Innovation #Législation #PAC #SPW #ServicepublicdeWallonie
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...mrelmejri
J'ai réalisé ce projet pour obtenir mon diplôme en licence en sciences de gestion, spécialité management, à l'ISCAE Manouba. Au cours de mon stage chez Attijari Bank, j'ai été particulièrement intéressé par l'impact des critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les décisions d'investissement dans le secteur bancaire. Cette étude explore comment ces critères influencent les stratégies et les choix d'investissement des banques.
Cycle de Formation Théâtrale 2024 / 2025Billy DEYLORD
Pour la Saison 2024 / 2025, l'association « Le Bateau Ivre » propose un Cycle de formation théâtrale pour particuliers amateurs et professionnels des arts de la scène enfants, adolescents et adultes à l'Espace Saint-Jean de Melun (77). 108 heures de formation, d’octobre 2024 à juin 2025, à travers trois cours hebdomadaires (« Pierrot ou la science de la Scène », « Montage de spectacles », « Le Mime et son Répertoire ») et un stage annuel « Tournez dans un film de cinéma muet ».
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...M2i Formation
Améliorez l'intégration de vos nouveaux collaborateurs grâce à notre formation flash sur l'onboarding. Découvrez des stratégies éprouvées et des outils pratiques pour transformer l'intégration en une expérience fluide et efficace, et faire de chaque nouvelle recrue un atout pour vos équipes.
Les points abordés lors de la formation :
- Les fondamentaux d'un onboarding réussi
- Les outils et stratégies pour un onboarding efficace
- L'engagement et la culture d'entreprise
- L'onboarding continu et l'amélioration continue
Formation offerte animée à distance avec notre expert Eric Collin
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La JeunesseOscar Smith
Besoin des conseils pour les Jeunes ? Le document suivant est plein des conseils de la Vie ! C’est vraiment un document conseil de la jeunesse que tout jeune devrait consulter.
Voir version video:
➡https://youtu.be/7ED4uTW0x1I
Sur la chaine:👇
👉https://youtube.com/@kbgestiondeprojets
Aimeriez-vous donc…
-réussir quand on est jeune ?
-avoir de meilleurs conseils pour réussir jeune ?
- qu’on vous offre des conseils de la vie ?
Ce document est une ressource qui met en évidence deux obstacles qui empêchent les jeunes de mener une vie épanouie : l'inaction et le pessimisme.
1) Découvrez comment l'inaction, c'est-à-dire le fait de ne pas agir ou d'agir alors qu'on le devrait ou qu'on est censé le faire, est un obstacle à une vie épanouie ;
> Comment l'inaction affecte-t-elle l'avenir du jeune ? Que devraient plutôt faire les jeunes pour se racheter et récupérer ce qui leur appartient ? A découvrir dans le document ;
2) Le pessimisme, c'est douter de tout ! Les jeunes doutent que la génération plus âgée ne soit jamais orientée vers la bonne volonté. Les jeunes se sentent toujours mal à l'aise face à la ruse et la volonté politique de la génération plus âgée ! Cet état de doute extrême empêche les jeunes de découvrir les opportunités offertes par les politiques et les dispositifs en faveur de la jeunesse. Voulez-vous en savoir plus sur ces opportunités que la plupart des jeunes ne découvrent pas à cause de leur pessimisme ? Consultez cette ressource gratuite et profitez-en !
En rapport avec les " conseils pour les jeunes, " cette ressource peut aussi aider les internautes cherchant :
➡les conseils pratiques pour les jeunes
➡conseils pour réussir
➡jeune investisseur conseil
➡comment investir son argent quand on est jeune
➡conseils d'écriture jeunes auteurs
➡conseils pour les jeunes auteurs
➡comment aller vers les jeunes
➡conseil des jeunes citoyens
➡les conseils municipaux des jeunes
➡conseils municipaux des jeunes
➡conseil des jeunes en mairie
➡qui sont les jeunes
➡projet pour les jeunes
➡conseil des jeunes paris
➡infos pour les jeunes
➡conseils pour les jeunes
➡Quels sont les bienfaits de la jeunesse ?
➡Quels sont les 3 qualités de la jeunesse ?
➡Comment gérer les problèmes des adolescents ?
➡les conseils de jeunes
➡guide de conseils de jeunes
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Slides ensae-2016-2
1. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Actuariat de l’Assurance Non-Vie # 2
A. Charpentier (Université de Rennes 1)
ENSAE ParisTech, 2016/2017.
http://freakonometrics.hypotheses.org
@freakonometrics 1
2. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Modélisation économétrique d’une variable dichotomique
Utile en fraude, marketing, crédit, catastrophes, décès ou pour modéliser la
fréquence sur des branches spécifiques (max 1 sinistre par an).
Références: Frees (2010), chapitre 11 (p 305-342), Greene (2012), sections 17.2
et 17.3 (p 863-715), de Jong & Heller (2008), chapitre 7.
Remarque: la régression logistique est un cas particulier des modèles GLM,
avec une loi binomiale et une fonction de lien logit.
Modèles introduits par Gaddum (1933), Bliss (1935), ou Berkson (1944).
@freakonometrics 2
3. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Modélisation économétrique d’une variable dichotomique
Ici yi ∈ {0, 1}, mais pour les méthodes de machine learning yi ∈ {−1, +1}, ou
pour les dessins yi ∈ {•, •}.
La prévision se fera en deux étapes
• estimation d’une fonction de score,
s(x) = P(Y = 1|X = x) ∈ [0, 1]
• construction d’un classifieur s(x) → y ∈ {0, 1}.
q
q
q
q
q
q
q
q
q
q
0.0 0.2 0.4 0.6 0.8 1.0
0.00.20.40.60.81.0
q
q
q
q
q
q
q
q
q
q
@freakonometrics 3
4. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Bases de données
• Repésentation d’un assuré par un avocat (accident corporel)
1 > avocat <- read.table("http:// freakonometrics .free.fr/AutoBI.csv",
header=TRUE ,sep=",")
2 > avocat$CLMSEX <- factor(avocat$CLMSEX , labels=c("M","F"))
3 > avocat$MARITAL <- factor(avocat$MARITAL , labels=c("M","C","V","D"))
4 > avocat <- avocat[,-c(1 ,5)]
• Survenance d’accident sur des polices d’assurance de camping car
5 > camping <- read.table("http:// freakonometrics .free.fr/baseN.txt",
header=TRUE ,sep=";")
• Décès par infarctus suite à une admission aux urgences
6 > myocarde <- read.table("http:// freakonometrics .free.fr/myocarde.csv
",head=TRUE ,sep=";")
(cf. code en ligne sur le blog, détails donnés dans les slides)
@freakonometrics 4
5. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
La loi binomiale B(π)
Soient Yi des variables aléatoires prenant les valeurs yi ∈ {0, 1}, avec probabilité
1 − πi et πi (respectivement), i.e.
P(Yi = yi) = πyi
i [1 − πi]1−yi
, pour yi ∈ {0, 1},
avec πi ∈ [0, 1]. Aussi, P(Yi = 1) = πi et P(Yi = 0) = 1 − πi.
Alors E(Yi) = πi et Var(Yi) = π[1 − πi] < E(Yi).
En statistique, on suppose que πi = π, ∀i ∈ {1, 2, · · · , n},
et on cherche à estimer π
@freakonometrics 5
6. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Maximum de vraisemblance et méthode des moments
La fonction de vraisemblance, pour un échantillon y1, · · · , yn s’écrit
L(π; y) =
n
i=1
P(Yi = yi) =
n
i=1
πyi
[1 − π]1−yi
et la log-vraisemblance est
log L(π; y) =
n
i=1
yi log[π] + (1 − yi) log[1 − π]
La condition du premier ordre est
∂ log L(π; y)
∂π
=
n
i=1
yi
π
−
1 − yi
1 − π
= 0
@freakonometrics 6
7. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Intervalle de confiance pour π
On a un intervalle de confiance asymptotique car on sait que l’estimateur de
vraisemblance est asymptotiquement efficace,
√
n(π − π)
L
→ N(0, I−1
(π))
où I(π) est l’information de Fisher, i.e.
I(π) =
1
π[1 − π]
d’où un intervalle de confiance approché (à 95%) pour π de la forme
π ±
1.96
√
n
π[1 − π] .
@freakonometrics 7
8. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Intervalle de confiance pour π
On peut aussi construire un intervalle de confiance, par le théorème central
limite, car π = X. On sait que
√
n
X − E(X)
Var(X)
L
→ N(0, 1),
avec ici X = π, E(X) = π et Var(X) = π(1 − π), i.e. un intervalle de confiance
est obtenu par l’approximation
√
n
π − π
π[1 − π]
L
→ N(0, 1),
d’où un intervalle de confiance (à 95%) pour π de la forme
π ±
1.96
√
n
π[1 − π] .
@freakonometrics 8
9. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Mise en oeuvre pratique
Considérons l’échantillon suivant, {y1, · · · , yn}
1 > set.seed (1)
2 > n=20
3 > (Y=sample (0:1 , size=n,replace=TRUE))
4 [1] 0 0 1 1 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1
Comme Yi ∼ B(π), avec π = E(Y ). On note π = y, soit ici
1 > mean(X)
2 [1] 0.55
On peut faire un test de H0 : π = π contre H1 : π = π (par exemple 50%)
On peut utiliser le test de Student,
T =
√
n
π − π
π (1 − π )
qui suit, sous H0 une loi de Student à n degrés de liberté.
@freakonometrics 9
10. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Mise en oeuvre pratique
1 > (T=sqrt(n)*(pn -p0)/(sqrt(p0*(1-p0))))
2 [1] 0.4472136
3 > abs(T)<qt(1- alpha/2,df=n)
4 [1] TRUE
−3 −2 −1 0 1 2 3
0.00.10.20.30.4
dt(u,df=n)
q
@freakonometrics 10
11. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Mise en oeuvre pratique
On est ici dans la région d’acceptation du test.
On peut aussi calculer la p-value, P(|T| > |tobs|),
1 > 2*(1-pt(abs(T),df=n))
2 [1] 0.6595265
−3 −2 −1 0 1 2 3
0.00.10.20.30.4
dt(u,df=n)
q
@freakonometrics 11
12. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Mise en oeuvre pratique
Test de Wald l’idée est d’étudier la différence entre π et π . Sous H0,
T = n
(π − π )2
I−1(π )
L
→ χ2
(1)
Test du rapport de vraisemblance l’idée est d’étudier la différence entre log L(θ)
et log L(θ ). Sous H0,
T = 2 log
log L(θ )
log L(θ)
L
→ χ2
(1)
Test du score l’idée est d’étudier la différence entre
∂ log L(π )
∂π
et 0. Sous H0,
T =
1
n
n
i=1
∂ log fπ (xi)
∂π
2
L
→ χ2
(1)
@freakonometrics 12
13. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Mise en oeuvre pratique
1 > p=seq(0,1,by =.01)
2 > logL=function(p){sum(log(dbinom(X,size=1,prob=p)))}
3 > plot(p,Vectorize(logL)(p),type="l",col="red",lwd =2)
0.0 0.2 0.4 0.6 0.8 1.0
−50−40−30−20
p
Vectorize(logL)(p)
@freakonometrics 13
14. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Mise en oeuvre pratique
On peut trouver numériquement le maximum de log L,
1 > neglogL=function(p){-sum(log(dbinom(X,size=1,prob=p)))}
2 > pml=optim(fn=neglogL ,par=p0 ,method="BFGS")
3 > pml
4 $par
5 [1] 0.5499996
6
7 $value
8 [1] 13.76278
i.e. on retrouve ici π = y.
@freakonometrics 14
15. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Mise en oeuvre pratique
Maintenant, on peut tester H0 : π = π = 50% versus H1 : π = 50%. Pour le test
de Wald, on peut commencer par calculer nI(θ ) ou ,
1 > nx=sum(X==1)
2 > f = expression(nx*log(p)+(n-nx)*log(1-p))
3 > Df = D(f, "p")
4 > Df2 = D(Df , "p")
5 > p=p0 =0.5
6 > (IF=-eval(Df2))
7 [1] 80
@freakonometrics 15
16. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Mise en oeuvre pratique
On peut d’ailleurs comparer cette valeur avec la valeur théorique, car
I(π)−1
= π(1 − π)
1 > 1/(p0*(1-p0)/n)
2 [1] 80
0.0 0.2 0.4 0.6 0.8 1.0
−16.0−15.0−14.0−13.0
p
Vectorize(logL)(p)
q
@freakonometrics 16
17. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Mise en oeuvre pratique
La statistique du test de Wald est ici
1 > pml=optim(fn=neglogL ,par=p0 ,method="BFGS")$par
2 > (T=(pml -p0)^2*IF)
3 [1] 0.199997
que l’on va chercher à comparer avec le quantile de la loi du χ2
,
1 > T<qchisq (1-alpha ,df =1)
2 [1] TRUE
i.e. on est dans la région d’acceptation du test.
@freakonometrics 17
18. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Mise en oeuvre pratique
De manière duale, on peut calculer la p-value du test,
1 > 1-pchisq(T,df=1)
2 [1] 0.6547233
Donc on va accepter H0.
0 1 2 3 4 5 6
0.00.51.01.52.0
dchisq(u,df=1)
q
@freakonometrics 18
19. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Mise en oeuvre pratique
Pour le test du rapport de vraisemblance, T est ici
1 > (T=2*(logL(pml)-logL(p0)))
2 [1] 0.2003347
0.0 0.2 0.4 0.6 0.8 1.0
−16.0−15.0−14.0−13.0
p
Vectorize(logL)(p)
q
@freakonometrics 19
20. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Mise en oeuvre pratique
Là encore, on est dans la région d’acceptation,
1 > T<qchisq (1-alpha ,df =1)
2 [1] TRUE
Enfin, on peut faire le test du score. Le score se calcule facilement,
1 > nx=sum(X==1)
2 > f = expression(nx*log(p)+(n-nx)*log(1-p))
3 > Df = D(f, "p")
4 > p=p0
5 > score=eval(Df)
La statistique de test est alors
1 > (T=score ^2/IF)
2 [1] 0.2
@freakonometrics 20
21. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Mise en oeuvre pratique
0.0 0.2 0.4 0.6 0.8 1.0
−16.0−15.0−14.0−13.0
p
Vectorize(logL)(p)
q
Là encore, on est dans la région d’acceptation,
1 > T<qchisq (1-alpha ,df =1)
2 [1] TRUE
@freakonometrics 21
22. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Prise en compte de l’hétérogénéité
Supposons que πi soit fonction de variables explicatives Xi, e.g.
πi = E(Yi|Xi).
Le modèle classique est le modèle linéaire, E(Yi|Xi) = Xiβ
On peut faire une estimation par moindres carrés pour estimer β,
β = argmin
n
i=1
[Yi − Xiβ]2
, β ∈ Rk
Problème: πi ∈ [0, 1] et Xiβ ∈ R.
Problème: modèle non homoscédastique, en effet
εi =
1 − Xiβ avec probabilité πi
−Xiβ avec probabilité 1 − πi
i.e. Var(ε) = Xiβ · [1 − xXiβ].
@freakonometrics 22
23. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Utilisation de la cote (odds)
πi ∈ [0, 1] alors que Xiβ ∈ R, donc on ne peut pas supposer
πi = E(Yi|Xi) = Xiβ
−→ utilisation de la côte
oddsi =
πi
1 − πi
∈ [0, ∞].
ou, en passant au logarithme
log(oddsi) = log
πi
1 − π
∈ R.
On appelle logit cette transormation,
logit(πi) = log
πi
1 − π
@freakonometrics 23
24. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Utilisation de la cote (odds)
On va supposer que
logit(πi) = Xiβ
ou
πi = logit−1
(Xiβ) =
exp[Xiβ]
1 + exp[Xiβ]
.
Remarque: si πi est faible (πi ∼ 0) alors logit−1
∼ exp, i.e.
πi ∼ exp(Xiβ)
@freakonometrics 24
25. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
La fonction logistique
F(x) =
exp[x]
1 + exp[x]
, ∀x ∈ R.
@freakonometrics 25
26. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
La fonction logistique
F(x) =
exp[2x]
1 + exp[2x]
, ∀x ∈ R.
@freakonometrics 26
27. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
La fonction logistique
F(x) =
exp[−x]
1 + exp[−x]
, ∀x ∈ R.
@freakonometrics 27
28. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
La fonction logistique
F(x) =
exp[1+x]
1 + exp[1+x]
, ∀x ∈ R.
@freakonometrics 28
29. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
La régression logistique
La log-vraisemblance est ici
log L(β) =
n
i=1
yi log(πi)+(1−yi) log(1−πi) =
n
i=1
yi log(πi(β))+(1−yi) log(1−πi(β))
La résolution se fait en écrivant les conditions du premier ordre. Pour cela, on
écrit le gradient log L(β) = [∂ log L(β)/∂βk], où
∂ log L(β)
∂βk
=
n
i=1
yi
πi(β)
∂πi(β)
∂βk
−
1 − yi
πi(β)
∂πi(β)
∂βk
or compte tenu de la forme de πi(β),
∂πi(β)
∂βk
= πi(β)[1 − πi(β)]Xk,i
on obtient
∂ log L(β)
∂βk
=
n
i=1
Xk,i[yi − πi(β)]
@freakonometrics 29
30. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Newton Raphson - ‘Descente’ de gradient
Remarque Pour rechercher le zéro d’une fonction (réelle), i.e. f(x) = 0: on se
donne x0, et on pose
xk = xk−1 −
f(xk−1)
f (xk−1)
Remarque Pour rechercher le maximum d’un fonction dérivable, on recherche le
zéro de la dérivée, i.e. h (x) = 0: on se donne x0, et on pose
xk = xk−1 −
f (xk−1)
f (xk−1)
Il faut trouver numériquement le maximum de log L(β).
L’algorithme standard est
1. partir d’une valeur initiale β0
2. poser βk = βk−1 − H(βk−1)−1
log L(βk−1)
@freakonometrics 30
31. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
où log L(β) est le gradient, et H(β) la matrice Hessienne (on parle parfois de
Score de Fisher).
Ici, le terme générique de la matrice Hessienne est
∂2
log L(β)
∂βk∂β
=
n
i=1
Xk,iX ,i[yi − πi(β)]
Posons
Ω = [ωi,j] = diag(πi(1 − πi))
alors le gradient est
log L(β) =
∂ log L(β)
∂β
= XT
(y − π)
alors que la matrice Hessienne estimation
H(β) =
∂2
log L(β)
∂β∂βT
= −XT
ΩX
@freakonometrics 31
32. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Aussi, l’algorithme de Newton Raphson s’écrit
βk = (XT
ΩX)−1
XT
ΩZ où Z = Xβk−1 + XT
Ω−1
y − π),
On reconnait une régression pondérée itérée,
βk = argmin {(Z − Xβ)TΩ(Z − Xβ).}
D’un point de vue computationnel, l’estimation se fait de la manière suivante:
1 X=cbind(rep(1,nrow(avocat)),avocat$LOSS)
2 Y=( avocat$ATTORNEY =2)*1
on part d’une valeur initiale (e.g. une estimation classique de modèle linéaire)
1 beta=lm(Y~0+X)$ coefficients
On fait ensuite une boucle,
1 for(s in 1:20){
2 pi=exp(X%*%beta)/(1+ exp(X%*%beta))
@freakonometrics 32
33. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
3 gradient=t(X)%*%(Y-pi)
4 omega=matrix (0,nrow(X),nrow(X));diag(omega)=(pi*(1-pi))
5 hesienne=-t(X)%*%omega%*%X
6 beta=beta -solve(hesienne)%*%gradient}
Ici, on obtient les valeurs suivantes
1 [,1] [,2]
2 [1,] 0.50034948 0.001821554
3 [2,] -0.05689403 0.015434935
4 [3,] -0.19941087 0.055570172
5 [4,] -0.45629828 0.140490153
6 [5,] -0.73627462 0.253154397
7 [6,] -0.85830164 0.309712845
8 [7,] -0.87192186 0.316615292
9 [8,] -0.87207800 0.316697581
i.e. on converge (et vite).
@freakonometrics 33
34. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Comportement asymptotique (et intervalle de confiance)
On peut montrer que β
P
→ β et
√
n(β − β)
L
→ N(0, I(β)−1
).
Numériquement, la encore, on peut approcher I(β)−1
qui est la variance
(asymptotique) de notre estimateur. Or I(β) = H(β), donc les écart-types de β
sont
1 > pi=exp(X%*%beta)/(1+ exp(X%*%beta))
2 + omega=matrix (0,nrow(X),nrow(X));diag(omega)=(pi*(1-pi))
3 + hesienne=-t(X)%*%omega%*%X
4 + sqrt(-diag(solve(hesienne)))
5 [1] 0.09128379 0.02902411
@freakonometrics 34
35. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
On retrouve toutes ces valeurs en utilisant
1 > logistique <- glm (( ATTORNEY ==1)~LOSS , data=avocat ,family=binomial(
link="logit"))
2
3 Coefficients :
4 Estimate Std. Error z value Pr(>|z|)
5 (Intercept) -0.87208 0.09128 -9.553 <2e-16 ***
6 LOSS 0.31670 0.02902 10.912 <2e-16 ***
7 ---
8 Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
9
10 ( Dispersion parameter for binomial family taken to be 1)
11
12 Null deviance: 1857.6 on 1340 degrees of freedom
13 Residual deviance: 1609.4 on 1338 degrees of freedom
14 AIC: 1613.4
15
16 Number of Fisher Scoring iterations: 8
@freakonometrics 35
36. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Test d’hypothèse et significativité
Considérons un test H0 : βk = 0 contre H1 : βk = 0 (classique dans le modèle
linéaire).
Compte tenu du comportement asymptotiquement Gaussien des estimateurs, on
a automatiquement un test de significativité des coefficients: sous H0,
βk
Var(βk)
∼ N(0, 1).
Remarque: ce test correspond à un test de Wald (d’où la notation z sous R)
@freakonometrics 36
37. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Régression linéaire sur une variable catégorielle
Supposons que l’on régresse sur X, une variable binaire, i.e X ∈ {0, 1}, avec
P(Y = 1|X) = β0 + β1X
qui prend les valeurs β0 si x = 0 (modalité de référence) et β0 + β1 si x = 1.
La log-vraisemblance devient
log L(β0, β1) =
i,xi=0
yi log[β0] +
i,xi=1
yi log[β0 + β1]
+
i,xi=0
(1 − yi) log[1 − β0] +
i,xi=1
(1 − yi) log[1 − β0 + β1]
et les conditions du premier ordre donnent
β0 =
xi=0
yi
xi=0
1
et β1 =
xi=1
yi
xi=0
1
−
xi=0
yi
xi=0
1
@freakonometrics 37
38. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Régression linéaire sur une variable catégorielle
Sur nos données, on peut considérer le sexe comme variable explicative.
1 > xtabs(~ATTORNEY+CLMSEX ,data=avocat)
2 CLMSEX
3 ATTORNEY M F
4 1 325 352
5 2 261 390
Si on fait la régression linéaire
1 > reglm = lm(( ATTORNEY ==1) ~ CLMSEX , data=avocat)
2 > summary(reglm)
3
4 Coefficients :
5 Estimate Std. Error t value Pr(>|t|)
6 (Intercept) 0.55461 0.02060 26.922 < 2e-16 ***
7 CLMSEXF -0.08021 0.02756 -2.911 0.00367 **
@freakonometrics 38
39. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Régression linéaire sur une variable catégorielle
Ces paramètres correspondent aux fréquences empiriques,
1 > attach(avocat)
2 > sum(( ATTORNEY ==1)&(CLMSEX =="M"),na.rm=TRUE)/sum(CLMSEX =="M",na.rm=
TRUE)
3 [1] 0.5546075
4 > sum(( ATTORNEY ==1)&(CLMSEX =="F"),na.rm=TRUE)/sum(CLMSEX =="F",na.rm=
TRUE)
5 [1] 0.4743935
@freakonometrics 39
41. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Modèle alternatif, le modèle probit
Soit H une fonction de répartition d’une variable rélle, H : R → [0, 1]. On
suppose ici
πi = H(Xiβ) ou Xiβ = H−1
(πi)
• si H est la fonction de répartition de la loi logistique, on retrouve le modèle
logit,
• si H est la fonction de répartition de la loi N(0, 1), on obtient le modèle
probit,
Remarque: probit signifie probability unit.
On suppose qu’il existe une variable latente Yi non observée, telle que
πi = P(Yi = 1) = P(Yi > 0)
On suppose que Yi = Xiβ + i, où i est une erreur de loi H. Alors
πi = P(Yi = 1) = P(Yi > 0) = P( i > −Xiβ) = 1 − H(−Xiβ)
@freakonometrics 41
42. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
alors que
1 − πi = P(Yi = 0) = P(Yi ≤ 0) = P( i ≤ −Xiβ) = H(−Xiβ)
Si H = Φ, alors H est symmétrique par rapport à 0, et
πi = P(Yi = 1) = 1 − Φ(−Xiβ) = Φ(Xiβ),
ou encore ηi = Xiβ = Φ−1
(πi).
Si H(x) =
ex
1 + ex
, on a une loi logistique, qui est aussi symmétrique par rapport
à 0, et
πi = P(Yi = 1) = 1 − H(−Xiβ) = H(Xiβ),
ou encore ηi = Xiβ = H−1
(πi).
Remarque: pourquoi prendre un seuil nul ? sinon le modèle ne serait pas
identificable. De même si on ne fixe pas la variance des résidus. On prend donc
(arbitrairement) s = 0 et σ2
= 1.
@freakonometrics 42
43. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
La fonction logistique
Φ(x) =
1
√
2π
x
−∞
exp −
z2
2
dz, ∀x ∈ R.
@freakonometrics 43
44. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
La fonction logistique
Φ(x) =
√
3
π
√
2π
x
−∞
exp −
3z2
2π2
dz, ∀x ∈ R.
@freakonometrics 44
45. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Qualité de l’ajustement
Pour juger de la validité du modèle, on peut considérer plusieurs quantités.
On peut définir la déviance, qui compare la log-vraisemblance du modèle et cellle
du modèle parfait (cf. section sur les GLMs),
D = −2
n
i=1
[Yi log[πi] + (1 − Yi) log[1 − πi]]
Plus la variance est faible, meilleur est le modèle .
On peut aussi considérer la statistique de Pearson
χ2
=
n
i=1
(yi − πi)2
πi[1 − πi]
@freakonometrics 45
46. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Étude des résidus
A l’aide de la relation précédante, on peut définir
εi =
Yi − πi
πi[1 − πi]
On parlera de résidus de Pearson.
Il existe aussi les résidus de déviance.
εi = ±[Yi log[πi] + (1 − Yi) log[1 − πi]]
1
2
avec un signe positif si Yi ≥ πi, négatif sinon.
@freakonometrics 46
47. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Visualisation des résidus
1 > reglogit = glm(( ATTORNEY ==1) ~ CLMSEX+LOSS , data=avocat ,family=
binomial)
2 > E = residuals(reglogit ,type="response")
@freakonometrics 47
48. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Visualisation des résidus
1 > reglogit = glm(( ATTORNEY ==1) ~ CLMSEX+LOSS , data=avocat ,family=
binomial)
2 > E = residuals(reglogit ,type="deviance")
@freakonometrics 48
49. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Prédiction avec un modèle logistique
Sous R, la prédiction sera (par défaut) une prédiction du score, i.e. xT
β.
1 > predict(reglogit ,newdata=data.frame(LOSS =10, CLMSEX="M"))
2 1
3 2.530417
Il faut alors utiliser la loi logistique pour prévoir π,
1 > exp(predict(reglogit ,newdata=data.frame(LOSS =10, CLMSEX="M")))/
2 + (1+ exp(predict(reglogit ,newdata=data.frame(LOSS =10, CLMSEX="M"))))
3 1
4 0.9262468
ou utiliser directement
1 > predict(reglogit ,newdata=data.frame(LOSS =10, CLMSEX="M"),
2 + type="response")
3 1
4 0.9262468
@freakonometrics 49
50. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Modélisation de la survenance de sinistre
On peut aussi modéliser la survenance de sinistres
1 > camping=read.table("http:// freakonometrics .free.fr/baseN.txt",
2 + header=TRUE ,sep=";")
3 > Y <- camping$nombre
4 > table(Y)
5
6 0 1
7 60155 3264
i.e. 5.1467% des polices sont touchées par un sinistre.
1 > reg=glm(Y~1,family=binomial(link="logit"))
2 > predict(reg ,type="response")[1]
3 1
4 0.05146723
@freakonometrics 50
51. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Prise en compte de l’exposition
Parfois, les polices d’assurance ne sont pas observées pendant un an, car les
assurés peuvent les résilier. On peut malgré tout utiliser ces informations
partielles (censurées, car on cherche une fréquence annuelle).
1 > E=camping$exposition
2 > table(E)
3 E
4 0.2 0.25 0.33 0.5 1
5 5 48 309 1804 61253
Si on suppose que la survenance d’un évènement est modélisé par un processus de
Poisson (absence de mémoire), alors
P(Y = 0) = P(N = 0)E
Si N ∼ B(π),
P(Yi = yi) = πeiyi
[1 − πei
]1−yi
@freakonometrics 51
52. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
et la vraisemblance est alors
log L(π; y, e) =
n
i=1
yiei log[π] + ([1 − yi]) log[1 − πei
]
de telle sorte que
∂ log L(π; y, e)
∂π
=
n
i=1
yiei
π
−
(1 − yi)eiπei−1
1 − πei
= 0.
1 > logL = function(p){
2 + -sum(log(dbinom(Y,size=1,prob =1-(1-p)^E)))
3 + }
4 > opt=optimize(f=logL ,interval=c(1e-5,1e -1))
5 > opt$minimum
6 [1] 0.05225447
Plus généralement, on peut alors une régression logistique, en modélisant la non
@freakonometrics 52
53. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
survenance de sinistre,
P[Y = 0|X, E] =
exp(XT
β)
1 + exp(XT
β)
E
Si P[Y = 0] ∼ 0,
P[Y = 1] = 1 − P[Y = 0] = 1 − (1 − P[N = 1])E
de telle sorte que
P[Y = 1] ∼ 1 − 1 + E · P[N = 1] = E · P[N = 1]
1 > reg=glm(Y~1+ offset(log(E)),family=binomial(link="log"))
2 > predict(reg ,type="response")[1]
3 1
4 0.05212615
@freakonometrics 53
54. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Prise en compte de l’exposition
Remarque ici, l’exposition est clairement endogène
1 > with(camping ,table(nombre , exposition))
2 exposition
3 nombre 0.2 0.25 0.33 0.5 1
4 0 2 29 215 1230 58679
5 1 3 19 94 574 2574
@freakonometrics 54
55. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Régression logistique et variables catégorielles
Dans la base, on dispose de variables catégorielles, la situation familiale, le sexe,
la marque du véhicule, le type de paiement pour la prime, etc.
Formellement, Xj prend les modalités {xj,1, · · · , xj,dj
}, e.g. X2,
πi = logit−1
β0 + β1X1 +
d2
k=2
β2,k1(X2 = x2,k)
On perd générallement la première modalité,
1 > levels(camping$ situationfamiliale )
2 [1] "Celiba" "Marie" "Veuf/Div"
@freakonometrics 55
57. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Fusion de modalités pour une variable catégorielle
1 > levels(camping$ situationfamiliale )=c("Celib/Veuf/Div","Marie","
Celib/Veuf/Div")
2 > reg=glm(nombre~ ageconducteur +situationfamiliale ,data=camping ,family
=binomial)
3 > summary(reg)
4
5 Coefficients :
6 Estimate Std. Error z value Pr(>|z|)
7 (Intercept) -3.855646 0.109566 -35.190 < 2e-16 ***
8 ageconducteur 0.018493 0.001779 10.392 < 2e -16 ***
9 situationfamilialeMarie -0.202681 0.043973 -4.609 4.04e-06 ***
@freakonometrics 57
58. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Régression et variables continues, natura non facit saltus
Les variables continues apparaissent forcément de manière linéaire
πi = logit−1
(β0 + β1x1) ∼ exp(β0 + β1x1)
1 > reg=glm(nombre~ageconducteur ,data=camping ,family=binomial)
2 > summary(reg)
3
4 Coefficients :
5 Estimate Std. Error z value Pr(>|z|)
6 (Intercept) -3.949435 0.108492 -36.40 <2e -16 ***
7 ageconducteur 0.017375 0.001771 9.81 <2e -16 ***
@freakonometrics 58
59. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Régression et variables continues, natura non facit saltus
1 > reg=glm(nombre~ageconducteur , data=camping ,
family=binomial)
20 30 40 50 60 70 80 90
0.000.050.100.15
Age du conducteur principal
@freakonometrics 59
60. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Régression et variables continues
Dans la base, on dispose de variables catégorielles, mais aussi ‘continues’ comme
l’âge du conducteur, l’ancienneté du permis, l’âge du véhicule.
Historiquement, les assureurs aimaient constituer des classes de risques, et donc
cherchaient à découper les variables continues en classes. On peut considérer un
découpage arbitraire en classes d’âges, e.g.
[18, 25), [25, 35), [35, 50), [50, 65), [65, 80), [80, 100).
@freakonometrics 60
61. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Régression et variables continues, natura non facit saltus
1 > AGE=c(18 ,25 ,35 ,50 ,65 ,80 ,100)
2 > cut_logistic = glm(nombre~cut(ageconducteur ,
breaks=AGE),data=camping ,family=binomial)
20 30 40 50 60 70 80 90
0.000.050.100.15
Age du conducteur principal
On a l’impression que le modèle linéaire n’est peut-être pas adapté....
@freakonometrics 61
62. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Régression et variables continues, natura non facit saltus
1 > f_logistic = glm(nombre~as.factor( ageconducteur )
,data=camping ,family=binomial)
20 30 40 50 60 70 80 90
0.000.050.100.15
Age du conducteur principal
En prenant l’âge comme variable catégorielle, on retrouve l’effet non linéaire
@freakonometrics 62
63. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Régression et variables continues, natura non facit saltus
1 > library(splines)
2 > bs_logistic = glm(nombre~bs( ageconducteur ),data=
camping ,family=binomial(link="log"))
20 30 40 50 60 70 80 90
0.000.050.100.15
Age du conducteur principal
L’utilisation de splines semble confirmer la non-linéarité.
@freakonometrics 63
64. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Lissage et régression locale
Si on veut prédire E[Y |X = x], on peut construire un modèle au voisinage de x
1 > h=1
2 > w=(abs(db$x-x) <=h)*1
3 > regl=lm(y~1,data=db ,weights=w)
@freakonometrics 64
65. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Lissage et régression locale
1 > h=1
2 > w=(abs(db$x-x) <=h)*1
3 > regl=lm(y~x,data=db ,weights=w)
@freakonometrics 65
66. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Lissage et régression locale - à noyau
1 > h=1
2 > w=dnorm(db$x,x,sd=h)
3 > regl=lm(y~x,data=db ,weights=w)
@freakonometrics 66
67. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Prédicteur linéaire
Si les modèles sont non-linéaires, on construit souvent un prédicteur linéaire.
Dans le modèle linéaire
y = Xβ = X[XT
X]−1
XT
H
y
Plus généralement, on a un prédicteur linéaire si la prévision y au point x s’écrit
y = m(x) =
n
i=1
Sx,iyi = ST
xy
où Sx est une vecteur de poids (smoother vector), que l’on peut associer à une
matrice n × n de lissage
y = Sy
où les prévisions sont faites aux points xi’s.
@freakonometrics 67
68. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Degrés de liberté et complexité de modèle
Pour le modèle linéaire
Sx = Hx = X[XT
X]−1
x
Notons que
T =
SY − HY
trace([S − H]T[S − H])
est souvent utiliser pour comme statistique d’un test de linéarité: sous
l’hypothèse de modèle linéaire, T suit une loi de Fisher.
Pour les prédicteurs linéaire, trace(S) est souvent appelé nombre équivalent de
paramètres et peut être relié à n− nombre de degrés de liberté effectifs (cf
Ruppert et al. (2003)).
@freakonometrics 68
69. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Lissage, polynômes et b-splines
De manière générale, on va décomposer E[Y |X = x] dans une base de fonctions
m(x) =
M
m=0
βM hm(x),
On va retrouver hm(x) = xm
pour une régression
polynômiale, ou hm(x) = (x − sm)+ pour des ensembles
de noeuds sm (avec ici des splines linéaires, mais on peut
considérer des splines quadratiques ou cubiques).
@freakonometrics 69
70. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Lissage et régression polynômiale
1 > regp=lm(y~poly(x,M),data=db)
@freakonometrics 70
71. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Lissage et régression par splines linéaires
1 > bs_reg_lin=lm(y~bs(x,df=M,degree =1) ,data=db)
@freakonometrics 71
72. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Lissage et régression par splines quadratiques
1 > bs_reg_quad=lm(y~bs(x,df=M,degree =2) ,data=db)
@freakonometrics 72
73. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Lissage et tradeoff biais-variance
Problème classique en statistique : choix de M (degré du polynôme ou nombre
de noeud), tunning parameter,
mseM =
1
n
n
i=1
[yi − mM (xi)]2
= variance + biais2
0 5 10 15 20
0.51.02.05.010.020.0
Degré de la régression polynômiale
MISE−Erreurquadratiquemoyenneintégrée
0 5 10 15 20
1251020
Nombre de noeuds (splines linéaires)
MISE−Erreurquadratiquemoyenneintégrée
0 5 10 15 20
0.51.02.05.0
Nombre de noeuds (splines quadratiques)
MISE−Erreurquadratiquemoyenneintégrée
@freakonometrics 73
74. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Lissage et surapprentissage
• M trop grand: variance importante, biais faible
• M trop faible: biais important, variance faible
On retrouve ici l’idée de surapprentissage avec un modèle trop complexe. Autre
soucis,
mseM =
1
n
n
i=1
[yi − mM (xi)]2
→ ?
On ne peut invoquer la loi de grands nombres car mM (·) dépend de tous les
(xi, yi).
@freakonometrics 74
75. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Surapprentissage et validation croisée
Considérons un échantillon x = (x1, · · · , xn) et une statistique θ. Posons
θn = θ(x)
Le Jackknife est utilié pour réduire le biais: posons θ(−i) = θ(x(−i)), et
˜θ =
1
n
n
i=1
θ(−i)
Si E(θn) = θ + O(n−1
) alors E(˜θn) = θ + O(n−2
).
Cf idé de la validation croisée leave-one-out avec m(·)
mse =
1
n
n
i=1
[yi − m(−i)(xi)]2
L’estimateur par Boostrap est obtenu par rééchantillonnage: posons
θ(b) = θ(x(b)), et ˜θ =
1
n
n
i=1
θ(b), où x(b) est un échantillon de taille n, obtenu par
tirage avec remise dans {x1, · · · , xn}. Cf Efron (1979).
@freakonometrics 75
76. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Modèle Prédictif et Généralisation
Autre approche classique, utiliser une partie des données pour apprendre, et
l’autre pour valider le modèle. Le modèle ne doit pas (seulement) être bon sur la
popuation d’apprentissage, il doit surtout l’être sur la population de test.
@freakonometrics 76
77. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Effets croisés
Dans un modèle linéaire, avec deux variables, on considère une combinaison
linéaire
π = logit−1
(β0 + β1x1 + β2x2)
1 > reg_glm=glm(nombre~ ageconducteur +agevehicule ,
data=camping ,family=binomial)
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
0.00 0.05 0.10 0.15
20 30 40 50 60 70 80 90
010203040
Age du conducteur principal
Ageduvéhicule
@freakonometrics 77
78. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Effets croisés
En lissant les variables continues, le modèle reste additif
π = logit−1
(β0 + s1(x1) + s2(x2))
1 > reg_add=glm(nombre~bs( ageconducteur )+bs(
agevehicule),data=camping ,family=binomial)
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
0.00 0.05 0.10 0.15
20 30 40 50 60 70 80 90
010203040
Age du conducteur principal
Ageduv?hicule
@freakonometrics 78
79. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Effets croisés
On peut envisager un lissage bivarié
π = logit−1
(β0 + s(x1, x2))
1 > library(mgcv)
2 > reg_gam=gam(nombre~s(ageconducteur ,agevehicule),
data=camping ,family=binomial)
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
0.00 0.05 0.10 0.15
20 30 40 50 60 70 80 90
010203040
Age du conducteur principal
Ageduvéhicule
@freakonometrics 79
80. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Les k-plus proches voisins
Parmi les modèles nonparamétriques classiques, on peut utiliser les k plus
proches voisins
1 > library(caret)
2 > sc=sd(camping$ ageconducteur )
3 > sv=sd(camping$agevehicule)
4 > knn=knn3 (( nombre ==1)~I( ageconducteur /sc)+I(
agevehicule/sv),data=camping ,k=100)
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
0.00 0.05 0.10 0.15
20 30 40 50 60 70 80 90
010203040
Age du conducteur principal
Ageduvéhicule
(attention, la distance ne doit pas être sensible aux unités...)
@freakonometrics 80
81. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Lissage spatial
On peut aussi utiliser du lissage spatial, quand les données sont géolocalisées
(lieu d’habitation, localisation d’un accident, etc), cf kde() de library(ks), ou par
k-plus proche voisin quand on dispose d’une zone géographique knn2nb() de
library(spdep)
@freakonometrics 81
82. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
De la loi Binomiale à la loi Multinomiale
Pour une loi de Bernoulli, y ∈ {0, 1},
P(Y = 1) =
eXT
β
1 + eXTβ
=
p1
p0 + p1
∝ p1 et P(Y = 0) =
1
1 + eXT =
p0
p0 + p1
∝ p0
Pour une loi multinomiale, y ∈ {A, B, C}
P(X = A) =
pA
pA + pB + pC
∝ pA i.e. P(X = A) =
eXT
βA
eXTβB + eXTβB + 1
P(X = B) =
pB
pA + pB + pC
∝ pB i.e. P(X = B) =
eXT
βB
eXTβA + eXTβB + 1
P(X = C) =
pC
pA + pB + pC
∝ pC i.e. P(X = C) =
1
eXTβA + eXTβB + 1
@freakonometrics 82
83. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Courbe ROC, receiver operating characteristic
On dispose d’observations Yi prenant les valeurs 0 (on dira négatives) ou 1 (on
dira positives).
On a construit un modèle qui prédit πi. En se fixant un seuil s, si πi ≤ s, on
prédit Yi = 0, et si πi > s, on prédit Yi = 1.
Le modèle sera bon si les positifs sont prédits positifs, et les négatifs sont prédits
négatifs.
Le choix du seuil s permettra de minimiser soit les faux positifs, soit les faux
négatifs.
Y = 1 Y = 0
Yi = 1 TP FP
Yi = 0 FN TN
où TP sont les True Positive, FP les False Positive.
@freakonometrics 83
84. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Courbe ROC et Qualité d’un Classifieur
Y = 0 Y = 1 prevalence
Y = 0
true negative
N00
false negative
(type II)
N01
negative
predictive
value
NPV=
N00
N0·
false
omission
rate
FOR=
N01
N0·
Y = 1
false positive
(type I)
N10
true positive
N11
false
discovery
rate
FDR=
N10
N1·
positive
predictive
value
PPV=
N11
N1·
(precision)
negative
likelihood
ratio
LR-=FNR/TNR
true negative
rate
TNR=
N00
N·0
(specificity)
false negative
rate
FNR=
N01
N·1
positive
likelihood
ratio
LR+=TPR/FPR
false positive
rate
FPR=
N10
N·0
(fall out)
true positive rate
TPR=
N11
N·1
(sensitivity)
diagnostic odds
ratio = LR+/LR-
@freakonometrics 84
85. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Courbe ROC et Qualité d’un Classifieur
La courbe ROC est construite à partir de
1 > logistic <- step(glm(PRONO~.,data=myocarde ,family=binomial))
2 > Y=myocarde$PRONO
3 > S=as.numeric(predict(logistic ,type="response"))
@freakonometrics 85
87. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Mesures construites à partir d’une courbe ROC
L’aire sous la courbe ROC, Area Under the Curve AUC, peut être interprétée
comme la probailité qu’une observation soit mieux prédite qu’une prédiction
purement aléatoire cf Swets, Dawes & Monahan (2000)
Beaucoup d’autre mesures peuvent être construites
1 > library(hmeasures)
2 > HMeasure(Y,S)$metrics [ ,1:5]
3 Class labels have been switched from (Death ,Survival) to (0 ,1)
4 H Gini AUC AUCH KS
5 scores 0.7323154 0.8834154 0.9417077 0.9568966 0.8144499
avec la H-mesure (cf hmeasure), Gini et AUC, ainsi que l’aire sous l’enveloppe
convexe de la courbe (AUCH).
@freakonometrics 87
88. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Mesures construites à partir d’une courbe ROC
La statistique κ compare une Observed Accuracy avec une Expected Accuracy
(random chance), cf Landis & Koch (1977).
Y = 0 Y = 1
Y = 0 TN FN TN+FN
Y = 1 FP TP FP+TP
TN+FP FN+TP n
On va comparer les matrices de confusion observée et aléatoire (cf. chi-deux)
Y = 0 Y = 1
Y = 0 25 3 28
Y = 1 4 39 43
29 42 71
Y = 0 Y = 1
Y = 0 11.44 16.56 28
Y = 1 17.56 25.44 43
29 42 71
total accuracy =
TP + TN
n
∼ 90.14%
random accuracy =
[TN + FP] · [TP + FN] + [TP + FP] · [TN + FN]
n2
∼ 51.93%
κ =
total accuracy − random accuracy
1 − random accuracy
∼ 79.48%
@freakonometrics 88
90. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Les arbres de classification
Dans ces structures d’arbre, les feuilles représentent les
valeurs de la variable-cible et les embranchements corre-
spondent à des combinaisons de variables d’entrèe qui mè-
nent à ces valeurs (Source: wikipedia).
1 > library(rpart)
2 > tree=rpart (( nombre ==1)~ageconducteur ,data=
camping ,cp=1e -4)
3 > library(rpart.plot)
4 > library(rattle)
5 > prp(tree ,type=2, extra =1)
agecondu < 56
agecondu >= 26 agecondu < 68
0.051
n=63e+3
0.041
n=22e+3
0.04
n=22e+3
0.089
n=158
0.057
n=41e+3
0.053
n=29e+3
0.067
n=13e+3
yes no
20 30 40 50 60 70 80 90
0.000.050.100.15
Age du conducteur principal
@freakonometrics 90
91. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Les arbres de classification
Considérons une feuille {N}, alors l’indice de Gini sur la feuille est
gini(N) =
nx,y
nx
1 −
nx,y
nx
et si {N} et partagée en {NL, NR},
gini(NL, NR) = −
x∈{L,R}
nx
n
y∈{0,1}
nx,y
nx
1 −
nx,y
nx
Plus généralement, on dipose d’un indice d’impureté I(·) et pour partager {N}
en {NL, NR}, on considère
I(NL, NR)
x∈{L,R}
·
nx
n
I(Nx)
e.g. l’indice de Gini (utilisé dans CART, Breiman et al. (1984)), −p(1 − p) ou
l’indice d’entropie (utilisé dans C4.5 et C5.0) p log(p).
On considère des feuilles de la forme NL = {xi,j ≤ s} et NR = {xi,j > s}
@freakonometrics 91
92. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Les arbres de classification
1 > library(rpart)
2 > cart <-rpart(PRONO~., data = myocarde)
3 > library(rpart.plot)
4 > library(rattle)
5 > prp(cart , type=2, extra =1)
ou
1 > fancyRpartPlot (cart , sub="")
@freakonometrics 92
94. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Taille des arbres (élagage, pruning)
On ne partage pas à un noeud si ∆I est trop faible,
∆I(NL, NR) = I(N) − I(NL, NR) = I(N) −
nL
n
I(NL) −
nR
n
I(NR)
Remarque on note cp (complexity parameter) le seuil sur ∆I(NL, NR)/I(N)
(gain relatif d’indice), cf Breiman et al. (1984).
1 > cart <- rpart(PRONO ~ .,data = myocarde ,
2 + minsplit =3)
3 > plotcp(cart)
q
q
q
q
q
cp
X−valRelativeError
0.40.60.81.01.2
Inf 0.27 0.06 0.024 0.013
1 2 3 7 9
size of tree
@freakonometrics 94
95. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Les arbres de classification
En diminuant la valeur de cp, on peut construire un arbre plus profond (on peut
aussi diminuer mincut)
1 > tree=rpart (( nombre ==1)~.,data=camping ,cp=7e-4)
2 > prp(tree ,type=2, extra =1)
agevehic >= 7.5
agevehic >= 14 agecondu < 68
agevehic >= 1.5 agevehic >= 1.5
0.051
n=63e+3
0.031
n=24e+3
0.019
n=10e+3
0.04
n=13e+3
0.064
n=40e+3
0.058
n=33e+3
0.053
n=24e+3
0.072
n=9354
0.092
n=6917
0.081
n=5337
0.13
n=1580
yes no
@freakonometrics 95
96. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Effets croisés
On peut utiliser les arbres pour visualiser des possibles ef-
fets croisés entre deux variables continues
1 > tree=rpart (( nombre ==1)~ ageconducteur +agevehicule
,data=camping ,cp=7e -4)
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
0.00 0.05 0.10 0.15
20 30 40 50 60 70 80 90
010203040
Age du conducteur principal
Ageduvéhicule
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
0.00 0.05 0.10 0.15
20 30 40 50 60 70 80 90
010203040
Age du conducteur principal
Ageduvéhicule
@freakonometrics 96
97. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Méthodes de Bagging (ou ensachage)
Les arbres sont (relativement) peu robustes...
On peut construire plusieurs arbres de décision en ré-échantillonnant l’ensemble
d’apprentissage [boostrap], puis en construisant les arbres par une procédure de
consensus[aggregation] ou en moyennant les prédictions.
→ marche aussi pour des GLM (cf dernière section du cours) mais est très
populaire sur les arbbres Breiman (1996)
Le bagging permet de définir la notion de marge,
margei =
1
B
B
b=1
1(yi = yi) −
1
B
B
b=1
1(yi = yi)
Remarque La probabilité que la ligne i ne soit pas dans un échantillon est
(1 − n−1
)n
→ e−1
∼ 36.8%, cf ratio training / validation (2/3-1/3)
@freakonometrics 97
98. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Bagging
1 > library(ipred)
2 > bag=bagging (( nombre ==1)~ ageconducteur +
agevehicule ,data=camping)
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
0.00 0.05 0.10 0.15
20 30 40 50 60 70 80 90
010203040
Age du conducteur principal
Ageduvéhicule
@freakonometrics 98
99. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Les forêts aléatoires (Random Forest)
Générer des forêts en boostrappant puis en agrégeant pour obtenir une prévision
glboale est du bagging.
In the random forest algorithm, we combine Breiman’s bagging idea and the
random selection of features, introduced independently by Ho (1995)) and Amit
& Geman (1997))
Par défaut, on sélection
√
k variables explicatives.
1 > library( randomForest )
2 > rf= randomForest (( nombre ==1)~ ageconducteur +
agevehicule ,data=camping)
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
0.00 0.05 0.10 0.15
20 30 40 50 60 70 80 90
010203040
Age du conducteur principal
Ageduvéhicule
@freakonometrics 99
100. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Variable Importance
Étant donnée une forêt composée de M arbres, on pose
I(Xk) =
1
M m t∈Xk
Nt
N
∆I(t) où la première somme est sur tous les arbres, et la
seconde sur tous les noeuds splités suivant la variable Xk.
@freakonometrics 100
102. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Partial Response Plots
On peut aussi construire, pour toutes les variables continues des Partial Response
Plots,
x →
1
n
n
i=1
E[Y |Xk = x, Xi,(k) = xi,(k)]
1 > importanceOrder <- order(-RF$ importance)
2 > names <- rownames(RF$importance)[ importanceOrder
]
3 > for (name in names)
4 + partialPlot (RF , camping , eval(name), col="red",
main="", xlab=name)
@freakonometrics 102
103. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Gradient Boosting en Classification
Boosting is a machine learning ensemble meta-algorithm for reducing bias
primarily and also variance in supervised learning, and a family of machine
learning algorithms which convert weak learners to strong ones. (source:
Wikipedia)
Avec des notations très générales, on souhaite résoudre
m = argmin{E[ (Y, m(X))]}
pour une fonction de perte (loss function). Heuristiquement, on construit
itérativement des modèles sur les erreurs résiduelles
On ajuste un modèle sur y, m1(·) à partir de y et X, et on définit l’erreur
ε1 = y − m1(X). On ajuste un modèle sur ε1, m2(·) à partir de ε1 et X, et on
définit l’erreur ε2 = ε1 − m2(X), etc. Puis on pose
m(·) = m1(·)
∼y
+ m2(·)
∼ε1
+ m3(·)
∼ε2
+ · · · + mk(·)
∼εk−1
@freakonometrics 103
104. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
‘Gradient’ Boosting ?
Dans un modèle linéaire y − mk(X) est un résidu, qui correspond au gradient de
1
2
[y − m(x)]2
La descente de Gradient vient de l’expansion de Taylor
f(xk)
f,xk
∼ f(xk−1)
f,xk−1
+ (xk − xk−1)
α
f(xk−1)
f,xk−1
Mais là, ce que l’on considère, c’est
fk(x)
fk,x
∼ fk−1(x)
fk−1,x
+ (fk − fk−1)
β
?
fk−1, x
où ? pourrait être interprété comme un ‘gradient’.
@freakonometrics 104
105. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Boosting avec rétrécissement (shrinkage)
L’algorithme est ici
• on considère un modèle (simple) sur y, y = h1(x)
• on construit les résidus (avec un paramètre ν de shrinkage), ε1 = y − νh1(x)
à l’étape j,
• on considère un modèle (simple) sur εj, εj = hj(x)
• on construit les résidus εj+1 = εj − νhj(x)
et on boucle. Finalement
y =
M
j=1
νjhj(x)
@freakonometrics 105
106. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Boosting
Apprentissage avec des stumps (arbres)
1 > df$e <- df$y - mean(df$y)
2 > for(k in 1:1000){
3 + fit <- rpart(e ~ x,data=df)
4 + df$e <- df$y - v*predict(fit)
5 + YP <- cbind(YP ,v*predict(fit))
6 + }
7 > apply(YP ,1,sum)
@freakonometrics 106
107. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Boosting
Apprentissage avec des splines (linéaires)
1 > library( freeknotsplines )
2 > df$e <- df$y - mean(df$y)
3 > for(k in 1:1000){
4 + noeuds = freelsgen(df$x,df$e,degree =1, numknot =2)
5 + fit <- lm(e ~ bs(x,degree =1, knots=noeuds@optknot
,data=df)
6 + df$e <- df$y - v*predict(fit)
7 + YP <- cbind(YP ,v*predict(fit))
8 + }
9 > apply(YP ,1,sum)
la localisation des noeuds est ici optimisée
@freakonometrics 107
108. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Boosting for Classification
On cherche toujours m (·) = argmin{E[ (Y, m(X)]}. Classiquement, en machine
learning, y ∈ {−1, +1}, et on considère comme fonction de perte
(y, m(x)) = e−y·m(x)
on obtient l’algorithme dit AdaBoot, cf Freund & Schapire (1996).
Alors
P[Y = +1|X = x] =
1
1 + e2m (x)
qui rappelle la loi logistique... A l’étape k on résout
argmin
n
i=1
eyi·mk(xi)
ωi,k
·eyi·h(xi)
@freakonometrics 108
109. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Boosting
Apprentissage avec des stumps (arbres)
1 > library(dismo)
2 > library(gbm)
3 > fit <- gbm.step(data=camping , gbm.x=1, gbm.y=13,
family="bernoulli", tree.complexity =5,
learning.rate =0.001 , bag.fraction =0.5)
4 > predict(fit , type="response", n.trees =700)
20 30 40 50 60 70 80 90
0.000.050.100.15
Age du conducteur principal
@freakonometrics 109
110. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Boosting
Apprentissage avec des stumps (arbres)
1 > library(dismo)
2 > library(gbm)
3 > fit <- gbm.step(data=camping , gbm.x=c(1 ,7), gbm.
y=13, family="bernoulli", tree.complexity =5,
learning.rate =0.01 , bag.fraction =0.5)
4 > predict(fit , type="response", n.trees =400)
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
0.00 0.05 0.10 0.15
20 30 40 50 60 70 80 90
010203040
Age du conducteur principal
Ageduvéhicule
@freakonometrics 110
111. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Boosting
Apprentissage avec des stumps (arbres)
1 > library(dismo)
2 > library(gbm)
3 > fit <- gbm.step(data=camping , gbm.x=c(1 ,7), gbm.
y=13, family="bernoulli", tree.complexity =5,
learning.rate =0.001 , bag.fraction =0.5)
4 > predict(fit , type="response", n.trees =1500)
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
0.00 0.05 0.10 0.15
20 30 40 50 60 70 80 90
010203040
Age du conducteur principal
Ageduvéhicule
@freakonometrics 111
112. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Support Vector Machine
Les SVMs ont été développés dans les années 90 à partir de Vapnik & Lerner
(1963), cf Vailant (1984).
On suppose que les points sont linérement séparables, i.e.
il existe ω et b tels que
Y =
+1 if ωT
x + b > 0
−1 if ωT
x + b < 0
Problème: nombre infini de solutions, il faut en choisir
une bonne qui sépare les deux nuages autant que possible.
Remarque derrière l’idée de séparabilité se cache la dimension VC. Soit
H : {h : Rd
→ {−1, +1}}. Alors H est un shatter des points X si toutes
les dichotomies peuvent être obtenues.
E.g. avec trois point, toutes les configurations sont atteignables
@freakonometrics 112
113. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Support Vector Machine
q
q
q
q
q
q
q
q
q
q
q
q
q
q
q
q
q
q
q
q
q
q
q
q
Mais avec les quatre point ci-contre, non: plusieurs configuration ne
peuvent être obtenues (avec un séparateur linéaire)
@freakonometrics 113
114. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Support Vector Machine
La dimension de Vapnik (VC) est la taille du plus grand ensemble séparé
(shattered) de X.
En pratique, où est le plan optimal ?
La distance de x0 au plan ωT
x + b est
d(x0, Hω,b) =
ωT
x0 + b
ω
et le plan optimal (dans le cas séparable) est
argmin min
i=1,··· ,n
d(xi, Hω,b)
@freakonometrics 114
115. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Support Vector Machine
On définit vectors supports comme les observations telles
que
|ωT
xi + b| = 1
La marge est la distance des supports vecteurs au plan.
La distance des vecteurs supports à Hω,b est ω −1
, et la marge est 2 ω −1
.
−→ l’aglorithme va minimiser l’inverse des marges, sous contrainte que le plan
Hω,b sépare les points (ici ±1) i.e.
min
1
2
ωT
ω s.t. Yi(ωT
xi + b) ≥ 1, ∀i.
@freakonometrics 115
116. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Support Vector Machine
Problème difficile à résoudre (trop de contraintes: n)
−→ on va résoudre ce problème d’optimisation dans l’espace dual
Dans l’espace initial, on aurait
ω = αiYixi avec
i=1
αiYi = 0.
Dans l’espace dual, le programme s’écrit
max
i=1
αi −
1
2 i=1
αiαjYiYjxT
i xj s.t.
i=1
αiYi = 0.
qui peut s’écrire
min
α
1
2
αT
Qα − 1T
α s.c.
0 ≤ αi ∀i
yT
α = 0
où Q = [Qi,j] et Qi,j = yiyjxT
i xj.
@freakonometrics 116
117. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Support Vector Machine
Quid du cas non-séparable?
Ici on ne peut pas avoir yi(ωT
xi + b) ≥ 1 ∀i.
On introduit la notion de slack variables,
ωT
xi + b ≥ +1 − ξi lorsque yi = +1
ωT
xi + b ≤ −1 + ξi lorsque yi = −1
où ξi ≥ 0 ∀i.
On commet une erreur de classification lorsque ξi > 1.
L’idée est de résoudre
min
1
2
ωT
ω + C1T
1ξ>1 , au lieu de min
1
2
ωT
ω
@freakonometrics 117
121. Arthur CHARPENTIER - Actuariat de l’Assurance Non-Vie, # 2
Support Vector Machines
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
0.00 0.05 0.10 0.15
20 30 40 50 60 70 80 90
010203040
Age du conducteur principal
Ageduvéhicule
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
0.00 0.05 0.10 0.15
20 30 40 50 60 70 80 90
010203040
Age du conducteur principal
Ageduv?hicule
Remarque toutes ces méthodes de type apprentissage statistique sont très
sensibles aux tunning parameters.
@freakonometrics 121