Exercices-Réponses#

Q1#

Faites les étapes suivantes:

  • lire les données à partir de l’url donnes_demo (3 pts)

  • réer une fonction qui calcule l’âge de chaque client en date du premier jours du mois courant dans une nouvelle variable d’aun

  • Créer un graphique du type Bar Chart sur le âge des clients. Par ce graphique, on verra facilement le nombre d’assurés par catégorie d’âge (3 pts)

Votre graphique contient les éléments suivants: * Un titre (1 pts) * Une étiquette de l’axe des \(x\) (âge des assurés) (1 pts) * Une étiquette de l’axe des \(y\) (nombre d’assurés) (1 pts)

a<-read.csv("https://raw.githubusercontent.com/nmeraihi/data/master/1000_HF.csv")
head(a)
A data.frame: 6 × 8
first_namelast_namebirth_dateaddressjobprovincesexId
<chr><chr><chr><chr><chr><chr><chr><int>
1Anaïs Chevallier1944-08-0687930 Justin Inlet Chargé de recherche en acoustique musicaleNew Brunswick F201601
2ChristineLeveque 1951-01-021792 Lauren Glens Secrétaire juridique New Brunswick F201251
3Maryse Chartier 1988-01-2471833 Emily Gateway Développeur humanitaire New Brunswick F201720
4Avide Damico 1967-03-315510 Christine Land Conseiller en séjours Ontario F206972
5Anaïs Laroche 1975-02-201123 Tracy Landing Suite 232Technicien Alberta F202657
6Pénélope Bernard 1952-06-010232 Mccullough Divide Chercheur en biologie Yukon TerritoryF202092
Hide code cell source
library(lubridate)
dt <- Sys.Date()
day(dt) <- 01
a$age<-round(as.numeric(dt-as.Date(a$birth_date))/365.25,0)

library(ggplot2)

lectu_graph<-function(data, variable, ...){    
    ret <- ggplot(data, aes_string(x=variable), ...) + geom_bar()
    return(ret)
}

lectu_graph(a, "age")
Attaching package: ‘lubridate’
The following objects are masked from ‘package:base’:

    date, intersect, setdiff, union
Warning message:
“`aes_string()` was deprecated in
ggplot2 3.0.0.
 Please use tidy evaluation idioms
  with `aes()`.
 See also
  `vignette("ggplot2-in-packages")` for
  more information.”
../../_images/e9989ccf0631f84759990548a6c4b2e6bfe53efc159408cfd26b2d64b0ba03ac.png

Q2#

À partir de la base de données suivante, reproduisez le graphique suivant*: ggplot bars

Ignorez la variable freq_pmt. Considérez que les paiements sont reçus une fois par année et c’est au même mois que le mois de la date d’expiration. *chaque détail compte (titre, xlab, ordre des mois …etc)

# install.packages("httr")
Hide code cell source
library(httr)

url<-"https://raw.githubusercontent.com/nmeraihi/data/master/pmt_details.csv"

http_error(url) #veerifaction que ma variable url est bien un url sans erreur
FALSE

Donc on peut faire un if pour valider le url

Hide code cell source
if (http_error(url)==F){
   pmt_det<-read.csv(url) 
}
Hide code cell source
head(pmt_det)
A data.frame: 6 × 6
numeropolcout_primecredit_card_numbercredit_card_providercredit_card_expirefreq_pmt
<int><dbl><dbl><chr><chr><int>
1 11060.284.427476e+15Voyager 04/2312
2 51200.895.303389e+15JCB 16 digit 08/26 1
313 940.543.528569e+15Maestro 08/2212
416 860.756.011570e+15VISA 13 digit03/23 1
522 790.175.262495e+15Maestro 08/20 1
628 940.164.583364e+15Discover 03/20 1

ou le faire comme d’habitude;

Hide code cell source
pmt_det<-read.csv("https://raw.githubusercontent.com/nmeraihi/data/master/pmt_details.csv")
head(pmt_det)
A data.frame: 6 × 6
numeropolcout_primecredit_card_numbercredit_card_providercredit_card_expirefreq_pmt
<int><dbl><dbl><chr><chr><int>
1 11060.284.427476e+15Voyager 04/2312
2 51200.895.303389e+15JCB 16 digit 08/26 1
313 940.543.528569e+15Maestro 08/2212
416 860.756.011570e+15VISA 13 digit03/23 1
522 790.175.262495e+15Maestro 08/20 1
628 940.164.583364e+15Discover 03/20 1

l’avantage de vérifier l’url et de valider le tout dans une fonction avant l’exécution:

require("lubridate")
require("zoo")
Loading required package: zoo
Attaching package: ‘zoo’
The following objects are masked from ‘package:base’:

    as.Date, as.Date.numeric
Hide code cell source
# detach("package:zoo", unload=TRUE) # juste pour unload le package afin de vous    
# montrer l'utilité de ce package dans la ligne qui suit

Puisque le format de la date d’éxpiration de la carte de crédit a un format date inhabituel, on utilisera le pckage zoo afin de pouvoir extraire le mois de cette date.
Remarquez qu’on aurait pu utiliser les fonction substr pour extraire le mois seulement, toutefois il faut retransformer le charctère extrait en int64

Hide code cell source
mois<-as.yearmon(pmt_det$credit_card_expire, "%m/%y") 

Maintenant on peut finalement utiliser la fonction month pour avoir le mois;

Hide code cell source
month.abb[head(as.numeric(format(mois, "%m")))]
  1. 'Apr'
  2. 'Aug'
  3. 'Aug'
  4. 'Mar'
  5. 'Aug'
  6. 'Mar'

insérons le tout dans une nouvelle variable (colonne)

Hide code cell source
pmt_det$mois_pmt<-month.abb[as.numeric(format(mois, "%m"))]

Suite à la question de un de vos collègues, voici la fonction qui permet d’ordonner sort

Hide code cell source
sort(factor(head(pmt_det$mois_pmt), levels = month.abb))
  1. Mar
  2. Mar
  3. Apr
  4. Aug
  5. Aug
  6. Aug
Levels:
  1. 'Jan'
  2. 'Feb'
  3. 'Mar'
  4. 'Apr'
  5. 'May'
  6. 'Jun'
  7. 'Jul'
  8. 'Aug'
  9. 'Sep'
  10. 'Oct'
  11. 'Nov'
  12. 'Dec'
Hide code cell source
head(pmt_det$mois_pmt)
  1. 'Apr'
  2. 'Aug'
  3. 'Aug'
  4. 'Mar'
  5. 'Aug'
  6. 'Mar'

Jetons un coup d’oeil à notre nouveau df

head(pmt_det)
A data.frame: 6 × 7
numeropolcout_primecredit_card_numbercredit_card_providercredit_card_expirefreq_pmtmois_pmt
<int><dbl><dbl><chr><chr><int><chr>
1 11060.284.427476e+15Voyager 04/2312Apr
2 51200.895.303389e+15JCB 16 digit 08/26 1Aug
313 940.543.528569e+15Maestro 08/2212Aug
416 860.756.011570e+15VISA 13 digit03/23 1Mar
522 790.175.262495e+15Maestro 08/20 1Aug
628 940.164.583364e+15Discover 03/20 1Mar

Et maintenant utilisons ggplot pour tracer le graph demandé;

Hide code cell source
library(ggplot2)

ggplot(data = pmt_det,
  aes(sort(factor(pmt_det$mois_pmt, levels = month.abb)), cout_prime)) +  
  stat_summary(fun.y = sum,
    geom = "bar", )+
    xlab("Mois")+
    ylab("Mensualité")+
    labs(title = "Somme des primes reçues par mois", subtitle="ZAZA Assurance")
Warning message:
“The `fun.y` argument of
`stat_summary()` is deprecated as of
ggplot2 3.3.0.
 Please use the `fun` argument
  instead.”
Warning message:
“Use of `pmt_det$mois_pmt` is
discouraged.
 Use `mois_pmt` instead.”
../../_images/2b0ff03d452bc531ee28ef56552eb89fc30a422c6907aca6bd531a29a7afce0e.png

Q3#

a)#

Faites un graphique qui permet de voir l’évolution des coûts de sinistre dans le temps. Sur l’axe des \(x\), on devrait voir les mois et l’année (1999-01, 1999-02 …). À des fins de l’exercice, imaginez que s’il y’a un sinistre, il se passe toujours la même date que le debut_pol dans les données suivantes. Vous pouvez utiliser la fonction aggregate pour regrouper les sinistres par mois.

Hide code cell source
donnes_demo<-read.csv("https://raw.githubusercontent.com/nmeraihi/data/master/donnes_demo.csv")
head(donnes_demo)
A data.frame: 6 × 8
nameprovincecompanylanguedate_naissanceageeage_permisnumeropol
<chr><chr><chr><chr><chr><int><int><int>
1Shane Robinson Nova Scotia May Ltd fr1944-10-207224 1
2Courtney NguyenSaskatchewan Foley, Moore and Mitchellen1985-12-093124 5
3Lori WashingtonYukon TerritoryRobinson-Reyes fr1970-01-27472813
4Sarah Castillo Alberta Wood, Brady and English fr2000-08-23161616
5Jeffrey Garcia Nunavut Berger-Thompson en1969-10-25472022
6Colleen ColemanSaskatchewan Simmons-Smith en1984-10-16322328
tail(donnes_demo)
A data.frame: 6 × 8
nameprovincecompanylanguedate_naissanceageeage_permisnumeropol
<chr><chr><chr><chr><chr><int><int><int>
15Heather MaldonadoNunavut Walker Group en1999-02-23181869
16Christina Howard Nova Scotia Pena and Sons en1969-05-22482272
17Karen Nguyen Northwest TerritoriesPrice PLC fr1972-12-20442278
18Connie Alvarado Manitoba Jensen-Cooper en1974-10-18423483
19Heidi Freeman Northwest TerritoriesSingh, Esparza and Santosen1951-06-07651884
20Morgan Buchanan Northwest TerritoriesRollins Inc fr1971-07-31453191
Hide code cell source
police_assurance<-read.csv("https://raw.githubusercontent.com/nmeraihi/data/master/police_assurance.csv")
head(police_assurance)
A data.frame: 6 × 11
numeropoldebut_polfin_polcout1cout2cout3cout4cout5cout6cout7nbsin
<int><chr><chr><dbl><dbl><dbl><dbl><dbl><lgl><lgl><int>
111999-11-102000-10-16 NANANANANANANA0
212000-10-172000-11-09 NANANANANANANA0
312000-11-102001-11-09243.8571NANANANANANA1
451996-01-031996-03-27 NANANANANANANA0
551996-03-281997-01-02 NANANANANANANA0
651997-01-031998-01-02 NANANANANANANA0

Creéons une nouvelle variable ann_mois_sinistre où nous conservons seulement le mois et l’année de la date debut_pol

Hide code cell source
police_assurance$ann_mois_sinistre<-format(as.Date(police_assurance$debut_pol), "%Y-%m")

Ensuite nous faisons une somme sur toutes les variables (cout1@cout7). Il est important d’ajouter l’argument na.rm=T afin de prendre en considération les na

Hide code cell source
police_assurance$somme_couts<-apply(police_assurance[,4:10],1 ,sum, na.rm=TRUE)

Ensuite nous faisons un sommaire (somme) de tous les coûts totaux groupé par mois ET année

Hide code cell source
df_q6<-aggregate(police_assurance$somme_couts,
                 by=list(ann_mois_sinistre=police_assurance$ann_mois_sinistre), FUN=sum)
