113
Langage Présentée par : Pr. Imade BENELALLAM [email protected] 1

Présentée par : Pr. Imade BENELALLAM imade.benelallam@ieee ...€¦ · • Acquérir par la pratique, le langage de programmation R et le ... – Planifier et piloter la stratégie

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

LangagePrésentéepar:Pr.ImadeBENELALLAM

[email protected]

1

Objectifsdelaformation• Voussensibilisezàl’importancedelamaitrisedesoutilsde

programmationstatistiquesdanslecadred’unparcoursprofessionnel;

• SefamiliariseraveclesenvironnementsdeprogrammationR;• ApprendreàmanipulerlelangagestatistiqueRentirantprofit

dessesparticularitésetdesapuissance;• Acquérirparlapratique,lelangagedeprogrammationRetle

traitementexploratoiredesdonnées;• Devenirautonomedansledomainedetraitementstatistique

etdefouillededonnéesenutilisantlelangageR.• Finalement,fairelepremierpasversunprofilde«Data

Scientist »….!2

InitiationaulangageR

3

Objectifdela1ére partie

Lamaîtrisedulangage:• Lecontextegénéral;• Lesenvironnements deprogrammationenR;• LesbasesdulangageR;

4

R:Lecontextegénéral

5

Problématique• Unegrandemassededonnéesestarchivée:

– Complexe– Variables– TrèsDétaillée

• Atraiter:– Synthétiser/Résumer– Analyser– Visualiser

• Pouruneutilisationpar:– Desexpertsetdesanalystesd'undomainemétier

• NONinformaticiens• NONstatisticiens

6

Nouvellesquestionsmétiers!• Lesentreprisesneveulentplusseulementsavoir:

– «Combiendeclientsontachetételproduitpendantunetellepériode?»

• Maisdesnouvellesquestionsmétiers:– clientèle:

• «Quelestleurprofil?»• «Quelsautresproduitslesintéresseront?»• «Quandseront-ilsintéressés?»• « Commentlesconserveroulesfairerevenir? »

– marketing,actionscommerciales:• « Oùplacerceproduit/service? »• « Commentciblerplusprécisémentmesclientsconcernantceproduit/service? »

7

Solutions:DataWarehousing,Statistiquesetfouillededonnées

• Lesdonnéessontellesprêtes(bienorganisées,intégrées,clean,homogènes,…)pourenextrairedenouvellesconnaissancespourlaprisededécision?– Sioui:onfaitappelautraitement

statistique,auDataMining …pouruneanalysedirecte.

– Sinon:Ilfauttoutd‘abordorganiserlesdonnéespuisfaireappelautraitementstatistiquepourlaprisededécision.

C’estlaBI(BusinessIntelligence:Intelligencemétier)

Données

Ok?Data

warehousing

Statistiques,Fouillededonnées

Prisededécision

12

3

4

Oui

8

Processusd’intelligencemétier

ProductionSystem

CRMSystem

FinancialSystem

Bases opérationnelles :• Orientées services :Ventes,comptabilité,Marketing ..• Volatile• OLTP

files

DataWarehouse (entrepôt dedonnées) :• Orientées sujets(analyse).• Historisées• Non-volatiles

ProductDataMart

SelesDataMart

DataMart :• snapshot deDW• Bases Multidimentionnel• Historisées• Non-volatiles

OLAP

OLAP:• Accès rapideauxData,KPI,Dashboards, Scorecards• Analysemulti-D• Simulation• Reporting (Crystal,MSReporting)

ExtractETL

Load

Data science:• Prédiction/prospection.• Extractionde connaissancescachées (Langage R,SASMining,SQLserver Mining)

FluxDécisionnel

files9

Avantages

• Mieuxconnaîtreleclient– pourmieuxleservir– pouraugmentersasatisfaction– pouraugmentersafidélité(+coûteuxd’acquérirunclientqueleconserver)

• Laconnaissanceduclientestencoreplusutile:– lesproduitsseressemblententreétablissements

• leprixn’estpastoujoursdéterminant• cesontsurtoutleserviceetlarelationavecleclientquifontladifférence

10

Applications• Marketing–Marketingdirect:populationàcibler(âge,sexe,profession,habitation,région,…).

11

Applications

• Secteurbancaire– Déterminerlesprofilsclient.– Utilisationduscorederisquepourproposerlemontantdecréditleplusadaptéàchaqueclient.

– Aideàladécisiondepaiement.– Déterminerlemeilleurtauxderéponsedescampagnesmarketing.

– Découvertedesegmentsdeclientèle.– Adaptationdelacommunicationmarketingàchaquesegmentdeclientèle.

– Choixdumeilleurcanaldedistribution.– Identificationdesclientssusceptiblesdepartiràlaconcurrence.

12

Applications• Econométrie

– prédictiondetraficautoroutier.• RessourcesHumaines

– adéquationactivité/personnel.• Santé

– épidémiologie(VIH,Amiante,...).• Logistique

– adéquationdemande/production.• Commerce

– ciblagedeclientèle.– aménagementdesrayons(2produitsencorrélation).

• e-commerce– personnalisationdespagesd’unsitewebenfonctionduprofildechaque

internaute.– optimisationdelanavigationsurunsiteweb.

13

Applications• Gestionetanalysedesmarchés:

– Grandedistribution:profilsdesconsommateurs,modèled’achat,effetdespériodesdesoldeoudepublicité,panierdelaménagère.

• Détectiondefraudes:– Banques,– Télécommunications.

• �Gestiondestocks:– quandcommanderunproduit,– quellequantitédemander,…

• �Analysefinancière:– maximiserl’investissementdeportefeuillesd’actions.

14

Déclinaisonsmétiers• DataAnalyst :doitutiliserdestechniquesstatistiquesetdes

outilsinformatiquesspécialisésafind'organiser,desynthétiseretdetraduirelesinformationsdontlesentreprisesontbesoinpourfaciliterlesprisesdedécision.

• DataScientist :unhautresponsabledelagestionetdel’analysede«donnéesmassives»,uneévolutionprofessionnelled'unpostedeDataAnalyst,destatisticienoudeconsultantendatamining. Ildoitêtrecapabledefaireparlerlesdonnéesetd'ensortirdesindicateursconcretsauservicedeladirectiongénérale.

15

Compétencesd’unDatascientist

ArticleNewYorkTimes(Janvier 2009)“DataAnalystsCaptivatedbyR’sPower”http://www.nytimes.com/2009/01/07/technology/business-computing/07program.html?_r=1 16

• SPM(Strategic PerformanceManagement)– Détermineretcontrôlerles indicateursclédelaperformancedel’entreprise

• FI(FinanceIntelligence)– Planifier,analyseetdiffuserl’informationfinancière.– Mesureretgérerlesrisques.

• HCM(Human CapitalManagement)– AlignerlesstratégiesRH,lesprocessusetlestechnologies.

• CRM(CustomerRelationshipManagement)– Améliorerlaconnaissanceclient,Identifieretprévoirlarentabilitéclient.– Accroîtrel’efficacitédumarketingclient.

• SRM(SupplierRelationshipManagement)– Classifieretévaluerl’ensembledesfournisseurs.– PlanifieretpiloterlastratégieAchat.

Exemplesdedéclinaisonsmétiers

17

IntroductionàR

18

Naissance

• Crééen1993• parRobertGentlemanetRossIhaka àl'University ofAukland,Nouvelle-Zelande.

19

Liberté,GratuitéetFraternité

20

R,çasertàquoi?

• Analyserdesdonnées :– Calculs– Testsd’hypothèses– Simulations– Tracerdesgraphes– Prédictions

21

Succès

22

Succèshttp://www.kdnuggets.com/polls/2013/languages-analytics-data-mining-data-science.html

23

Vousn’êtespasseul...

RUsers Groups[RUGs]

24

RUGs francophones

25

Evolution:traficsurlistedediscussion

26

Evolution:requêtessurGoogle

27

Evolution:nombredepackages

28

Evolution:nombredepackages

• Touteslesfonctionssontcontenuesdansdespackages:– certainssontinstallésavecR– Rétantlibre,beaucoupd’autressontdisponiblesenlignesurleCRAN(theComprehensiveRArchiveNetwork)

29

DesCRANstrèsprochesMirroirs duCRAN

30

InstallationdulogicielR

31

InstallerRavecWindows• Rendez-vous

ici : https://cran.rstudio.com/bin/windows/base/R-3.2.2-win.exe

