Exercices R : Variance et Fonctions de Probabilité

1

La fonction var calcule l’estimateur sans biais de la variance d’une population à partir de l’échantillon donné en argument. Écrire une fonction variance qui calculera l’estimateur biaisé ou sans biais selon que l’argument biased sera TRUE ou FALSE, respectivement. Le comportement par défaut de variance devrait être le même que celui de var. L’estimateur sans biais de la variance à partir d’un échantillon \(X_1, ..., X_n\) est

\[ S_{n-1}^2 = \frac{1}{n-1}\sum_{i=1}^{n}(X_i - \bar{X})^2, \]

alors que l’estimateur biaisé est

\[ S_n^2 = \frac{1}{n}\sum_{i=1}^{n}(X_i - \bar{X})^2, \]

où \(\bar{X} = n^{-1}(X_1 + ... + X_n)\).

2

Écrire une fonction matrix2 qui, contrairement à la fonction matrix, remplira par défaut la matrice par ligne. La fonction matrix2 ne doit pas utiliser matrix. Les arguments de la fonction matrix2 seront les mêmes que ceux de matrix, sauf que l’argument byrow sera remplacé par bycol.

3

Écrire une fonction phi servant à calculer la fonction de densité de probabilité d’une loi normale centrée réduite, soit

\[ \phi(x) = \frac{1}{\sqrt{2\pi}}e^{-x^2/2}, \quad -\infty < x < \infty. \]

La fonction devrait prendre en argument un vecteur de valeurs de \(x\). Comparer les résultats avec ceux de la fonction dnorm.

Explication des Fonctions R

Fonction dim()

La fonction dim() est utilisée pour obtenir ou définir la dimension d'un objet comme une matrice ou un tableau.

Exemple :

m <- matrix(1:6, nrow = 2, ncol = 3)
dim(m)
Résultat : [1] 2 3

Fonction rep()

La fonction rep() permet de répéter les éléments d'un vecteur un certain nombre de fois.

Exemple :

rep(1:3, times = 2)
Résultat : [1] 1 2 3 1 2 3

Fonction dimnames()

La fonction dimnames() attribue ou obtient les noms des dimensions d'un objet comme une matrice.

Exemple :

dimnames(m) <- list(c("Row1", "Row2"), c("Col1", "Col2", "Col3"))
dimnames(m)
Résultat : [[1]] "Row1" "Row2" [[2]] "Col1" "Col2" "Col3"

Fonction exp()

La fonction exp() calcule l'exponentielle de chaque élément d'un vecteur ou d'une matrice.

Exemple :

exp(1)
Résultat : [1] 2.718282

Fonction sqrt()

La fonction sqrt() calcule la racine carrée de chaque élément d'un vecteur ou d'une matrice.

Exemple :

sqrt(4)
Résultat : [1] 2

Fonction cumprod()

La fonction cumprod() calcule le produit cumulatif des éléments d'un vecteur.

Exemple :

cumprod(1:4)
Résultat : [1] 1 2 6 24

Exercices R : Fonction Phi et Produits Matriciels

4

Écrire une fonction Phi servant à calculer la fonction de répartition d’une loi normale centrée réduite, soit

\[ \Phi(x) = \int_{-\infty}^{x} \frac{1}{\sqrt{2\pi}} e^{-y^2/2} \, dy, \quad -\infty < x < \infty. \]

Supposer, pour le moment, que \(x \geq 0\). L’évaluation numérique de l’intégrale ci-dessus peut se faire avec l’identité

\[ \Phi(x) = \frac{1}{2} + \phi(x) \sum_{n=0}^{\infty} \frac{x^{2n+1}}{1 \cdot 3 \cdot 5 \cdots (2n+1)}, \quad x \geq 0. \]

Utiliser la fonction phi de l'exercice 5.3 et tronquer la somme infinie à une grande valeur, 50 par exemple. La fonction ne doit pas utiliser de boucles, mais peut ne prendre qu’une seule valeur de x à la fois. Comparer les résultats avec ceux de la fonction pnorm.

5

Modifier la fonction Phi de l'exercice 5.4 afin qu’elle admette des valeurs de \(x\) négatives. Lorsque \(x < 0\), \(\Phi(x) = 1 - \Phi(-x)\). La solution simple consiste à utiliser une structure de contrôle if ... else, mais les curieux chercheront à s’en passer.

6

Généraliser maintenant la fonction de l'exercice 5.5 pour qu’elle prenne en argument un vecteur de valeurs de x. Ne pas utiliser de boucle. Comparer les résultats avec ceux de la fonction pnorm.

7

Sans utiliser l’opérateur %*%, écrire une fonction prod.mat qui effectuera le produit matriciel de deux matrices seulement si les dimensions de celles-ci le permettent. Cette fonction devra avoir deux arguments (mat1 et mat2) et devra tout d’abord vérifier si le produit matriciel est possible. Si celui-ci est impossible, la fonction retournera un message d’erreur.

Utiliser une structure de contrôle if ... else et deux boucles.

Utiliser une structure de contrôle if ... else et une seule boucle. Dans chaque cas, comparer le résultat avec l’opérateur %*%.

Aucune note. Soyez le premier à attribuer une note !

Ajouter un commentaire

Anti-spam