Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
Objectifsdelaformation• Voussensibilisezàl’importancedelamaitrisedesoutilsde
programmationstatistiquesdanslecadred’unparcoursprofessionnel;
• SefamiliariseraveclesenvironnementsdeprogrammationR;• ApprendreàmanipulerlelangagestatistiqueRentirantprofit
dessesparticularitésetdesapuissance;• Acquérirparlapratique,lelangagedeprogrammationRetle
traitementexploratoiredesdonnées;• Devenirautonomedansledomainedetraitementstatistique
etdefouillededonnéesenutilisantlelangageR.• Finalement,fairelepremierpasversunprofilde«Data
Scientist »….!2
Objectifdela1ére partie
Lamaîtrisedulangage:• Lecontextegénéral;• Lesenvironnements deprogrammationenR;• LesbasesdulangageR;
4
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
R,çasertàquoi?
• Analyserdesdonnées :– Calculs– Testsd’hypothèses– Simulations– Tracerdesgraphes– Prédictions
21
Evolution:nombredepackages
• Touteslesfonctionssontcontenuesdansdespackages:– certainssontinstallésavecR– Rétantlibre,beaucoupd’autressontdisponiblesenlignesurleCRAN(theComprehensiveRArchiveNetwork)
29
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
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
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
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
L’environnementRStudio
Fichierdescript.r
Console:lignedecommande
Environnementdesvariables
Répertoiredetravail
49
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
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
LesfonctionsInput/Output• Thereisafunctioncalledcat,whichgivesusalittlemoreflexibilitythan
print.It'salittlebitmorelowlevel.• Ifwedocatofvariable(v),youwillseeherethere'snonumberpreceding
it,thereisnoheaderandit'sverybasic.
64
Vecteursetmatrices
• LetypeleplussimpleetleplusfondamentaldestructurededonnéesdansRestlevecteur.
• Lesvecteurssontdesconteneursdedonnéesindexéescommelestableaux
• Lesmatricespeuventêtreconsidéréescommeunegénéralisationdesvecteurspermettantl'indexationàlafoisparligneetcolonne.
66
Importationdedonnées
• Apartirdupackagedebase,Rpeutlirelesdonnésstockéesdansdesfichierstexte,àpartirnotammentdesfonctions.
• Rlitégalementlesfichiersd’autresformats,parmilesquelsExceletSAS.
79
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
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
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.
Analysecroisée
89
Table(x):renvoieunetableavecledécomptedechaquevaleurdifférentedex;Table(x,y):renvoieuntableaudecontingence;
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
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
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: