Upload
others
View
22
Download
0
Embed Size (px)
Citation preview
Introducere în R
Cuprins
1. Instrucțiuni de instalare a programului statistic R și a interfeței grafice R Commander ...................................2
2. Import de fișiere Excel ........................................................................................................................................6
3. Creare și manipulare variabile ............................................................................................................................9
4. Calcularea frecvențelor ................................................................................................................................... 11
5. Calcularea indicatorilor tendinței centrale ...................................................................................................... 12
6. Calcularea indicatorilor variabilității ............................................................................................................... 14
7. Analiza de corelație (indicatori) ....................................................................................................................... 16
8. Analiza de regresie .......................................................................................................................................... 18
9. Testarea de ipoteze statistice .......................................................................................................................... 21
10. Realizarea reprezentărilor grafice ................................................................................................................. 25
Material realizat de către Departamentul de Statistică și Econometrie, CSIE, ASE
Coordonator realizare material: asistent universitar doctor Adrian Oțoiu
Departamentul de Statistică și Econometrie – ASE București
2
1. Instrucțiuni de instalare a programului statistic R și a
interfeței grafice R Commander
R este unul dintre cele mai avansate programe statistice. Pe lângă faptul că este gratuit (open source software) mai
are avantajul existenței unui grup de utilizatori activi care aduc îmbunătățiri, dezvoltă module noi (pachete/
packages) specializate pe implementarea unor algoritmi și funcționalități specifice (ex. ts pentru serii de timp), și
oferă sfaturi și asistență pe forumuri specializate. Pachetele disponibile ca extensii pentru R trebuie să îndeplinească
o serie de cerințe legate de conținut și documentație, fiind verificate de voluntari.
Pagina https://cran.r-project.org/ conține linkuri pentru descărcarea programului R pentru mai multe sisteme de
operare. Pentru Windows se dă click pe linkul Download R for Windows, după care se dă clic pe linkul base. Acest
link va duce la pagina de unde se poate descărca ultima versiune disponibilă (R-3.4.3 la data publicării).
Figura 1. Pagina de download a programului R
După instalare se deschide pachetul R, care în configurația de bază apare ca o consolă grafică.
Figura 2 Consola R
Meniul Packages permite descărcarea, instalarea și încărcarea pachetelor R.
Departamentul de Statistică și Econometrie – ASE București
3
Pentru descărcarea unui pachet se selectează întâi locația de descărcare a fișierului, din figura 3, și se dă clic pe
butonul OK. Apoi se selectează pachetul Rcmdr din meniul Packages submeniul Install package(s), și se instalează
dând clic pe butonul OK.
Figura 3
Dacă instalarea este făcută cu succes, în consola R vor apărea mesaje similare celor din figura 4. Următorul pas
pentru a utiliza pachetul instalat este încărcarea sa prin selectarea submeniului Load package, selectarea sa și click
pe OK.
Figura 4. Mesaje de instalare a pachetului table1xls
Folosirea programului R în consolă este însă destul de anevoioasă, motiv pentru care se recomandă folosirea
interfeței grafice RCommander.
Această interfața se instalează fie prin selectarea pachetului Rcmdr, conform instrucțiunilor anterioare, sau prin
rularea comenzii install.packages("Rcmdr") prin introducerea sa după prompt.
Lansarea interfeței grafice RCommander se face prin comanda library("Rcmdr"), prezentată în figura 5.
Departamentul de Statistică și Econometrie – ASE București
4
Figura 5. Interfața grafică RCommander
Această interfață are trei ferestre, Rscript în care se pot vizualiza comenzile apelate din meniuri, sau se pot introduce
manual comenzi care se pot rula prin selectare și clic pe butonul Submit, Output în care se afișează rezultatele
obținute, și Messages care arată modul în care s-au executat comenzile, inclusiv erorile de rulare.
Meniurile permit aproape toate operațiile de bază care pot fi efectuate din meniurile altor pachete statistice (SPSS,
Statistica etc.). Principalele meniuri de bază și capabilitățile subcomenzilor care le includ sunt:
File - manipulare fișierelor (salvare, încărcare)
Edit - editare a scripturilor și a rezultatelor comenzilor rulate, (copiere, inserare, ștergere, căutare, selectare)
Data - încărcare, salvare și combinare a seturilor de date, import și export de date, manipulare de variabile, extragere
de noi eșantioane, ștergerea valorilor lipsă.
Statistics- sumarizări și corelații, teste statistice, modele de regresie, analiză factorială, analiză cluster
Departamentul de Statistică și Econometrie – ASE București
5
Models- comenzi legate de selecția modelelor și performanța acestora
Tools- permite încărcarea facilă a pachetelor R.
În plus, mai există și ferestre de selecție: Dataset, pentru activarea seturilor de date, Models pentru apelarea
modelelor salvate în spațiul de lucru, Edit data set pentru editarea setului de date activ (vizibil în fereastra Dataset)
și View data set pentru vizualizarea seturilor de date activ.
La sfârșitul sesiunii de lucru se recomandă oprirea programului din consolă cu ajutorul comenzii q().
O regulă de bază în R este că acesta diferențiază literele mari de cele mici.
Material preluat din cartea Analiza cantitativă a pieței muncii. Abordări teoretice și aspecte practice’’, Adrian
Oțoiu, Editura Meteor Press, București 2015, ISBN: 978-973-728-667-2.
Departamentul de Statistică și Econometrie – ASE București
6
2. Import de fișiere Excel
RCommander permite importul fișierelor de date în formate diferite, conform figurii de mai jos. În continuare vom
exemplifica importul datelor dintr-un fișier Excel.
Figura 6. Importul fișierelor folosind RCommander
Pentru exemplificare vom folosi fișierul date import.xls, care conține date privind consumul de carburant pentru
30 de țări. Datele ce urmează a fi importate sunt în foaia de calcul date.
Pentru import cu ajutorul interfeței RCommander se parcurg următorii pași:
1) Clic pe Data, apoi pe Import data, apoi pe from excel file.
2) în fereastra de dialog care apare în figura 7, se debifează opțiunea Convert character data to factors. Optional
se redenumește numele fișierului ce urmează a fi creat, de exemplu consum.
3) Se dă clic pe butonul OK, se alege fișierul ce urmează a fi importat prin clic pe butonul open sau dublu-clic pe
fișier
4) Se selectează foaia de calcul date, apoi clic pe OK.
5) Daca importul s-a realizat cu succes, denumirea setului de date apare în data set, concomitent cu un mesaj în
partea de jos a consolei RCommander, fereastra Messages (Figura 8)
6) Vizualizarea datelor se poate realiza prin clic pe butonul View Data Set (exemplu în Figura 9), sau prin selectarea
numelui fișierului urmat de clic pe butonul submit. Datele apar în fereastra de output, exemplificată în figura 9.
Departamentul de Statistică și Econometrie – ASE București
7
Figura 8. Importul datelor dintr-un fișier Excel
Figura 8. Verificarea datelor importate în RCommander
2)
3) 4)
1)
Departamentul de Statistică și Econometrie – ASE București
8
Figura 9. Vizualizarea unui set de date în RCommander
Importul se poate realiza folosind următorul cod, care se poate rula prin introducerea în prima fereastră a
comenzilor, selectarea acestora și executarea lor prin clic pe butonul Submit
combustibil <- readXL("D:/ase/material R/date import.xlsx", rownames=FALSE, header=TRUE, na="",
sheet="date", stringsAsFactors=FALSE)
Departamentul de Statistică și Econometrie – ASE București
9
3. Creare și manipulare variabile
Într-un set de date existent, există mai multe modalități de creare de variabile noi.
a) folosind facilitatea de editare a unui set de date în RCommander, prin clic pe butonul Edit Data Set, apoi pe
New Column (vezi figura 3.1). Se creează o noua variabila V7, care poate fi redenumita, (Var_noua în exemplul
de mai jos), iar valorile se introduc în celule prin înlocuirea valorilor lipsă, marcate NA.
Acest meniu mai oferă și alte posibilități de editare: ștergerea unui rând, ștergerea unei coloane, ștergerea unei celule
și tăierea sau copierea unei celule.
Salvarea tuturor modificărilor se face dând clic pe butonul OK din fereastra de editare. Confirmarea salvării
modificărilor apare în fereastra Messages, unde se pot vedea numărul de rânduri și coloane ale fișierului actualizat
(vezi figura 3.1).
Meniul de editare se poate apela prin comanda editDataset(numesetdate).
Figura 3.1. Crearea unei noi variabile în RCommander
Departamentul de Statistică și Econometrie – ASE București
10
b) direct din linia de comandă, ca în exemplul de mai jos. Prima comandă creează o variabilă cu valori lipsă, după
care a doua comandă introduce valorile dorite. în cazul în care valorile introduse sunt mai puține decât numărul de
observații, (de exemplu c(1,...,5)) R completează valorile lipsă prin repetarea valorilor. De aceea se recomandă
verificarea numărului de observații prin comanda nrow(numesetdate).
combustibil$varnoua <- NA
combustibil$varnoua <- c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30)
Pentru (re)codarea variabilelor, se pot folosi linii de cod care definesc exact criteriile/condițiile folosite:
În exemplul de mai jos, variabila Consum_carburant se codează în variabila Grupa_consum 3 categorii distincte:
combustibil$Grupa_consum[combustibil$Consum_carburant < 500] <- "sub 500"
combustibil$Grupa_consum[combustibil$Consum_carburant >= 500 & combustibil$Consum_carburant < 700] <-
"500-700"
combustibil$Grupa_consum[combustibil$Consum_carburant >= 700] <- "peste 700"
Notă: Identificarea unei variabile într-un set de date se face folosind sintaxa numesetdate$numevariabila
R permite și crearea unor variabile pornind de la variabile existente.
a) prima modalitate este Folosirea meniului Data, prin clic pe Manage variables în active data set, apoi pe
Compute new variable. în fereastra de dialog care se deschide, se introduce numele noii variabile (consum pe km
de autostrada) și formula de calcul (Consum_carburant/KM_autostrazi)
Figura 3.2. Crearea de noi variabile
b) prin linia de comandă
combustibil$ConsumperKM <- with(combustibil, Consum_carburant/ KM_autostrazi)
Departamentul de Statistică și Econometrie – ASE București
11
4. Calcularea frecvențelor
Pentru variabilele discrete, calcularea frecvențelor se face folosind comanda table(numefisier$variabila).
Rezultatul se afișează în fereastra de output, pe 2 rânduri, primul conține variantele pentru care se calculează
frecvențele, al doilea frecvențele de apariție pentru valorile din primul rând.
Pentru variabila acciza din setul de date combustibil, în urma executării comenzii table(combustibil$acciza) se
obține următorul output:
> table(combustibil$acciza)
7 7.5 8 8.5 9 10
9 3 8 2 7 1
Departamentul de Statistică și Econometrie – ASE București
12
5. Calcularea indicatorilor tendinței centrale
Cea mai simplă modalitate de calcul a mediei și medianei folosește funcția de sumarizare a variabilelor dintr-un set
de date, exemplificată în figura 5.1.
Comanda echivalentă care se poate folosi este summary(numele setului de date). De exemplu
summary(combustibil), care poate fi executata prin introducerea în fereastra de dialog din RCommander, și apăsarea
butonului submit.
Figura 5.1. Prezentarea statisticilor descriptive ale setului de date
R nu are o funcție standard pentru calculul valorii modale. Pentru obținerea acesteia se folosesc două comenzi:
1) Calcularea frecvențelor variabilei analizate, ex. y <- table(combustibil$Consum_carburant)
2) Selectarea variantei corespunzătoare frecvenței maxime, ex. names(y)[which(y==max(y))]
Comenzile respective se introduc în fereastra RScript, și se execută apăsând butonul Submit.
Pentru variabila Consum_carburant, avem 2 valori modale, 464 și 566.
Departamentul de Statistică și Econometrie – ASE București
13
Figura 5.2. Obținerea valorii modale
Departamentul de Statistică și Econometrie – ASE București
14
6. Calcularea indicatorilor variabilității
Calculul acestor indicatori se face folosind meniul Numerical Summaries. în tabul Data se selectează variabila de
interes, în cazul nostru Consum_carburant, apoi se selectează indicatorii de interes în tabul Statistics (vezi figura
6.1).
Figura 6.1. Calculul indicatorilor variabilității
În exemplul de față am calculat deviația standard, eroarea standard a mediei, abaterea intercuartilică și coeficientul
de variație pentru variabila Consum_carburant. Rezultatele, și codul corespunzător acestora, generat de
RCommander sunt prezentate în figura 6.2. Similar cu exemplele anterioare, codul poate fi executat prin selecție și
clic pe butonul Submit.
Departamentul de Statistică și Econometrie – ASE București
15
Figura 6.2. Codul necesar calculării indicatorilor variabilității și rezultatele obținute
Notă: calculul se poate efectua pentru fiecare variabilă în parte folosind comanda:
numSummary(numesetdate$numevariabila, statistics="indicatordecalculat")
unde indicatorul se specifică în ghilimele după parametrul statistics=
De exemplu pentru calculul deviației standard avem:
numSummary(combustibil$Consum_carburant, statistics="sd")
Departamentul de Statistică și Econometrie – ASE București
16
7. Analiza de corelație (indicatori)
RCommander permite calculul coeficienților de corelație Pearson și Spearman, detaliat în figura 7.1. Se ajunge la
meniul respectiv selectând Statistics, Summaries, Correlation Matrix. în fereastra Correlation Matrix, se
selectează variabilele de analizat, coeficientul ce urmează a fi calculat și modul de calcul. Dacă nu există valori
lipsă, se selectează complete observations, iar în cazul în care sunt valori lipsă și se dorește folosirea tuturor datelor
disponibile se selectează Pairwise-complete observations, adică perechi de observații complete.
Figura 7.1. Calculul indicatorilor de corelație
Rezultatul se poate vedea în fereastra de output, sub forma unui tabel de coeficienți.
Comenzile aferente pentru calculul corelațiilor sunt:
-pentru coeficientul Pearson:
cor(combustibil[,c("acciza","Consum_carburant","Detinatori_Permis","KM_autostrazi","Venit")],
use="complete")
-pentru coeficientul Spearman:
cor(combustibil[,c("acciza","Consum_carburant","Detinatori_Permis",
Departamentul de Statistică și Econometrie – ASE București
17
"KM_autostrazi","Venit")], method="spearman", use="complete")
Coeficientul de corelație Kendall se calculează cu următoarea comandă:
library(Kendall)
Kendall(combustibil$Consum_carburant, combustibil$KM_autostrazi)
Rularea comenzii presupune instalarea pachetului Kendall, urmând instrucțiunile din capitolul 1, și încărcarea
acestuia prin comanda library(Kendall).
Mai multe detalii despre calculul acestui coeficient în R se gasesc aici:
https://www.rdocumentation.org/packages/VGAM/versions/1.0-4/topics/kendall.tau
Departamentul de Statistică și Econometrie – ASE București
18
8. Analiza de regresie
Regresia liniară se realizează utilizând ferestrele de dialog Linear Regression sau Linear model, accesibile prin
selecția meniurilor Statistics, apoi Fit models.
Comanda standard pentru regresia liniară este:
model <- lm(Consum_carburant ~ KM_autostrazi+Detinatori_Permis, data=combustibil)
summary(model)
unde Consum_carburant este variabila dependentă, iar KM_autostrazi și Detinatori_Permis variabilele explicative.
Setul de date care conține variabilele este accesat prin comanda data=numesetdate
Deoarece outputul standard nu conține intervalele de încredere, este necesară folosirea comenzii
confint(model, level = 0.95)
pentru a le obține. Comanda folosește coeficienții din rezultatele obținute, iar lungimea intervalului de încredere
este specificată în opțiunea level (în cazul de față pentru o probabilitate de 95%).
Notă. Pentru a evita afișarea rezultatelor în format științific/exponențial (de exemplu 5.257e+02) se poate folosi
opțiunea de formatare
options(scipen = 999)
care trebuie executată înaintea comenzii de regresie.
Departamentul de Statistică și Econometrie – ASE București
19
Figura 8.1. Regresia liniara simplă în interfața RCommander
Departamentul de Statistică și Econometrie – ASE București
20
Departamentul de Statistică și Econometrie – ASE București
21
9. Testarea de ipoteze statistice
RCommander oferă posibilitatea efectuării testelor t (simplu și pe 2 eșantioane) și ANOVA.
Aceste teste se pot accesa din meniul Statistics, Means.
Pentru efectuarea testului t simplu, se accesează meniul Single-Sample t-Test. Aici se selectează variabila testată,
tipul ipotezei alternative, apoi se introduce valoarea parametrului care se testează µ0 și nivelul de încredere, după
care se apasă butonul OK.
Rezultatul apare în fereastra de output.
9.1. Testul t pe un eșantion
Codul necesar efectuării unui test bilateral pentru ipoteza în care, pentru consumul de carburant µ0 =4000, pentru
un nivel de încredere de 95% este:
t.test(combustibil$Consum_carburant, alternative='two.sided', mu=4000, conf.level=.95)
Departamentul de Statistică și Econometrie – ASE București
22
iar pentru testul unilateral, se specifică tipul acestuia prin schimbarea valorii parametrului alternative:
- pentru testul unilateral stânga : alternative='less'
- pentru testul unilateral dreapta : alternative='greater’
Pentru testul t pentru două eșantioane, se accesează meniul Paired t-Test. în fereastra de dialog, în tabul Data se
selectează variabilele ce urmează a fi testate, iar în tabul Options, tipul testului și nivelul de încredere.
9.2. Testul t pe două eșantioane
Departamentul de Statistică și Econometrie – ASE București
23
Comenzile corespunzătoare efectuării testelor pe 2 eșantioane sunt:
t.test(combustibil$Consum_carburant, combustibil$Venit, alternative='greater', mu=0, conf.level=.95,
paired=TRUE)
unde parametrul alternative indică tipul testului (similar testului t simplu), paired dacă testul se efectuează pe
observații perechi (paired=TRUE) sau nu (paired=FALSE), iar mu care este diferența ipotetică dintre mediile celor
2 variabile.
Mai multe detalii despre testele t se găsesc în documentația aferentă acestei comenzi
https://stat.ethz.ch/R-manual/R-devel/library/stats/html/t.test.html
Testul Anova simplu (univariat)
Testul Anova pentru egalitatea mediilor, se rulează prin accesarea meniurilor, Statistics, Means, One-way
ANOVA. în fereastra de dialog se specifică variabila de grupare (în cazul nostru grupele de consum), menționate
în secțiunea 3 Creare și manipulare variabile, și variabila pentru care se efectuează testul (Venit).
Rezultatul din figura 9.3 ne arată tabela ANOVA cu rezultatul testului, urmată de un tabel cu statisticile descriptive
pentru fiecare grupă în parte.
Figura 9.3. Testul Anova simplu
Departamentul de Statistică și Econometrie – ASE București
24
Codul necesar efectuării testului ANOVA este:
AnovaModel.4 <- aov(Venit ~ Grupa_consum, data=combustibil)
summary(AnovaModel.4)
with(combustibil, numSummary(Venit, groups=Grupa_consum, statistics=c("mean", "sd")))
unde AnovaModel.4, este obiectul R care conține rezultatele testului. Aceste rezultate se afișează folosind comanda
summary. Ultima comandă este pentru generarea mediei, abaterii standard și numărului de elemente pentru fiecare
grupă.
Notă: obiectul care conține rezultatele testului ANOVA poate fi denumit și altfel de ex. testA
Departamentul de Statistică și Econometrie – ASE București
25
10. Realizarea reprezentărilor grafice
RCommander oferă posibilitatea realizării unei game diversificate de grafice, prezentate în figura 10.1.
Figura 10.1. Meniul de grafice din RCommander
Pentru graficul Box-Plot, în fereastra de dialog, prezentată în Figura 10.2, se selectează variabila din
meniul Data, apoi opțiunile existente în meniul Options, care includ modalități de reprezentare a
outlierilor și de etichetare a graficului. În exemplul nostru am denumit graficul Consumul de carburant.
Graficul este generat într-o fereastră în interfața R. Copierea graficului se face prin clic dreapta și
selectarea unei opțiuni convenabile.
Comanda necesară generării graficului Box-plot pentru variabila Consum_carburant din setul de date
combustibil este:
Boxplot( ~ Consum_carburant, data=combustibil, id.method="y", main="Consumul de Carburant")
Departamentul de Statistică și Econometrie – ASE București
26
Figura 10.2. Fereastra de dialog pentru diagrama Box-Plot
Departamentul de Statistică și Econometrie – ASE București
27
Pentru histogramă se recomandă executarea comenzilor prin rularea unui cod personalizat, întrucât graficele
generate cu RCommander sunt formatate folosind opțiuni implicite, care nu corespund întotdeauna cerințelor
reprezentării corecte a datelor.
Un exemplu de cod, pentru o histogramă a consumului de carburant, reprezentată în figura 10.3, conține opțiunile
necesare generării unui grafic complet.
hist(combustibil$Consum_carburant, main="Consumul de carburant", col="green",
breaks=c(300,450,600,750,900), xlim=range(300,900), ylim=c(0,30),labels=TRUE)
astfel: main folosește la afișarea titlului graficului, col la specificarea culorii barelor, labels la afișarea frecvenței
grupelor, breaks la specificarea limitelor grupelor, xlim și ylim la specificarea intervalelor de valori pentru axe.
Pentru mai multe detalii despre aceasta comandă se recomandă consultarea documentației la adresa
http://stat.ethz.ch/R-manual/R-devel/library/graphics/html/hist.html
Figura 10.3. Exemplu de histogramă
Corelograma se realizează selectând meniurile Graphics, apoi Scatterplot. În fereastra de dialog din figura 10.4
se selectează variabilele pentru care se realizează graficul, apoi se da clic pe OK.
Comanda R pentru realizarea corelogramei pentru variabilele Venit și Consum_carburant este:
scatterplot(Venit~Consum_carburant, reg.line=FALSE, smooth=FALSE, spread=FALSE,
boxplots=FALSE, ellipse=FALSE, data=combustibil)
Notă: în executarea acestei comenzi, se recomandă menținerea optiunilor , reg.line, smooth, spread,
boxplots, ellipse, cu valoarea FALSE, dacă nu se dorește în mod explicit reprezentarea acestor elemente.
Departamentul de Statistică și Econometrie – ASE București
28
Figura 10.4 Realizarea corelogramei în RCommander
Diagrama de structură
Diagrama de structură este denumită Pie chart și se reprezintă folosind meniul Graphs, apoi Pie Chart.
În fereastra de dialog din figura 10.5 se selectează variabila care se va reprezenta grafic, și se vor specifica opțiunile
de etichetare, după care se dă clic pe OK.
Figura 10.5 Realizarea diagramei de structură în RCommander
Departamentul de Statistică și Econometrie – ASE București
29
Pentru realizarea unei diagrame de structură se recomandă folosirea următoarelor linii de cod:
mytable <- table(combustibil$Grupa_consum)
lbls <- paste(names(mytable), "\n", mytable, sep="")
pie(mytable, labels = lbls,
main="Grupe Consum\n (cu nr. elemente)")
Datele care vor fi reprezentare grafic se salvează într-o tabelă (mytable), de unde se extrag numele grupelor și
numărul de elemente corespunzătoare ca etichete pentru grafic, salvate în obiectul lbls. Graficul este generat de
comanda pie, cu parametrii setului de date care conține variabila de reprezentat, etichetele graficului (labels = lbls),
și titlul graficului (main="Grupe Consum\n (cu nr. elemente)").
mytable1 <- table(combustibil$Grupa_consum)
mytable <- data.frame(mytable1)
percentlabel = round(100*mytable$Freq/sum(mytable$Freq),1)
pielabel = paste(names(mytable1), ": ", percentlabel,"%",sep = "")
pie(mytable1,labels = pielabel, main="Grupe Consum\n (cu nr. elemente)")