• Cliquezsur :« R-3.2.2-win.exe ».• D'abord,enregistrezlefichiernommé«R-3.2.2-win.exe »

survotredisque.• Ensuite,doublecliquezsurcefichieretsuivezlesconsignes

d'installationenlaissantlesvaleurspardéfaut.• Enfin,sitoutafonctionnévousdevriezavoirlapossibilité

delancerleprogrammedepuislemenu« démarrer »deWindows.

• SivousrencontrezdesproblèmesavecWindowsVista,rendez-vous ici

32

InstallerRavecMacOs• IdentifiezlaversiondeMacOsquevousutilisezencliquantsurla

pommeenhautàgauchedevotrebureauetenchoisissant« àproposdeceMac ».

• Sivousutilisezuneversionantérieureàlaversion 10.5,rendez-vous ici pourtrouveruneversioncontemporaineàvotreversiondeMacOs.

• Sivousdisposezd'uneversionpostérieureàlaversion 10.5,rendez-vous ici.

• Cliquezsur« R-2.15.1.pkg (latest version) »pourtéléchargerlefichier« R-2.15.1.pkg».

• Puisdoublecliquezsurlefichieretsuivezlesinstructionsd'installation.

• IldevraitmaintenantêtrepossibledelancerRdepuislerépertoire« applications »devotreFinder.

33

InstallerRavecLinux

• Quellequesoitvotreversiond'Ubuntu,rendez-vousdansSynaptic parlemenu« système »→« administration »→« GestionnairedepaquetsSynaptic ».Puisinstallerlepaquet« r-base »ettouteslesdépendances nécessairespardéfaut.

• Enmodeconsole,lacommanded'installationestlasuivante :– sudo apt-get install r-base

• Pourplusd'informationssurl'installationdeRavecUbuntu,rendez-vous ici

34

LancerR

• AvecWindows :menudémarrer→programmes→Ri3863.2.2

• AvecMacOs :depuislerépertoire« applications »devotreFinder.

• AvecUbuntu :ouvriruneconsole(Applications→Accessoires→Terminal)ettaper :« R »sanslesguillemets.

35

LancerR

• Danstouslescas,letextesuivantdevraits'afficher :

ThisbringsuptheRGUIwithinRConsolewindow.HereIcantypeinRcommandsandseethemrun.

Prompt(invitedecommande)

36

LancerR

• Pourvérifierquetoutfonctionne :Lapremièrecommandequevousdevezsavoirestlacommandehelp().

• Taperlacommande :

• Donc,poursortirdeR,nousrevenonsànotreConsoleetnoustaponslafonction:q()

37

Commentinstallerunpackage ?

• Unpackageouextensionestunensembledefonctionnalités etdecommandesquel'onpeutajouterdansR.Ilenexisteungrandnombre.

• Unesolutionpourinstallerunpackageconsisteàtaperlacommande install.packages(),puischoisirunevilleouunpaysprochedesasituationgéographiqueetenfindechoisirlepackage.

• Unpetittutorielestdisponible ici.

38

Commentinstallerunpackage ?

39

Ajouteruneinterfacegraphique

• LelogicielRseprésentesouslaformed'uneconsolepresquenue,maisilexistedifférentsIDEs permettantdefaciliterlamanipulation:– Rstudio quiestmultiplateforme,– R-commander quiajoutedesmenusetuneinterfacegraphiqueaulangage,

– fork Red-R quipermetdeconcevoir l'analysestatistiquecommedesfluxdedonnées.

40

InstallationdeRStudio

• gotohttp://www.rstudio.com/ :– opensource,– freetodownloadandinstallforourpurposes

41

EnvironnementdeprogrammationR

42

Deuxmodesdefonctionnent

• Interpréteurdeprogrammes:Restuninterpréteurdeprogrammes,C’estun«vrai»langagec-à-d.typesdedonnées,branchementsconditionnels,boucles,organisationducodeenprocéduresetfonctions,découpageenmodules...etc.L’objetdebaseestunvecteurdedonnées.

• Interpréteurdecommandes:Restunlogicieldestatistiqueetdedatamining,pilotéeenlignedecommande.Ilestextensible(quasiment)àl’infinivialesystèmedespackages.LesinstructionsserventàmanipulerlesobjetsR

