IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Cours complet pour débutants pour apprendre la programmation en R


précédentsommairesuivant

4. Exemples résolus

Objectifs du chapitre

  • Mettre en pratique les connaissances acquises dans les chapitres précédents.
  • Tirer profit de l'arithmétique vectorielle de R pour effectuer des calculs complexes sans boucles.
  • Utiliser l'initialisation de vecteurs et leur indiçage de manière à réduire le temps de calcul.

Ce chapitre propose de faire le point sur les concepts étudiés jusqu'à maintenant par le biais de quelques exemples résolus. On y met particulièrement en évidence les avantages de l'approche vectorielle du langage R.

Les exemples font appel à quelques connaissances de base en mathématiques financières et en théorie des probabilités.

Énoncé du problème

On modélise la distance atteinte par le lancer du poids d'un adulte à l'aide d'une variable aléatoire kitxmlcodeinlinelatexdvpX \sim \mathrm{Pareto}(\alpha=20,\lambda=75)finkitxmlcodeinlinelatexdvp. On rappelle que la fonction de répartition de cette loi est :
kitxmlcodeinlinelatexdvpF_X(x) = 1-\left ( \frac{\lambda}{\lambda+x} \right )^\alphafinkitxmlcodeinlinelatexdvp
En compétition, les juges inscrivent un résultat seulement si le lancer dépasse la distance kitxmlcodeinlinelatexdvpdfinkitxmlcodeinlinelatexdvp La probabilité qu'un lancer dépasse la distance kitxmlcodeinlinelatexdvpe^dfinkitxmlcodeinlinelatexdvp sachant que ce lancer a dépassé la distance kitxmlcodeinlinelatexdvpdfinkitxmlcodeinlinelatexdvp est de 0 ,75. Calculer la constante kitxmlcodeinlinelatexdvpdfinkitxmlcodeinlinelatexdvp pour laquelle la relation précédente est vraie, autrement dit la valeur de kitxmlcodeinlinelatexdvpdfinkitxmlcodeinlinelatexdvp tel que

  kitxmlcodelatexdvpPr[X > e^d | X > d] = 0.75 \qquad (4.1)finkitxmlcodelatexdvp

4-1. Calcul de valeurs actuelles

La valeur actuelle d'une série de paiements kitxmlcodeinlinelatexdvpP_1, P_2, \dots, P_nfinkitxmlcodeinlinelatexdvp à la fin des années kitxmlcodeinlinelatexdvp1, 2, \dots, nfinkitxmlcodeinlinelatexdvp est

  kitxmlcodelatexdvp\sum_{j=1}^n \prod_{k=1}^j (1+i_k)^{-1}P_j \qquad (4.2)finkitxmlcodelatexdvp

où kitxmlcodeinlinelatexdvpi_kfinkitxmlcodeinlinelatexdvp est le taux d'intérêt effectif annuellement durant l'année kitxmlcodeinlinelatexdvpkfinkitxmlcodeinlinelatexdvp. Lorsque le taux d'intérêt est constant au cours des kitxmlcodeinlinelatexdvpnfinkitxmlcodeinlinelatexdvp années, cette formule se simplifie en

  kitxmlcodelatexdvp\sum_{j=1}^n (1+i)^{-1}P_j \qquad(4.3)finkitxmlcodelatexdvp

Un prêt est remboursé par une série de cinq paiements, le premier étant dû dans un an. On doit trouver le montant du prêt pour chacune des hypothèses ci-dessous.

  1. Paiement annuel de 1000, taux d'intérêt de 6 % effectif annuellement. Avec un paiement annuel et un taux d'intérêt constants, on utilise la formule (4.3) avec kitxmlcodeinlinelatexdvpP_j = P = 1000finkitxmlcodeinlinelatexdvp :

     
    Sélectionnez
    > 1000 * sum((1 + 0.06)^(-(1:5)))
    [1] 4212.364

    Remarquer comme l'expression R se lit exactement comme la formule mathématique. De plus, le terme constant 1000 est sorti de la somme pour réduire le nombre de multiplications de cinq à une seule.

  2. Paiements annuels de 500, 800, 900, 750 et 1000, taux d'intérêt de 6 % effectif annuellement.

    Les paiements annuels sont différents, mais le taux d'intérêt est toujours le même. La formule (4.3) s'applique donc directement :

     
    Sélectionnez
    > sum(c(500, 800, 900, 750, 1000) * (1 + 0.06)^(-(1:5)))
    [1] 3280.681
  3. Paiements annuels de 500, 800, 900, 750 et 1000, taux d'intérêt de 5 %, 6 %, 5.5 %, 6.5 % et 7 % effectifs annuellement.