head(df_q6)
A data.frame: 6 × 2
ann_mois_sinistrex
<chr><dbl>
11995-01 117.4658
21995-0267543.4286
31995-03 4860.8261
41995-04 5738.0932
51995-05 5449.1056
61995-0613850.9193

On voit que maintenant nos données vont du 1995-01 au 2004-05

max(police_assurance$ann_mois_sinistre)
'2004-05'
Hide code cell source
library(scales)
# detach("package:scales", unload=TRUE)
Hide code cell source
ggplot(data=df_q6, aes(x=ann_mois_sinistre, y=x, group=1)) +
    geom_line() +
    xlab("Temps") + ylab("Montant des couts des sinistre") +
    scale_y_continuous(labels = dollar)+ # c'est là que sert le package scale
    ggtitle("Évolution des coûts des \nsinistres dans le temps")+
    theme(axis.text.x = element_blank(),
         axis.ticks.x = element_blank())
../../_images/813369db1016dbffdc4f56907d18fbadbe621ffac593a59868390421781fa398.png

b)#

Faites maintenant le même exercice en regroupant les coûts de sinistres par année. Vous devriez avoir le graphique suivant:

police_assurance$sinistre_ann<-format(as.Date(police_assurance$debut_pol), "%Y")
df_q6_b<-aggregate(police_assurance$somme_couts, by=list(sinistre_ann=police_assurance$sinistre_ann), FUN=sum)
Hide code cell source
ggplot(data=df_q6_b, aes(x=sinistre_ann, y=x, group=1)) +
    geom_line() +
    xlab("Temps") + ylab("Montant des couts des sinistre") +
    scale_y_continuous(labels = dollar)+
    ggtitle("Évolution des coûts des \nsinistres dans le temps")
../../_images/978703d0d9ef21f753451e6413511262f7b039d18100cc6e441400744efd8bd6.png

Q4#

Faites le même exercice que la question 3b), mais cette fois, séparez les coûts en deux catégories;

  • les coûts de sinistres annuels pour les francophones

  • les coûts de sinistres annuels pour les anglophones

Faite un graphique qui contient deux lignes, une première qui représente les coûts de sinistre sur le temps pour les francophones, et l’autre ligne pour les anglophones.

Hide code cell source
df_q4<-aggregate(police_assurance$somme_couts, by=list(sinistre_ann=police_assurance$sinistre_ann, numeropol=police_assurance$numeropol), FUN=sum)
head(df_q4)
A data.frame: 6 × 3
sinistre_annnumeropolx
<chr><int><dbl>
11999 1 0.0000
22000 1243.8571
31996 5 0.0000
41997 5 0.0000
51998 5 0.0000
6199513 0.0000
head(police_assurance)
A data.frame: 6 × 14
numeropoldebut_polfin_polcout1cout2cout3cout4cout5cout6cout7nbsinann_mois_sinistresomme_coutssinistre_ann
<int><chr><chr><dbl><dbl><dbl><dbl><dbl><lgl><lgl><int><chr><dbl><chr>
111999-11-102000-10-16 NANANANANANANA01999-11 0.00001999
212000-10-172000-11-09 NANANANANANANA02000-10 0.00002000
312000-11-102001-11-09243.8571NANANANANANA12000-11243.85712000
451996-01-031996-03-27 NANANANANANANA01996-01 0.00001996
551996-03-281997-01-02 NANANANANANANA01996-03 0.00001996
651997-01-031998-01-02 NANANANANANANA01997-01 0.00001997
head(donnes_demo)
A data.frame: 6 × 8
nameprovincecompanylanguedate_naissanceageeage_permisnumeropol
<chr><chr><chr><chr><chr><int><int><int>
1Shane Robinson Nova Scotia May Ltd fr1944-10-207224 1
2Courtney NguyenSaskatchewan Foley, Moore and Mitchellen1985-12-093124 5
3Lori WashingtonYukon TerritoryRobinson-Reyes fr1970-01-27472813
4Sarah Castillo Alberta Wood, Brady and English fr2000-08-23161616
5Jeffrey Garcia Nunavut Berger-Thompson en1969-10-25472022
6Colleen ColemanSaskatchewan Simmons-Smith en1984-10-16322328
Hide code cell source
library(dplyr)
Attaching package: ‘dplyr’
The following objects are masked from ‘package:stats’:

    filter, lag
