Sunteți pe pagina 1din 11

n acest document vei gsi un exemplu de analiz a datelor folosind programul R/RStudio.

Toate funciile folosite ar trebui s i fie deja familiare. Prin urmare ar fi indicat s nu te concentrezi att
de mult pe memorarea comenzilor efectuate/ replicarea analizei din exemplu, ci s urmreti cu atenie
logica din spatele etapelor efectuate. De asemenea, diferitele interpretri ale rezultatelor sunt prezentate
n scop ilustrativ, ele nefiind nicidecum o list exhaustiv a posibilelor interpretri pentru analize
statistice. Dup cum probabil i-ai dat seama deja pn acum, n R exist mai multe moduri prin care
poi obine aceeai transformare sau analiz a datelor. Prin urmare, dac tii moduri mai simple de a
parcurge etapele descrise mai jos, nu ezita s le foloseti.
n acest document nu vei gsi informaii despre: cum se instaleaz programul R, R Studio, cum
se stabilete directorul de lucru (working directory), cum se salveaz o baz de date n format .csv sau
alte aspecte ce in de managementul datelor/folosirea computerului. Pentru acestea poi consulta
documentele de forma Laborator_n_2015.pdf de pe platforma moodle. Dac dup parcurgerea lor mai
ai unele neclariti, poi cuta rspunsurile pe internet, mi poi scrie un e-mail sau poi suna un prieten.

EXEMPLU DE ANALIZ A DATELOR FOLOSIND PROGRAMUL R/RStudio

Set de date: PISA_RO.csv


Baza de date conine rezultatele elevilor de liceu din Romnia la testul PISA, alturi de o serie de
indicatori compui privind factori familiali, individuali i ai contextului colar care ar putea s explice
diferenele de rezultate la teste.

ETAPA1: FORMULAREA IPOTEZELOR


Atenie! NU trata cu superficialitate aceast etap, ea fiind poate cea mai important etap n
demersul tu.
R, sau alte programe de analiz a datelor nu tiu s formuleze ipoteze, ci doar s analizeze date/
calculeze coeficieni statistici.
Cteva elemente de avut n vedere n aceast etap:
- nivelul de msurare al variabilelor selectate (de ex: nu poi face corelaii ntre variabile msurate
la nivel nominal, i.e. ocupaia respondenilor i apartenena religioas).
- tipul de analiz pe care vrei s-l faci (ipotezele sunt formulate diferit pentru analiza de corelaie
i analiza de regresie
- justificarea logic/teoretic a ipotezei formulate (de ex: nu prea am de ce s asum c oamenii
care se informeaz despre probleme politice/sociale particip mai puin la aciuni de
protest/civice dect cei care nu se informeaz. Acest lucru nu nseamn c o astfel de ipotez nu
poate fi niciodat formulat/testat, dar ar trebui s existe o justificare teoretic pentru o astfel de
decizie).

Exemplu:
Ipotez pentru analiz de corelaie:
Exist o asociere pozitiv ntre rezultatele la testul de matematic i rezultatele la testul de lectur.
Rezultatele la testul de tiine coreleaz pozitiv cu rezultatele la testul de matematic (ipotez testat n
acest exemplu)
Ipotez pentru analiz de regresie:
Rezultatul unui elev la testul de matematic este influenat de urmtorii factorii:
percepia elevilor cu privire la managementul clasei n timpul orelor de matematic;
percepia elevilor cu privire la sprijinul acordat de profesor n orele de matematic;
percepia elevilor cu privire la relaie elev-profesor;
percepia elevilor cu privire la sprijinul acordat de profesori n general;

ETAPA2: PREGTIREA DATELOR PENTRU ANALIZ


# Deschiderea bazei de date (din format .csv)
baza<-read.csv("PISA_RO.csv", header=TRUE, sep=";", dec=",")

# Selectarea unor variabile de lucru


short<-baza[,c("CLSMAN", "MTSUP", "STUDREL", "TEACHSUP", "MATH",
"READ", "SCIENCE")]

# Verificarea codificrilor missing values ca NA


summary(short) # produce un output cu range-ul, quartilele, media, mediana i numrul de
missing values pentru toate variabilele incluse n baza/obiectul short.
table(short$TEACHSUP) # produce un output cu numrul de rspunsuri pentru fiecare
categorie de rspuns coninut de variabila TEACHSUP din baza/obiectul short.

# Recodificri
Putem folosi funcia recode() din pachetul car.
library(car)
#forma general a funciei recode()
Baza$VariablNou<-recode(Baz$VariabilVeche, valoare/i veche/i=valoare nou)

Pentru exemplul ales, nu este necesar s efectum recodificri (n baza funciei summary() de mai sus).
ETAPA3: TESTAREA ASUMPIEI PRIVIND DISTRIBUIA NORMAL A DATELOR +
ELEMENTE DE STATISTIC DESCRIPTIV

Pentru corelaii (folosind coeficietul Pearsons r i calculnd pragul de semnificaie statistic) asumm
c cele dou variabile sunt normal distribuite.
n cazul analizei de regresie, asumpia privind normalitatea nu se refer la variabilele independente sau
dependent, ci la distribuia normal a erorilor. De aceea, testarea acestei asumpii o vom face ntr-o
etap ulterioar (6A).

Putem testa respectarea asumpiilor privind distribuia normal n 3 moduri:


reprezentarea grafic a datelor (histogram, Q-Q plot)
valorile pentru Skewness i Kurtosis (trebuie s fie ct mai apropiate de 0, i preferabil nu
mai mari dect 1)
test de normalitate, ce compar distribuia datelor noastre cu o distribuie normal (ex:
Shapiro-Wilk)

attach(short)
hist(MATH, col=2, main="Distribuia rezultatelor la testul de matematic")

hist(SCIENCE, col=3, main="Distribuia rezultatelor la testul de tiine")

qqnorm(MATH, main="Q-Q plot, Matematic")


qqline(MATH)
qqnorm(SCIENCE, main="Q-Q plot, tiine")
qqline(SCIENCE)

Pentru valorile coeficienilor de skewness, kurtosis i rezultatul testului de normalitate Shapiro-Wilk


putem folosi funcia stat.desc() din pachetul pastecs.

library(pastecs)
stat.desc(MATH, basic=FALSE, norm=TRUE)
stat.desc(SCIENCE, basic=FALSE, norm=TRUE);
#argumentul norm=TRUE ofer indicatorii privind distribuia normal a unei variabile, n
timp ce basic=FALSE, are scopul de a simplifica outputul obinut, ntruct n momentul de fa
suntem interesai doar de normalitatea distribuiei.

Pentru simplicarea out-putului, putem rotunji valorile, folsind funcia round()


a<-stat.desc(MATH, basic=FALSE, norm=TRUE)
round(a, digits=2)

b<-stat.desc(SCIENCE, basic=FALSE, norm=TRUE)


round(b, digits=2)

MATH
median mean SE.mean CI.mean.0.95 var std.dev
440.73 446.69 1.14 2.23 6278.48 79.24
coef.var skewness skew.2SE kurtosis kurt.2SE normtest.W
0.18 0.32 4.60 -0.03 -0.20 0.99
normtest.p
0.00

SCIENCE
median mean SE.mean CI.mean.0.95 var std.dev
435.23 439.92 1.12 2.19 6050.52 77.79
coef.var skewness skew.2SE kurtosis kurt.2SE normtest.W
0.18 0.22 3.06 -0.17 -1.19 1.00
normtest.p
0.00
Pe baza graficelor obinute, se poate observa c ambele variabile se aproprie de forma unei
distribuii normale. Acest lucru este confirmat i de valorile pentru skewness i kurtosis, care sunt mai
mici de 0.5 pentru ambele variabile. Rezultatele la testul Shapiro-Wilk ar indica faptul c putem
respinge ipoteza potrivit creia cele dou variabile provin din populaii normal distribuite
(p<0.05), ns volumul mare al eantionului (N=4835) poate genera erori n rezultate oferite de testul
Shapiro-Wilk. Prin urmare, pe baza reprezentrii grafice i valorile pentru skewness i kurtosis voi
considera cele dou variabile ca fiind normal distribuite.
ETAPA4: CORELAIE
cor.test(MATH,SCIENCE)
Pearson's product-moment correlation
data: MATH and SCIENCE
t = 103.8887, df = 4833, p-value < 2.2e-16
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.8221591 0.8396057
sample estimates:
cor
0.8310868

# Scatterplot
plot(MATH~SCIENCE, main="Scatterplot Matematic~tiine")
abline(lm(MATH~SCIENCE), col=2)

Rezultatele la proba de matematic din testul PISA coreleaz puternic pozitiv (p< .001, r= .83) cu
rezultatele la proba de tiine din cadrul aceluiai test.

! Pentru date ce ncalc asumpia distribuiei normale vom calcula coeficienii Spearmans rho sau
Kendalls tau, introducnd argumentul method= n cadrul funciei cor.test().
cor.test(MATH,SCIENCE, method="spearman" sau method=kendall)
ETAPA 5: ANALIZA DE REGRESIE
Evaluarea general a modelului, stabilirea contribuiei fiecrei variabile i eventual reluarea
analizei cu un model simplificat.
regresie<-lm(MATH~CLSMAN+MTSUP+STUDREL+TEACHSUP)
summary(regresie)
Residuals:
Min 1Q Median 3Q Max
-231.908 -56.285 -5.344 51.761 298.676

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 448.474 1.454 308.369 < 2e-16 ***
CLSMAN 12.803 1.617 7.918 3.31e-15 ***
MTSUP -1.280 1.753 -0.730 0.466
STUDREL -6.651 1.583 -4.201 2.73e-05 ***
TEACHSUP -8.410 1.698 -4.954 7.65e-07 ***
---
Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1

Residual standard error: 77.13 on 3172 degrees of freedom


(1658 observations deleted due to missingness)
Multiple R-squared: 0.02918, Adjusted R-squared: 0.02795
F-statistic: 23.83 on 4 and 3172 DF, p-value: < 2.2e-16

Observm c factorii ce in de modul n care elevii percep climatul colar (managementul clasei,
sprijinul n timpul orelor de matematic, relaia dintre profesori i elevi, sprijinul general al profesorilor)
influeneaz n foarte mic msur rezultate elevilor la proba de matematic din cadrul testului PISA,
explicnd doar 2.7% din variaia acestor rezultate (Adjusted R-squared= .027). Mai mult dect att,
observm c sprijinul acordat n timpul orelor de matematic nu contribuie semnificativ n model (p> .
05), n timp ce coeficienii beta pentru relaia dintre profesori i elevi i sprijinul general al profesorilor
sunt negativi, contrar ipotezei formulate.

#Standardizarea coeficienilor beta


library(QuantPsyc)
lm.beta(regresie)
CLSMAN MTSUP STUDREL TEACHSUP
0.16020508 -0.01588957 -0.08716807 -0.09657486

Dintre coeficienii beta standardizai observm c managementul clasei are cea mai important
contribuie n model (dei una redus). Astfel, pentru o cretere a scorurilor pentru variabila CLSMAN
cu o abatere standard (adic cu 0.978) putem prezice o cretere a rezultatului la testul de matematic cu
0.16 abateri standard, adic o cretere a scorului cu 12.67 (0.16 * 79.23=12.67).

sd(CLSMAN,na.rm=T): 0.9789925
sd(MATH): 79.23685
Eliminarea variabilei MTSUP (sprijinul n timpul orelor de matematic) din model nu produce
modificri importante pentru Adjusted R-squared:
regresie2<-lm(MATH~CLSMAN+STUDREL+TEACHSUP)
summary(regresie2)

Residuals:
Min 1Q Median 3Q Max
-232.753 -56.509 -4.985 51.608 298.728

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 448.239 1.450 309.220 < 2e-16 ***
CLSMAN 12.549 1.540 8.151 5.13e-16 ***
STUDREL -7.053 1.503 -4.694 2.79e-06 ***
TEACHSUP -8.665 1.647 -5.262 1.52e-07 ***
---
Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1

Residual standard error: 77.12 on 3184 degrees of freedom


(1647 observations deleted due to missingness)
Multiple R-squared: 0.02921, Adjusted R-squared: 0.02829
F-statistic: 31.93 on 3 and 3184 DF, p-value: < 2.2e-16
ETAPA 6: TESTAREA ASUMPIILOR REGRESIEI
6A. Homoschedasticitatea, linearitatea i distribuia normal a rezidualilor
plot(regresie2)

hist(rstudent(regresie2), main="Distribuia rezidualilor standardizai")

qqnorm(rstudent(regresie2), main="Q-Q plot reziduali standardizai")

shapiro.test(rstudent(regresie2))
Shapiro-Wilk normality test

data: rstudent(regresie2)
W = 0.9931, p-value = 3.502e-11

sau
stat.desc(rstudent(regresie2), norm=T, basic=F)
c<-stat.desc(rstudent(regresie2), norm=T, basic=F)
round(c, digits=3)

median mean SE.mean CI.mean.0.95 var std.dev


-0.065 0.000 0.018 0.035 1.001 1.000
coef.var skewness skew.2SE kurtosis kurt.2SE normtest.W
16548.914 0.310 3.574 -0.078 -0.451 0.993
normtest.p
0.000

Att distribuia grafic ct i valorile pentru skewness i kurtosis ne indic faptul c distribuia
rezidualilor se aproprie de o distribuie normal. De asemenea, primul grafic din aceast seciune ne
indic faptul c rezidualii sunt distribuii linear i se respect asumpia de homoschedasticitate.

6B. Absena multicolinearitii (funcia vif() din pachetul car)


libary(car)
Test/ funcie Valori ce indic absena multicolinearitii
vif(regresie2) coeficieni <10
1/vif(regresie) coeficieni > 0.2
mean(vif(regresie2)) media = ~ 1

vif(regresie2)
CLSMAN STUDREL TEACHSUP
1.215350 1.268321 1.171738
1/vif(regresie2)
CLSMAN STUDREL TEACHSUP
0.8228084 0.7884438 0.8534330
mean(vif(regresie2))
[1] 1.21847

Pe baza rezultatelor obinute putem concluziona c asumpia privind absena multicolinearitii este
ndeplinit (nu exist multicolinearitate la nivelul variabilelor independente incluse n model).
Din 6A + 6B + alte asumpii (netestate aici) am putea concluziona c modelul poate fi generalizat la
nivelul populaiei din care a fost selectat eantionul.

S-ar putea să vă placă și