Avec différents paiements annuels et des taux d'intérêt différents, il faut employer la formule (4.2). On obtient le résultat voulu sans aucune boucle en réalisant le produit cumulatif des taux d'intérêt avec la fonction cumprod :

 
Sélectionnez
> sum(c(500, 800, 900, 750, 1000) /
+     cumprod(1 + c(0.05, 0.06, 0.055, 0.065, 0.07)))
[1] 3308.521

4-2. Fonctions de masse de probabilité

On souhaite calculer toutes ou la majeure partie des probabilités de deux lois de probabilité, puis vérifier que la somme des probabilités est bien égale à 1.

Cet exemple est quelque peu artificiel dans la mesure où il existe dans R des fonctions internes pour calculer les principales caractéristiques des lois de probabilité les plus usuelles. Nous utiliserons d'ailleurs ces fonctions pour vérifier nos calculs.

  1. Calculer toutes les masses de probabilité de la distribution binomiale pour des valeurs des paramètres kitxmlcodeinlinelatexdvpnfinkitxmlcodeinlinelatexdvp et kitxmlcodeinlinelatexdvppfinkitxmlcodeinlinelatexdvp quelconques. La fonction de masse de probabilité de la binomiale est

    kitxmlcodeinlinelatexdvpf(x) = \binom{n}{x} p^x(1-p)^{n-x},\quad x = 0,\dots,nfinkitxmlcodeinlinelatexdvp

    Soit n = 10 et p = 0.8. Les coefficients binomiaux sont calculés avec la fonction choose :

     
    Sélectionnez
    1.
    2.
    3.
    4.
    5.
    6.
    7.
    8.
    > n <- 10
    > p <- 0.8
    > x <- 0:n
    > choose(n, x) * p^x * (1 - p)^rev(x)
    [1]  0.0000001024 0.0000040960 0.0000737280
    [4]  0.0007864320 0.0055050240 0.0264241152
    [7]  0.0880803840 0.2013265920 0.3019898880
    [10] 0.2684354560 0.1073741824
    

    On vérifie les réponses obtenues avec la fonction interne dbinom :

     
    Sélectionnez
    1.
    2.
    3.
    4.
    5.
    > dbinom(x, n, prob = 0.8)
    [1]  0.0000001024 0.0000040960 0.0000737280
    [4]  0.0007864320 0.0055050240 0.0264241152
    [7]  0.0880803840 0.2013265920 0.3019898880
    [10] 0.2684354560 0.1073741824
    

    On vérifie enfin que les probabilités somment à 1 :

     
    Sélectionnez
    > sum(choose(n, x) * p^x * (1 - p)^rev(x))
    [1] 1
  2. Calculer la majeure partie des masses de probabilité de la distribution de Poisson, dont la fonction de masse de probabilité est
kitxmlcodelatexdvpf(x) = \frac{\lambda^xe^{-\lambda}}{x!}, \quad x = 0,1,\dots,finkitxmlcodelatexdvp

où kitxmlcodeinlinelatexdvpx! = x(x-1) \cdots 2 \cdot 1finkitxmlcodeinlinelatexdvp.

La loi de Poisson ayant un support infini, on calcule les probabilités en kitxmlcodeinlinelatexdvpx = 0, 1, \dots, 10finkitxmlcodeinlinelatexdvp seulement avec kitxmlcodeinlinelatexdvp\lambda = 5finkitxmlcodeinlinelatexdvp. On calcule les factorielles avec la fonction factorial. On notera au passage que factorial(x) == gamma(x + 1), où la fonction R gamma calcule les valeurs de la fonction mathématique du même nom

kitxmlcodelatexdvp\Gamma(n) = \int_0^\infty x^{n-1}e^{-x}dx = (n-1)\Gamma(n-1)finkitxmlcodelatexdvp

avec kitxmlcodeinlinelatexdvp\Gamma(0) = 1finkitxmlcodeinlinelatexdvp. Pour kitxmlcodeinlinelatexdvpnfinkitxmlcodeinlinelatexdvp entier, on a donc kitxmlcodeinlinelatexdvp\Gamma(n) = (n-1)!finkitxmlcodeinlinelatexdvp.

 
Sélectionnez
1.
2.
3.
4.
5.
6.
7.
> lambda <- 5
> x <- 0:10
> exp(-lambda) * (lambda^x / factorial(x))
[1]  0.006737947 0.033689735 0.084224337
[4]  0.140373896 0.175467370 0.175467370
[7]  0.146222808 0.104444863 0.065278039
[10] 0.036265577 0.018132789

Vérification avec la fonction interne dpois :

 
Sélectionnez
1.
2.
3.
4.
5.
> dpois(x, lambda)
[1]  0.006737947 0.033689735 0.084224337
[4]  0.140373896 0.175467370 0.175467370
[7]  0.146222808 0.104444863 0.065278039
[10] 0.036265577 0.018132789

Pour vérifier que les probabilités somment à 1, il faudra d'abord tronquer le support infini de la Poisson à une « grande » valeur. Ici, 170 est suffisamment éloigné de la moyenne de la distribution, 5. Remarquer que le produit par kitxmlcodeinlinelatexdvpe^{-\lambda}finkitxmlcodeinlinelatexdvp est placé à l'extérieur de la somme pour ainsi faire un seul produit plutôt que 171.

 
Sélectionnez
1.
2.
3.
> x <- 0:170
> exp(-lambda) * sum((lambda^x / factorial(x)))
[1] 1

4-3. Fonction de répartition de la loi gamma

La loi gamma est fréquemment employée pour modéliser des événements ne pouvant prendre que des valeurs positives et pour lesquels les petites valeurs sont plus fréquentes que les grandes. Par exemple, on utilise parfois la loi gamma en sciences actuarielles pour la modélisation des montants de sinistres. Nous utiliserons la paramétrisation où la fonction de densité de probabilité est

kitxmlcodelatexdvpf(x)= \frac{\lambda^\alpha}{\Gamma(\alpha)}x^{\alpha-1}e^{-\lambda\alpha}, \quad x > 0,\qquad(4.4)finkitxmlcodelatexdvp

où kitxmlcodeinlinelatexdvp\Gamma(\cdot)finkitxmlcodeinlinelatexdvp est la fonction gamma définie dans l'exemple précédent.

Il n'existe pas de formule explicite de la fonction de répartition de la loi gamma. Néanmoins, la valeur de la fonction de répartition d'une loi gamma de paramètre kitxmlcodeinlinelatexdvp\alphafinkitxmlcodeinlinelatexdvp entier et kitxmlcodeinlinelatexdvp\lambda = 1finkitxmlcodeinlinelatexdvp peut être obtenue à partir de la formule

  kitxmlcodelatexdvpF(x;\alpha,1) = 1-e^{-x}\sum_{j=0}^{\alpha-1}\frac{x^j}{j!}\qquad (4.5)finkitxmlcodelatexdvp
  1. Évaluer kitxmlcodeinlinelatexdvpF(4; 5, 1)finkitxmlcodeinlinelatexdvp.

    Cet exercice est simple puisqu'il s'agit de calculer une seule valeur de la fonction de répartition avec un paramètre kitxmlcodeinlinelatexdvp\alphafinkitxmlcodeinlinelatexdvp fixe. Par une application directe de (4.5), on a :

     
    Sélectionnez
    1.
    2.
    3.
    4.
    > alpha <- 5
    > x <- 4
    > 1 - exp(-x) * sum(x^(0:(alpha - 1))/gamma(1:alpha))
    [1] 0.3711631
    

    Vérification avec la fonction interne pgamma :

     
    Sélectionnez
    > pgamma(x, alpha)
    [1] 0.3711631

    On peut éviter de générer essentiellement la même suite de nombres à deux reprises en ayant recours à une variable intermédiaire. Au risque de rendre le code un peu moins lisible (mais plus compact !), l'affectation et le calcul final peuvent même se faire dans une seule expression.

     
    Sélectionnez
    > 1 - exp(-x) * sum(x^(-1 + (j <- 1:alpha))/gamma(j))
    [1] 0.3711631
  2. Évaluer kitxmlcodeinlinelatexdvpF(x; 5, 1)finkitxmlcodeinlinelatexdvp pour kitxmlcodeinlinelatexdvpx = 2,3\dots, 10finkitxmlcodeinlinelatexdvp en une seule expression.

Cet exercice est beaucoup plus compliqué qu'il n'y paraît au premier abord. Ici, la valeur de kitxmlcodeinlinelatexdvp\alphafinkitxmlcodeinlinelatexdvp demeure fixe, mais on doit calculer, en une seule expression, la valeur de la fonction de répartition en plusieurs points. Or, cela exige de faire d'un coup le calcul kitxmlcodeinlinelatexdvpx^jfinkitxmlcodeinlinelatexdvp pour plusieurs valeurs de kitxmlcodeinlinelatexdvpxfinkitxmlcodeinlinelatexdvp et plusieurs valeurs de kitxmlcodeinlinelatexdvpjfinkitxmlcodeinlinelatexdvp. C'est un travail pour la fonction outer :

 
Sélectionnez
1.
2.
3.
4.
5.
6.
> x <- 2:10
> 1 - exp(-x) * colSums(t(outer(x, 0:(alpha-1), "^")) /
+ gamma(1:alpha))
[1] 0.05265302 0.18473676 0.37116306 0.55950671
[5] 0.71494350 0.82700839 0.90036760 0.94503636
[9] 0.97074731

Vérification avec la fonction interne pgamma :

 
Sélectionnez
1.
2.
3.
4.
> pgamma(x, alpha)
[1] 0.05265302 0.18473676 0.37116306 0.55950671
[5] 0.71494350 0.82700839 0.90036760 0.94503636
[9] 0.97074731

Il est laissé en exercice de déterminer pourquoi la transposée est nécessaire dans l'expression ci-dessus. Exécuter l'expression étape par étape, de l'intérieur vers l'extérieur, pour mieux comprendre comment on arrive à faire le calcul en (4.5).

Simplifions déjà l'équation à résoudre. On a

kitxmlcodelatexdvp\begin{matrix} Pr[X>e^d|X>d] & = \frac{Pr[X>e^d \cap X>d]}{Pr[X>d]}\\ & = \frac{Pr[X>e^d]}{Pr[X>d]}\\ & = \frac{[\lambda/(\lambda+e^d)]^\alpha}{[\lambda/(\lambda+d)]^\alpha}\\ & = \left(\frac{\lambda+d}{\lambda+e^d} \right )^\alpha \end{matrix}finkitxmlcodelatexdvp

On cherche donc à résoudre kitxmlcodeinlinelatexdvpdfinkitxmlcodeinlinelatexdvp pour l'équation

kitxmlcodelatexdvp\left(\frac{\lambda+d}{\lambda+e^d} \right )^\alpha = 0.75finkitxmlcodelatexdvp

Celle-ci n'admet pas de solution explicite.

4-4. Algorithme du point fixe

Trouver la racine d'une fonction kitxmlcodeinlinelatexdvpgfinkitxmlcodeinlinelatexdvp — c'est-à-dire le point kitxmlcodeinlinelatexdvpxfinkitxmlcodeinlinelatexdvp où kitxmlcodeinlinelatexdvpg(x) = 0finkitxmlcodeinlinelatexdvp — est un problème classique en mathématiques. Très souvent, il est possible de reformuler le problème de façon à plutôt chercher le point kitxmlcodeinlinelatexdvpxfinkitxmlcodeinlinelatexdvp où kitxmlcodeinlinelatexdvpf(x) = xfinkitxmlcodeinlinelatexdvp. La solution d'un tel problème est appelée point fixe.

L'algorithme du calcul numérique du point fixe d'une fonction kitxmlcodeinlinelatexdvpf(x)finkitxmlcodeinlinelatexdvp est très simple :

  1. Choisir une valeur de départ kitxmlcodeinlinelatexdvpx_0finkitxmlcodeinlinelatexdvp ;
  2. Calculer kitxmlcodeinlinelatexdvpx_n = f(x_{n-1})finkitxmlcodeinlinelatexdvp pour kitxmlcodeinlinelatexdvpn = 1, 2,\dotsfinkitxmlcodeinlinelatexdvp ;
  3. Répéter l'étape 2 jusqu'à ce que kitxmlcodeinlinelatexdvp|x_n - x_{n-1}| < \epsilonfinkitxmlcodeinlinelatexdvp ou kitxmlcodeinlinelatexdvp\frac{|x_n - x_{n-1}|}{|x_{n-1}|} < \epsilonfinkitxmlcodeinlinelatexdvp.

