Le but ici est de se familliariser avec le language R, et la gestion de base de données. techniquement :
R est un language de programmation qui permet de gérer des bases existantes mais aussi d’en créer. On dit qu’il est orienter “objet”, c’est à dire que l’on va allouer des nom à chaque objet que l’on créer. Lancer les instruction simples suivantes :
A=3
B=2
A
B
A+B
C = A-B
C
A*C
A/B
A^2
les resultats, si besoin sont les suivants :
[1] 3
[1] 2
[1] 5
[1] 1
[1] 3
[1] 1.5
[1] 9
Si vous avez compris le concept d’objet, il faut comprendre ensuite que R peut gérer à très grand combre d’ojet complexe. Nous allons en voir 2 : les vecteurs et les dataframe (des table structurées)
1.1 Les vecteurs
Un vecteurs est un ensemble de chiffres alloué à un seul objet. Pour en créer un on introduit la commande c()
. Voici un exemple :
v1 = c(1,2,3,4,5)
v2 = c(1,1,1,1,1)
On peut évidement faire des calculs simples. Exercice :
v1 + v2
[1] 2 3 4 5 6
v1-v2
[1] 0 1 2 3 4
v1*A
[1] 3 6 9 12 15
v3 = v1+v2
v4 = v3*B
v4
[1] 4 6 8 10 12
J’éspère que vous avez compris la logique. On va réaliser des calculs financiers, qui vous aiderons à faire vos TD sous R plutôt que sous Excel.
Exercice 1
On considère 2 titre financiers W et RF, dont les rentabilités sont les suivantes :
Créer les vecteurs W et RF puis :
Elements de réponse. Le but étant de comprendre comment programmer avec des vecteurs et aller plus vite.
# On créer des vecteurs :
W = c(0.02, -0.04, 0.06, 0.01)
RF = 0.005
# vous pouvez appliquer directement la formule vue en cours en temps discret :
(1.02)*(0.96)*(1.06)*(1.01)
# ou pour avoir la rentabilité moyenne :
((1.02)*(0.96)*(1.06)*(1.01))^(1/4) - 1
#Cependant, on peut raccourcir le travail on créant des vecteurs. Voici un exemple :
W1 = 1+W
W1
W11 = prod(W1)
W11
#ou carrément :
prod(1+W)
#ou encore :
W2 = prod(1+W)^(1/4)-1
ra = (1+W2)^4
W2
ra
Commenter les résultats et faites le reste de l’exercice.
1.2 Opération sur vecteurs
R est donc aussi une puissante calculatrice. Tout les opérateurs classiques sont disponibles. Il existe également des fonction qui permettent d’extraires des informations sur les vecteurs.
Opération
lancer les opérations suivantes et commentez :
##En utilisant le vecteurs W, on peut faire les opérations suivantes :
sum(W)
cumsum(W)
cumprod(1+W)
diff(W)
(W)^2
W**2
log(1+W)
exp(W)
diff(log(1+W))
Exercice 2
Soit un vecteur de prix mensuel P : c(10, 11, 9.5, 10.5, 12, 11.7, 10.8, 12, 13.1, 14,12.2, 10)
. Calculer averc le code le plus court possible (vous avez le droit à plusieurs essaie) les éléments suivants :
Information sur les vecteurs
Evidement, on peut extraire les information du vecteur analysé : les statistiques desciptives mais aussi leurs coordonnées.
P
mean(P)
var(P)
sd(P)
median(P)
quantile(P,0.25)
quantile(P,0.75)
max(P)
min(P)
range(P)
length(P)
summary(P)
Un vecteur, c’est aussi un ensemble de données ordonnées. Dans l’exemple de P, sa taille est de 12. On peut donc chercher les valeurs selon les coordonnées, par la notation P[i]
i étant la coordonnées spécifique à la valeurs. Ainsi, si je veux la 7^e valeur de P, le code est le suivant : P[7]
. Voici quelques exemple à interpréter :
P
P[2]
P[3:9]
P[-2]
n=12
P[2:n]
P[2:(n-1)]
P[-(2:5)]
P[c(2,4,6,8,10)]
P[-c(7,11,12)]
quelques raccourcis pour la création de vecteurs
Enfin, il existe des fonction génériques qui peremettent de créer rapidement des vecteurs.
la fonction rep pour replicate :
T1 = rep(1,4)
T2 = rep(2,4)
T1;T2
Trim = rep(1:4, each=4)
Trim
lettre = c("A","B","C","D")
rep(lettre, each=4)
Créer une sequence de chiffre (ou de valeurs)
seq(from = 0, to = 12, by = 2)
seq(0,12,2)
seq(1,12,1)
c(1:12)
seq(0,100,25)
seq(as.Date("2000/1/31"), by = "month", length.out = 12)
Exercice 3
En reprenant le vecteur de prix P, calculer :
P
#Pour le calcul des rentabilité en temps discret et continu, on êut le faire de deux manière.
#Avec les coordonnées :
(P[2:12]-P[1:11])/P[1:11]
log(P[2:12]/P[1:11])
# De façon plus rapide :
diff(P)
P[-12]
Rt = diff(P)/P[-12];Rt
rt = diff(log(P));rt
#rentabilité annuelle :
#On peut les calculer avec les coordoonées, ou la différence entre le 1er et le second mois :
RAnn = (P[12] - P[1])/P[1];RAnn
#Avec les rentabilités simples :
prod(1+Rt)-1
#Avec les rentabilités continue :
sum(rt)
#rentabilités mensuelle moyenne :
(prod(1+Rt))^(1/12) - 1
mean(rt)
mean(rt)^12
Avec les onglet “Environement” puis “Import Dataset”, importer dans RStudio la base de données msft (Microsoft). Suivez le guide et commenter. Vous devrez obtenir la table suivante :
Interprétez ce tableau. On va travailler avec les données en clotûre. Pour ce faire, on va simplifier le tableau. Les éléments de programation sont les suivantes.
class(msft)
[1] "tbl_df" "tbl" "data.frame"
class(msft$Date)
[1] "Date"
head(msft$Date)
[1] "2016-09-28" "2016-09-27" "2016-09-26" "2016-09-23" "2016-09-22" "2016-09-21"
head(msft$Close)
[1] 58.03 57.95 56.90 57.43 57.82 57.76