The following objects are masked from ‘package:base’:

    intersect, setdiff, setequal, union
Hide code cell source
df_join<-left_join(df_q4,donnes_demo[, c("numeropol","langue")],by = "numeropol")
head(df_join)
A data.frame: 6 × 4
sinistre_annnumeropolxlangue
<chr><int><dbl><chr>
11999 1 0.0000fr
22000 1243.8571fr
31996 5 0.0000en
41997 5 0.0000en
51998 5 0.0000en
6199513 0.0000fr

Ensuite nous regroupons le tout par année de sinistre et langue parlée en faisant une somme sur la variable x de l’ancien data frame df_join

Hide code cell source
df_join_sum<-aggregate(df_join$x, 
                 by=list(sinistre_ann=df_join$sinistre_ann, 
                         langue=df_join$langue), FUN=sum)

Remarquez la nouvelle variable x avec le total par année et par langue

df_join_sum
A data.frame: 18 × 3
sinistre_annlanguex
<chr><chr><dbl>
1995en 4384.31056
1996en 6205.98758
1997en 611.27950
1998en 0.00000
1999en44245.03106
2000en 825.40373
2001en25096.28571
2002en 416.44720
2003en 1151.08696
1995fr 60.50932
1996fr 0.00000
1997fr 120.46584
1998fr 1316.48447
1999fr 108.07453
2000fr 1138.55280
2001fr23513.50311
2002fr 0.00000
2003fr 0.00000

Maintenant nous pouvons faire notre graphique ou notyre variable d’intérêt x est assignée aux deux groupes de langue group=langue. Nous distinguons ces deux groupes par couleur colour=langue

Hide code cell source
ggplot(data=df_join_sum, aes(x=sinistre_ann, y=x, group=langue, colour=langue)) +
    geom_line() +
    geom_point()+    xlab("Temps") + ylab("Montant des couts des sinistre") +
    ggtitle("Évolution des coûts des \nsinistres dans le temps pour \npour Bonjour! et Hi!")+
    scale_y_continuous(labels = dollar)
../../_images/32f934813c9c7074ddc6c676a99b922e032f2fcd744d53978fd189a9c20d59d1.png

On peut réduire le nombre de 0 sur notre axe des \(y\)

Hide code cell source
million<-1000000

ggplot(data=df_join_sum, aes(x=sinistre_ann, y=x/million, group=langue, colour=langue)) +
    geom_line() +
    geom_point()+    xlab("Temps") + ylab("Coûts des sinistres (millions de $)") +
    ggtitle("Évolution des coûts des \nsinistres dans le temps pour \npour Bonjour! et Hi!")+
    scale_y_continuous(labels = dollar)
../../_images/0a1374be47371ffd6b3d70b70c9d89eb84b7d19570630d0f8b3c6290d041ec67.png

Q5#

On vous dit que la compagnie Discover, émettrice de cartes de crédit, a été achetée par le groupe Ironman. Faites la mise à jour de ces informations dans votre base de données. Mais n’oubliez pas de créer un backup de votre ancienne BD sous le format suivant yyyy_mm_dd_HH_MM_SS.csv(année, mois, jour, heure, minute et seconde).