On doit trouver, à l'aide de la méthode du point fixe, la valeur de telle que

kitxmlcodelatexdvpa_{\overline{10}|} = \frac{1-(1+i)^{-1}}{i} = 8.21finkitxmlcodelatexdvp

c'est-à-dire le taux de rendement d'une série de 10 versements de 1 pour laquelle on a payé un montant de 8,21.

Puisque, d'une part, nous ignorons combien de fois la procédure itérative devra être répétée et que, d'autre part, il faut exécuter la procédure au moins une fois, le choix logique pour la structure de contrôle à utiliser dans cette procédure itérative est repeat. De plus, il faut comparer deux valeurs successives du taux d'intérêt, nous devrons donc avoir recours à deux variables.

On a :

 
Sélectionnez
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
> i <- 0.05
> repeat
+ {
+ it <- i
+ i <- (1 - (1 + it)^(-10))/8.21
+ if (abs(i - it)/it < 1E-10)
+ break
+ }
> i
[1] 0.03756777

Vérification :

 
Sélectionnez
> (1 - (1 + i)^(-10))/i
[1] 8.21

Nous verrons au chapitre 5Fonctions définies par l'usager comment créer une fonction à partir de ce code.

L'algorithme du point fixe peut nous permettre de résoudre numériquement l'équation

kitxmlcodelatexdvp\left( \frac{\lambda+d}{\lambda+e^d} \right)^\alpha = 0.75finkitxmlcodelatexdvp

Pour utiliser l'algorithme, il faut réécrire l'équation sous une forme où l'inconnue kitxmlcodeinlinelatexdvpdfinkitxmlcodeinlinelatexdvp se trouve de part et d'autre de l'égalité. En isolant, pour des raisons numériques, le kitxmlcodeinlinelatexdvpdfinkitxmlcodeinlinelatexdvp se trouvant au dénominateur de l'équation ci-dessus, on obtient :

kitxmlcodelatexdvpd = \log\left[ \lambda(1-0.75^{1/\alpha}) +d \right ] - \frac{\log 0.75}{\alpha}finkitxmlcodelatexdvp

4-5. Suite de Fibonacci

La suite de Fibonacci est une suite de nombres entiers très connue. Les deux premiers termes de la suite sont 0 et 1 et tous les autres sont la somme des deux termes précédents. Mathématiquement, les valeurs de la suite de Fibonacci sont données par la fonction

kitxmlcodelatexdvp\begin{align} f(0) = & 0 \\ f(1) = & 1 \\ f(n) = & f(n-1) + f(n-2),\ n\ge2 \end{align}finkitxmlcodelatexdvp

Le quotient de deux termes successifs converge vers kitxmlcodeinlinelatexdvp(1+\sqrt{5})/2finkitxmlcodeinlinelatexdvp, le nombre d'or.

On veut calculer les kitxmlcodeinlinelatexdvpn>2finkitxmlcodeinlinelatexdvp premiers termes de la suite de Fibonacci. Ce problème étant intrinsèquement récursif, nous devons utiliser une boucle.

Voici une première solution pour kitxmlcodeinlinelatexdvpn=10finkitxmlcodeinlinelatexdvp :

 
Sélectionnez
1.
2.
3.
4.
5.
> n <- 10
> x <- c(0, 1)
> for (i in 3:n) x[i] <- x[i - 1] + x[i - 2]
> x
[1] 0 1 1 2 3 5 8 13 21 34

La procédure ci-dessus a un gros défaut : la taille de l'objet x est constamment augmentée pour stocker une nouvelle valeur de la suite. Tentons une analogie alimentaire pour cette manière de procéder. Pour ranger des biscuits frais sortis du four, on prend un premier biscuit et on le range dans un plat ne pouvant contenir qu'un seul biscuit. Arrivé au second biscuit, on constate que le contenant n'est pas assez grand, alors on sort un plat pouvant contenir deux biscuits, on change le premier biscuit de plat et on y range aussi le second biscuit. Arrivé au troisième biscuit, le petit manège recommence, et ainsi de suite jusqu'à ce que le plateau de biscuits soit épuisé. C'est ce que nous nommerons, non sans un sourire en coin, le Syndrôme de la plaque à biscuits™.