43

Deuxmodesdefonctionnent

44

Modecompilévs.modeinterprété

• Langageinterprété:+portabilitéapplication;- lenteur(R,Matlab,…)

• Langagecompilé:+rapidité;- pasportable• Langagepseudo-compilé:+portabilitéplate-forme;- lenteur(?)(Principe:writeonce,runanywhere;ex.Java)– Restinterprété,certes…maislesfonctionsdebases(eigen,svd,etc.)etcertainesfonctionsstatsontcompilées!

45

Lesbasesstandardsdelaprogrammation

• Donnéestypées:pourchaquedonnéequel'onutilise(dansles variables parexemple)untypededonnéeestassocié,cequipermetdeconnaîtrel'occupationmémoire (lenombred'octets)deladonnéeainsiquesareprésentation.

• Donnéesstructurées:dansR,lastructuredebaseestlevecteur.Ilestpossiblededéfinirdestableauxetdesmatrices.

• Structuresavancéesdedonnées:Celapeutêtredesrésultatsdecalculsi.e.lesmodèles;desensemblesdevecteur(lesdata.frame);etc.

• Séquencesd’instructions: c’estlabasemêmedelaprogrammation,pouvoirécrireetexécuterunesériedecommandessansavoiràintervenirentrelesinstructions.

• Structuresalgorithmiques:lesbranchementsconditionnelsetlesboucles.

46

Lesbasesstandardsdelaprogrammation

• Programmationstructurée:pouvoirregrouperducodedansdesprocédures etdesfonctions.Celapermetdemieuxorganiserlesapplicationsenmodules.Fichiers«.r»quel’onpeutappelerdansd’autresprogrammes.Possibilitédedistributiondesmodules,soitdirectementlesfichiers«.r»,soitsousformede«package».

• Casesensitive:ildifférencie lestermesécritsenminusculeetmajuscule.Onaintérêtàécriresystématiquement lecodeenminusculepouréviterlesconfusions.

47

NotreutilisationdeR

48

L’environnementRStudio

Fichierdescript.r

Console:lignedecommande

Environnementdesvariables

Répertoiredetravail

49

Lab1:Priseenmaindel’environnement

50

LESBASESDULANGAGER

51

Premièresopérations

• letypageestdoncautomatique.• DanslaterminologieR,aestun«objet».

Affectation:aestunevariable,eninternec’estunvecteurdetaille1,etilpeutcontenirdesdonnéesnumériques

Faireattentionauxidentifiantsdesvariables!

52

Premièresopérations

Listerlecontenudelamémoire:Affichetouslesobjetssituésdanslamémoiredel’environnementR.

Supprimerunobjet:areprésentelenomdel’objetàsupprimer.

SupprimertouslesobjetsenmémoireOnlistelenomdetouslesobjetsenmémoireetonlesefface

Attention,onsupprimeautantlesdonnées(vecteurs,matrices)quelesmodèles(ex.résultatsderégression,etc.)

53

PremièresopérationsAccèsàl’aided’unefonctionenvoiel’aidepourlafonction«lm»quisertàproduireunerégressionlinéairemultiple.

Rechercheparmotdanslefichierd’aideRecherchelachaînedecaractères«lm»danslefichierd’aide.

Lacommande?lm(le?devantlenomdelafonction)donnelemêmerésultatquehelp(lm).Voiraussi:apropos("pattern"). 54

Opérateurs

letypedebaseestlevecteur(scalaire=vecteurdetaille1)

Lesopérateursarithmétiquesapplicablessont:+,- ,*,/,^,%%(modulo),%/%(divisionentière)

5/2donne2.5(divisionentrevaleursréelles);enrevanche5%/%2donne2(divisionentière)

Lesopérateurslogiquessont!(négation),&&(ETlogique),||(OUlogique),xor()(OUexclusif)

Lesopérateursdecomparaisonserventàcomparerdesvaleursdemêmetypeetrenvoientunevaleurdetypebooléen.SousR,cesopérateurssont<,<=,>,>=,!=,==

55

Fonctionsmathématiques

56

ClassesetTypesdedonnées

Numeric:quipeutêtreinteger (entier)oudouble(double).

pourconnaîtrelaclassed’unobjetonutilise lafonctionclass(nom_objet)

pourconnaîtreletypeassociéàunobjet,onutilise lafonctiontypeof(nom_objet)

57

ClassesetTypesdedonnées

Character désignerleschaînesdecaractères.Uneconstantechaînedecaractèredoitêtredélimitéepardesguillemets(fonctionsdemanipulation:paste(..),grep(..),etc.)

58

ClassesetTypesdedonnéesLogical correspondautypebooléen,ilprenddeuxvaleurspossiblesTRUEetFALSE

59

ClassesetTypesdedonnées

Complex désigneunnombrecomplexe:

60

Transtypage

61

LesfonctionsInput/Output

62

LesfonctionsInput/Output

63

LesfonctionsInput/Output• Thereisafunctioncalledcat,whichgivesusalittlemoreflexibilitythan

print.It'salittlebitmorelowlevel.• Ifwedocatofvariable(v),youwillseeherethere'snonumberpreceding

it,thereisnoheaderandit'sverybasic.

64

Quelquesvaleursparticulières

65

Vecteursetmatrices

• LetypeleplussimpleetleplusfondamentaldestructurededonnéesdansRestlevecteur.

• Lesvecteurssontdesconteneursdedonnéesindexéescommelestableaux

• Lesmatricespeuventêtreconsidéréescommeunegénéralisationdesvecteurspermettantl'indexationàlafoisparligneetcolonne.

66

Vecteurs

67

Vecteurs

68

Vecteurs

69

Vecteurs

70

Matrices

71

Matrices

72

Matrices

73

Matrices

74

Matrices

75

Générerdesnombrespseudo-aléatoires

76

Générerdesnombrespseudo-aléatoires

77

Générerdesnombrespseudo-aléatoires

78

Importationdedonnées

• Apartirdupackagedebase,Rpeutlirelesdonnésstockéesdansdesfichierstexte,àpartirnotammentdesfonctions.

• Rlitégalementlesfichiersd’autresformats,parmilesquelsExceletSAS.

79

Importationdedonnées:CSV

80

Importationdedonnées:CSV

81

Importationdedonnées:Excel

• Vérifiez vous avez bien installé lepackage“gdata”(sinon:install.packages("gdata")).

• Rendez-vous sur :http://www.perl.org• Puis télechargez lefichier :STRAWBERRYPERL.

82

Importationdedonnées:Excel

83

Importationdedonnées:Excel

84

Tableauxdedonnées:data.frames

85

• SousR,lestableauxdedonnéessontdesobjetsparticuliersappelésdata.frame.

• Pourlireunfichierdedonnées,ilfautcommencerparcréerunevariablequicontientlenomdufichiergrâceàlafonctionfile.choose().

• Ensuiteonutiliselafonctionread.table()quipermetdelireuntableaudedonnees :

>data=read.table(monfichier,header=TRUE)>data

– L'instructionheader=TRUEpermetdepréciserquelapremièrelignedufichieràlireestuneligned'en-tête.

– Lafonctioncolnames(data)renvoielesnomsdescolonnesdufichierdedonnéesdata.

– Pourvoiruniquementunecolonnedutableau(parexemplelacolonnetemps),ilsuffitdetaperdata$temps.

Tableauxdedonnées:data.frames

86

Tableauxdedonnées:data.frames

87

Extrairedesélémentsd'untableau:• Pourextrairelesélémentsd'untableau,onpeutaussi

exécuterlacommandedata[x,y],ouxestunvecteurd'indicesouunvecteurdebooléens(danscecas,ildoitavoirlemêmenombred‘élémentsquelenombredelignesdutableaudata),etyestunvecteurd'indicesouunvecteurdebooléens(danscecas,ildoitavoirlemêmenombred‘élémentsquelenombredecolonnesdutableaudata).

• L'instructiondata[x,]renvoietouteslescolonnesdutableaupourleslignescorrespondantàx.L'instructiondata[,y]renvoietouteslescolonnesdutableaupourleslignescorrespondantày.

Tableauxdedonnées:data.frames

88

Analysecroisée

89

Table(x):renvoieunetableavecledécomptedechaquevaleurdifférentedex;Table(x,y):renvoieuntableaudecontingence;

Tableauxcroisés

90

Tableauxcroisés

91

Réalisationd'ungraphique

• Différentes fonctions permettentdereprésentergraphiquementdesdonnées.

• Unefenêtregraphiques'ouvreautomatiquementàl'appeldelafonctionplot.

• Lafonctionpointspermetderajouterdespointssurungraphique.Parexemple,observezlerésultatdesinstructionssuivantes:

>plot(data$temps,data$temoin)>points(data$temps,data$eff,col=2)

92

Réalisationd'ungraphique• Pourréaliserdesgraphiquesplusjolis,vouspouvezjoueravec

lesoptionsdelafonctionplot.

93

Réalisationd'ungraphique

• Pourvoir,exécutezcetexemple :>plot(data$temps,data$temoin,xlab ="Temps(heures)",ylab ="DO",pch =19,cex =1.5)

>points(data$temps,data$temoin,pch =19,cex =1.5,col=2)

94

Réalisationd'ungraphique

95

Lab2:LESBASESDULANGAGER

96

STRUCTURESALGORITHMIQUES

97

Branchementconditionnel«if»

98

Branchementconditionnel«if»

99

Lecasparticulierde«ifelse »

• QuisecomportecommelafonctionSI()d’Excel

100

Branchementmultiple«switch »

>switch(n,actionsin=1,actionsin=2,etc.)

– ndoitprendrelesvaleurs1,2,3,….– pasdeelse– actionestlimitéeàuneseuleinstruction.

Onlevoittrèsrarementdanslesprogrammes!

101

Avantlesboucles:générationd’uneséquencedevaleurs

Suitearithmétiquesimple(séquencedevaleursentières)

#générationd’unesuite12…101:10#onpeutstockerdansunevariable#suiteparamétrablea<- 3b<-6a:b#vagénérer3456

Séquencesdevaleursréelles,avecunpasréel

#générationd’unesuite#11.522.5…5(20valeurs)seq(from=1,to=5,by=0.5)

toetbypeuventnepascorrespondre,danscecaslaséquences’arrêteàladernièrevaleurprécédenttoseq(from=1,to=2,step=0.3)11.31.61.9

102

Avantlesboucles:générationd’uneséquencedevaleurs

• Répétitiond’uneséquencedevaleurs>rep(séquence,times =nombredefois,each =répétitiondechaqueélément)

• Exemples>rep(1:4,times=2)->12341234>rep(1:4,each=2)->11223344>rep(1:4,times=2,each=2) ->1122334411223344

103

Boucle«for»• Séquencepeutêtrestockéedansunvecteur• Lepaspeutnepasêtrerégulier• Laséquencen’estmêmepasforcémentmonotone!• Bref,l’outilesttrès(trop)souple->d’oùsalenteur

Onpeut«casser»laboucleavecbreak

>for(indiceinséquence){…instruction(s)}

104

Boucle«for»(exemple)#Afaire:sommeS=SUM_i i^2#saisiedenn<- scan()#initialisationdelasommes<- 0.0#boucleforfor (iin1:n){s<- s+i^2}#affichagedesrésultatsprint("lasomme=")print(s)

105

Boucle«while »

OpérationdecomparaisonAttentionàlaboucleinfinie!

while (condition){…instruction(s)}

106

Boucle«while »#Afaire:sommeS=SUM_i i^2#saisiedenn<- scan()#initialisationdelasommes<- 0.0#boucle«tantque»while (i<n){s<- s+i^2i<- i+1}#affichagedesrésultatsprint("lasomme=")print(s)

107

LaboucleRepeat

>repeat{+b<-b+1+if(b==10)+break+}>b[1]10>

108

LesfonctionssousR

• Lesfonctions sousRsontdesobjetsparticuliersquipermettentdedécouperunprogrammeenunensembled'actions.

• Ilexistebeaucoupdefonctions déjàprogramméessousR.Unefonction atroisattributs:Sonnom,lesargumentsetl’objetderetour.

• Typiquementonappelleunefonctiondelafaçonsuivante:

>x=nom_fonction(arg1, arg2,arg3)

109

Fonctionsécritesparl'utilisateur

110

Ilestpossibled‘écriresoitmêmedesfonctionsenutilisant l‘éditeur.Voiciunexempledefonction,aveclasyntaxeautiliser:

Fonctionsécritesparl'utilisateur

111

Lab3:STRUCTURESALGORITHMIQUES

112

113