Hide code cell source
pmt_det<-read.csv("https://raw.githubusercontent.com/nmeraihi/data/master/pmt_details.csv")
head(pmt_det)
A data.frame: 6 × 6
numeropolcout_primecredit_card_numbercredit_card_providercredit_card_expirefreq_pmt
<int><dbl><dbl><chr><chr><int>
1 11060.284.427476e+15Voyager 04/2312
2 51200.895.303389e+15JCB 16 digit 08/26 1
313 940.543.528569e+15Maestro 08/2212
416 860.756.011570e+15VISA 13 digit03/23 1
522 790.175.262495e+15Maestro 08/20 1
628 940.164.583364e+15Discover 03/20 1
Hide code cell source
date_heure<-Sys.time()
date_heure
[1] "2024-04-03 09:00:29 EDT"
Hide code cell source
date_heure<-gsub(":", "_", date_heure)
date_heure<-gsub(" ", "_", date_heure)
date_heure<-gsub("-", "_", date_heure)
date_heure
'2024_04_03_09_00_29.446283'
nom_fichier<-paste("", date_heure, ".csv", sep = "")
nom_fichier
'2024_04_03_09_00_29.446283.csv'
write.csv(pmt_det, nom_fichier)
Hide code cell source
pmt_det$credit_card_provider <- replace(as.character(pmt_det$credit_card_provider), 
                                        pmt_det$credit_card_provider == "Discover", "Ironman")
head(pmt_det)
A data.frame: 6 × 6
numeropolcout_primecredit_card_numbercredit_card_providercredit_card_expirefreq_pmt
<int><dbl><dbl><chr><chr><int>
1 11060.284.427476e+15Voyager 04/2312
2 51200.895.303389e+15JCB 16 digit 08/26 1
313 940.543.528569e+15Maestro 08/2212
416 860.756.011570e+15VISA 13 digit03/23 1
522 790.175.262495e+15Maestro 08/20 1
628 940.164.583364e+15Ironman 03/20 1

On vérifie qu’on a bien une valeur Ironman

head(pmt_det[which(pmt_det$credit_card_provider=="Ironman"),])
A data.frame: 6 × 6
numeropolcout_primecredit_card_numbercredit_card_providercredit_card_expirefreq_pmt
<int><dbl><dbl><chr><chr><int>
6 28940.164.583364e+15Ironman03/201
15 69720.574.530801e+15Ironman05/191
26113720.504.507907e+15Ironman03/211
32126960.245.127974e+15Ironman05/201
34136980.104.635091e+15Ironman04/201
43172930.865.408687e+15Ironman03/241

et que la valeur Discover n’éxiste plus

pmt_det[which(pmt_det$credit_card_provider=="Discover"),]
A data.frame: 0 × 6
numeropolcout_primecredit_card_numbercredit_card_providercredit_card_expirefreq_pmt
<int><dbl><dbl><chr><chr><int>

Q6#

a)#

Faites un graphique du prix du bitcoin sur la période allant du 2016-12-04 au 2017-12-04. Vous pouvez lire ces données ici.

Hide code cell source
bitCoin<-read.csv("https://raw.githubusercontent.com/nmeraihi/data/master/bitcoin_price.csv")
head(bitCoin)
A data.frame: 6 × 2
DateClose.Price
<chr><dbl>
12016-12-04 0:00766.46
22016-12-05 0:00750.71
32016-12-06 0:00758.81
42016-12-07 0:00763.90
52016-12-08 0:00766.75
62016-12-09 0:00770.41
tail(bitCoin)
A data.frame: 6 × 2
DateClose.Price
<chr><dbl>
3612017-11-29 0:00 9816.35
3622017-11-30 0:00 9916.54
3632017-12-01 0:00 10859.56
3642017-12-02 0:00 10895.01
3652017-12-03 0:00 11180.89
3662017-12-04 14:5211420.50
Hide code cell source
ggplot(data=bitCoin, aes(x=Date, y=Close.Price, group=1)) +
    geom_line() +
    xlab("Temps") + ylab("Prix du bitcoin") +
    scale_y_continuous(labels = dollar)+
    ggtitle("Évolution du prix du bitcoin \ndu 2016-12-04 au 2017-12-04")+
    theme(axis.text.x = element_blank(),
         axis.ticks.x = element_blank())
../../_images/6481d6c508073e75c9a931e110a2c419ec73c7cfae988f3d65db0410307afb37.png