Le manège décrit ci-dessus se reproduit à l'identique dans la mémoire de l'ordinateur, l'odeur des bons biscuits chauds en moins. En effet, l'ordinateur doit constamment allouer de la nouvelle mémoire et déplacer les termes déjà sauvegardés au fur et à mesure que le vecteur x grandit. On aura compris qu'une telle façon de faire est à éviter absolument lorsque c'est possible — et ça l'est la plupart du temps.

Quand on sait quelle sera la longueur d'un objet, comme c'est le cas dans cet exemple, il vaut mieux créer un contenant vide de la bonne longueur et le remplir par la suite. Cela nous donne une autre façon de calculer la suite de Fibonacci :

 
Sélectionnez
1.
2.
3.
4.
5.
6.
> n <- 10
> x <- numeric(n) # création du contenant
> x[2] <- 1 # x[1] vaut déjà 0
> for (i in 3:n) x[i] <- x[i - 1] + x[i - 2]
> x
[1] 0 1 1 2 3 5 8 13 21 34

Dans le code informatique du chapitre 5Fonctions définies par l'usager, nous composerons des fonctions avec ces deux solutions et nous comparerons les temps de calcul.

Solution du problème

On résout le problème par la méthode du point fixe en procédant de la même façon qu'à la section 4.4Algorithme du point fixe. On prend toutefois soin de modifier la deuxième ligne à l'intérieur de la boucle repeat :

 
Sélectionnez
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
> p <- 0.75
> alpha <- 20
> lambda <- 75
> d <- 2
> repeat
+ {
+      dt <- d
+      d <- log(lambda * (1 - p^(1/alpha)) + d) - log(p)/alpha
+      if (abs(d - dt)/dt < 1E-10)
+          break
+ }
> d
[1] 0.4012012

Vérifions que l'équation de départ (4.1) est vraie :

 
Sélectionnez
> ((lambda + d) / (lambda + exp(d)))^alpha
[1] 0.75

Le package actuar fournit une fonction ppareto pour calculer la fonction de répartition de la loi de Pareto. (Consulter l'annexe DInstallation de packages dans R pour installer le package à partir du site CRAN.) La fonction permet de vérifier directement l'équation de départ :

 
Sélectionnez
1.
2.
3.
4.
> library(actuar)
> ppareto(exp(d), alpha, lambda, lower.tail = FALSE) /
+     ppareto(d, alpha, lambda, lower.tail = FALSE)
[1] 0.75

4-6. Exercices

Dans chacun des exercices ci-dessous, écrire une expression R pour faire le calcul demandé. Parce qu'elles ne sont pas nécessaires, il est interdit d'utiliser des boucles.

4.1 (solution) Calculer la valeur actuelle d'une série de paiements fournie dans un vecteur P en utilisant les taux d'intérêt annuels d'un vecteur i.

4.2 (solution) Étant donné un vecteur d'observations kitxmlcodeinlinelatexdvpx = (x_1,\dots,x_n)finkitxmlcodeinlinelatexdvp et un vecteur de poids correspondants kitxmlcodeinlinelatexdvpw = (w_1,\dots,w_n)finkitxmlcodeinlinelatexdvp, calculer la moyenne pondérée des observations,

kitxmlcodelatexdvp\sum{i=1}^n \frac{w_i}{w_\Sigma}x_ifinkitxmlcodelatexdvp

où kitxmlcodeinlinelatexdvpw_\Sigma = \sum_{i=1}^n w_ifinkitxmlcodeinlinelatexdvp. Tester l'expression avec les vecteurs de données

  • x = (7 , 13 , 3 , 8 , 12 , 12 , 20 , 11)

et

  • w = (0 ,15 , 0 ,04 , 0 ,05 , 0 ,06 , 0 ,17 , 0 ,16 , 0 ,11 , 0 ,09).

4.3 (solution) Soit un vecteur d'observations kitxmlcodeinlinelatexdvpx = (x_1,\dots,x_n)finkitxmlcodeinlinelatexdvp. Calculer la moyenne harmonique de ce vecteur, définie comme

kitxmlcodelatexdvp\frac{n}{\frac{1}{x_1}+\dots+\frac{1}{x_n}}finkitxmlcodelatexdvp

Tester l'expression avec les valeurs de l'exercice 4.2.

4.4 (solution) Calculer la fonction de répartition en kitxmlcodeinlinelatexdvpx=5finkitxmlcodeinlinelatexdvp d'une loi de Poisson avec paramètre kitxmlcodeinlinelatexdvp\lambda=2finkitxmlcodeinlinelatexdvp, qui est donnée par

kitxmlcodelatexdvp\sum_{k=0}^5\frac{2^ke^{-2}}{k!}finkitxmlcodelatexdvp

où kitxmlcodeinlinelatexdvpk! = 1\cdot2\cdots kfinkitxmlcodeinlinelatexdvp.

4.5 (solution) a) Calculer l'espérance d'une variable aléatoire kitxmlcodeinlinelatexdvpXfinkitxmlcodeinlinelatexdvp dont le support est kitxmlcodeinlinelatexdvpx = 1,10,100,\dots,1\ 000\ 000finkitxmlcodeinlinelatexdvp et les probabilités correspondantes sont kitxmlcodeinlinelatexdvp\frac{1}{28},\frac{2}{28},\dots,\frac{7}{28}finkitxmlcodeinlinelatexdvp, dans l'ordre.

b) Calculer la variance de la variable aléatoire kitxmlcodeinlinelatexdvpXfinkitxmlcodeinlinelatexdvp définie en a).

4.6 (solution) Calculer le taux d'intérêt nominal composé quatre fois par année, kitxmlcodeinlinelatexdvpi^{(4)}finkitxmlcodeinlinelatexdvp, équivalent à un taux de kitxmlcodeinlinelatexdvpifinkitxmlcodeinlinelatexdvp = 6 % effectif annuellement.

4.7 (solution) La valeur actuelle d'une série de paiements de fin d'année à un taux d'intérêt kitxmlcodeinlinelatexdvpifinkitxmlcodeinlinelatexdvp effectif annuellement est

kitxmlcodelatexdvpa_{\overline{n}|} = v + v^2 + \cdots + v^n = \frac{1-v^n}{i}finkitxmlcodelatexdvp

où kitxmlcodeinlinelatexdvpv = (1+i)^{-1}finkitxmlcodeinlinelatexdvp. Calculer en une seule expression, toujours sans boucle, un tableau des valeurs actuelles de séries de kitxmlcodeinlinelatexdvpn = 1,2,\dots,10finkitxmlcodeinlinelatexdvp paiements à chacun des taux d'intérêt effectifs annuellement kitxmlcodeinlinelatexdvpi = 0.05,0.06,\dots,0.10finkitxmlcodeinlinelatexdvp.

4.8 (solution) Calculer la valeur actuelle d'une annuité croissante de 1 $ payable annuellement en début d'année pendant dix ans si le taux d'actualisation est de 6 %. Cette valeur actuelle est donnée par

kitxmlcodelatexdvpI\ddot{a}_{\overline{10}|} = \sum_{k=1}^{10}kv^{k-1}finkitxmlcodelatexdvp

toujours avec kitxmlcodeinlinelatexdvpv = (1+i)^{-1}finkitxmlcodeinlinelatexdvp.

4.9 (solution) Calculer la valeur actuelle de la suite de paiements 1, 2, 2, 3, 3, 3, 4, 4, 4, 4 si les paiements sont effectués en fin d'année et que le taux d'actualisation est de 7 %.

4.10 (solution) Calculer la valeur actuelle de la suite de paiements de l'exercice 4.9 en supposant que le taux d'intérêt d'actualisation alterne successivement entre 5 % et 8 % chaque année, c'est-à-dire que le taux d'intérêt est de 5 %, 8 %, 5 %, 8 %, etc.


précédentsommairesuivant

Licence Creative Commons
Le contenu de cet article est rédigé par Vincent Goulet et est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d'Utilisation Commerciale - Partage dans les Mêmes Conditions 3.0 non transposé.
Les logos Developpez.com, en-tête, pied de page, css, et look & feel de l'article sont Copyright © 2018 Developpez.com.