b)#

Sauvegardez le graphique dans un fichier .png sous le format de 5 » de largeur et 3 » de hauteur dans le répertoire courant (working directory)

Hide code cell source
ggsave("bitcoinProce.png",width = 5, height = 3)

c)#

Calculer le rendement quotidien que vous avez fait depuis l’achat de votre bitcoin. On se rappelle que le rendement quotidien se calcule comme suit;

\[r={\frac {V_{f}-V_{i}}{V_{i}}}\]
head(bitCoin)
A data.frame: 6 × 2
DateClose.Price
<chr><dbl>
12016-12-04 0:00766.46
22016-12-05 0:00750.71
32016-12-06 0:00758.81
42016-12-07 0:00763.90
52016-12-08 0:00766.75
62016-12-09 0:00770.41
head(diff(bitCoin$Close.Price)/bitCoin$Close.Price[-length(bitCoin$Close.Price)])
  1. -0.0205490175612556
  2. 0.010789785669566
  3. 0.00670787153569409
  4. 0.00373085482392986
  5. 0.00477339419628297
  6. 0.00363442842123034

Remarquez que si l’on voulait insérer ce qu’on vient de faire diff(...) dans une nouvelle colonne de notre df bitCoin, ça n’aurait pas pu fonctionner car nous avons calculer 365 valleurs alors que notre df possède 366 observations. Puisqu’au temps \(t=0\), nous n’avons aucun rendement encore.

Alors il faut mettre le rendemnet au tempos \(t=0\) à null

Hide code cell source
bitCoin$rate_return<-c(NA, diff(bitCoin$Close.Price)/bitCoin$Close.Price[-length(bitCoin$Close.Price)])

Le package Quantmod contient une fonction built in qui calcul le rendement. Cette fonction est appelée Delt

Hide code cell source
require(quantmod)
Loading required package: quantmod
Warning message in library(package, lib.loc = lib.loc, character.only = TRUE, logical.return = TRUE, :
“there is no package called ‘quantmod’”
Hide code cell source
bitCoin$rate_return<-Delt(bitCoin$Close.Price)
head(bitCoin)
Error in Delt(bitCoin$Close.Price): could not find function "Delt"
Traceback:

Remarquez qu’elle insère un rendement=na au temps \(t=0\)

Hide code cell source
bitCoin_2<-bitCoin[-1,] # on se débarasse de la première observation
head(bitCoin_2)
DateClose.Pricerate_return
22016-12-05 0:00750.71 -0.020549018
32016-12-06 0:00758.81 0.010789786
42016-12-07 0:00763.90 0.006707872
52016-12-08 0:00766.75 0.003730855
62016-12-09 0:00770.41 0.004773394
72016-12-10 0:00773.21 0.003634428

Et on fait notre graphique

Hide code cell source
ggplot(bitCoin_2, aes(x=bitCoin_2$Date, group=1)) + 
  geom_line(aes(y=bitCoin_2$rate_return*100)) + 
  labs(title="ACT3035 Exercices", 
       subtitle="Rendement quotidien du bitcoin \ndu 2016-12-04 au 2017-12-04",
       y="Rendement en %")+ xlab("Temps")+
    theme(axis.text.x = element_blank(),
         axis.ticks.x = element_blank())
../../_images/de8c6eedff36608f4e9bd9511cf6a69452d88baa32b18b9adc71fbe423651972.png

Q7#

Faites un graphique sur la corrélation entre les prix d’action venant des données suivantes

Hide code cell source
library(ggcorrplot)
Hide code cell source
df_app <-read.csv("https://raw.githubusercontent.com/nmeraihi/data/master/stocks_correlation.csv", header = T)[ ,2:9]
mat_corr<-cor(df_app)
Hide code cell source
ggcorrplot(mat_corr, hc.order = TRUE,
   lab = TRUE)
../../_images/12770cf2cb75ee2c12e08b08c48ec4cbed85166e7971d67f58bd19e639786126.png