You are on page 1of 54

Facultat de ciències econòmiques i empresarials

Assignatura: Estadística

Estudis: CIF
Índex

1. DESCARREGAR EL PROGRAMARI ...................................................................................... 2


1.1. DESCARREGAR R SOFTWARE .................................................................................................. 2
1.2. DESCARREGAR R-STUDIO ...................................................................................................... 3
2. INTRODUCCIÓ A L’R-STUDIO ............................................................................................... 6
3. IMPORTAR LES DADES, PREPARAR-LES I ARXIVAR-LES ............................................ 10
4. ESTADÍSTICA DESCRIPTIVA UNIVARIANT AMB R-STUDIO ........................................ 14
4.1. TAULA DE FREQÜÈNCIES DE VARIABLE QUALITATIVA O QUANTITATIVA DISCRETA. GRÀFIC DE
BARRES ........................................................................................................................................... 14
4.2. TAULA DE FREQÜÈNCIES DE VARIABLE QUANTITATIVA CONTÍNUA. GRÀFIC DE BARRES
(QUANTITATIVA AGRUPADA), HISTOGRAMA I DIAGRAMA DE CAIXA .................................................... 15
4.3. MESURES DE POSICIÓ I DISPERSIÓ (VARIABLE QUANTITATIVA) ............................................... 17
5. ESTADÍSTICA INFERENCIAL UNIVARIANT AMB R-STUDIO ....................................... 20
5.1. INTERVALS I CONTRASTOS PER A VARIABLES QUANTITATIVES ................................................ 20
5.2. INTERVALS I CONTRASTOS PER A VARIABLES QUALITATIVES .................................................. 23
6. ESTADÍSTICA DESCRIPTIVA I INFERENCIAL BIVARIANT AMB R-STUDIO ............. 25
6.1. RELACIÓ ENTRE DUES VARIABLES QUALITATIVES .................................................................. 25
6.2. RELACIÓ ENTRE DUES VARIABLES QUANTITATIVES ................................................................ 29
6.3. RELACIÓ ENTRE UNA VARIABLE QUANTITATIVA I UNA VARIABLE QUALITATIVA ..................... 32
7. ANÀLISI DESCRIPTIVA DE SÈRIES TEMPORALS ........................................................... 36
LECTURA DE DADES DE SÈRIES TEMPORALS ....................................................................................... 36
GRÀFICS DE SÈRIES TEMPORALS ........................................................................................................ 39
DESCOMPOSICIÓ DE SÈRIES TEMPORALS ESTACIONALS ....................................................................... 41
Model additiu .............................................................................................................................. 41
Model multiplicatiu ..................................................................................................................... 43
SÈRIE DESESTACIONALITZADA (SAS) ................................................................................................ 44

1
1. Descarregar el programari
Per poder treballar amb R-Studio necessiteu instal·lar prèviament l’R software. Per tant,
cal seguir els següents passos:

1.1. Descarregar R software

Per tal de descarregar el software cal anar a la plana web: http://cran.es.r-project.org

Trieu la opció que més us convingui segons el sistema operatiu del vostre pc. A continu-
ació us apareixerà la següent pestanya:

2
Seguidament us demanarà on voleu guardar-vos el programa. Feu doble clic sobre la
icona del programa i executeu-lo. Trieu l’idioma i l’instal·leu (penseu que teniu opció de
desar-lo en qualsevol directori del vostre pc i fins i tot de fer una accés directe a l’escrip-
tori de l’ordinador).

1.2. Descarregar R-Studio

Un cop tenim descarregat i instal·lat l’R, cal descarregar la plataforma de R-Studio a


https://www.rstudio.com/

3
4
Llavors podreu seleccionar novament el sistema operatiu del vostre ordinador.

Un cop instal·lat l’R-Studio podreu començar a treballar tot accedint al programa. No cal
accedir al programa R, només cal tenir-lo instal·lat perquè l’R-Studio funcioni correcta-
ment.

5
2. Introducció a l’R-Studio
La pantalla de l’R-Studio té aquesta aparença:

Comencem per descriure una mica el que podem veure a la pantalla. A més a més de la
línia de menús, en pantalla apareixen quatre finestres: la finestra Sintaxi-Fitxers oberts (R
Script-Data View) a la part superior esquerra; la finestra Espai de treball-Historia (Envi-
ronment-History) a la part superior dreta; la finestra Consola (Console) a la part inferior
esquerra; i la finestra Fitxers-Figures-Llibreries-Ajuda (Files-Plots-Packages-Help) a la
part inferior dreta.

6
Finestra Consola (Console)
La finestra Consola és on podem veure els resultats que anem obtenint, excepte els grà-
fics.

Finestra Sintaxi-Fitxers oberts (R Script-Data View)


En la pestanya Fitxers oberts de la finestra Sintaxi-Fitxers oberts, podem veure les bases
de dades que hem carregat anteriorment. De fet, conserva oberts els fitxers en la sessió
anterior de l’R-Studio. Lògicament, si no hem treballat mai anteriorment amb l’R-Studio
no trobarem cap fitxer obert. Si no volem tenir tants fitxers oberts alhora, es poden tancar
utilitzant la icona en forma de creu que trobarem a la part superior dreta de la pestanya.
S’ha d’assenyalar que obert no és sinònim d’actiu.
Les instruccions es poden escriure en la pestanya Sintaxi de la finestra Sintaxi-Fitxers
oberts. Per crear un nou script d’R (fitxer de sintaxi) podem anar a FileàNewàR Script
o clicar en la icona amb el signe “+” i seleccionar “R Script”, o simplement polsar
Ctrl+Shift+N. Assegureu-vos d’anar guardant l’script tot clicant la icona en la mateixa
pestanya. Mentre no ho feu us sortirà com Untitled. L’arxiu creat serà de tipus .R (Ar-
chivo R).

La pestanya Sintaxi és un editor de text i té les funcions bàsiques de seleccionar, esborrar,


copiar, enganxar, etc. Per executar una o vàries instruccions, se seleccionen amb el cursor
i es clica en el botó Run o també es pot polsar Ctrl-R, o Ctrl+Enter al final de la línia.
Les instruccions executades apareixen automàticament en la finestra Consola acolorides
(normalment en blau). En la finestra Consola, sota les instruccions, apareixeran els resul-
tats en color negre, a no ser que sigui un gràfic que apareixeria en la pestanya Figures de
la finestra Fitxers-Figures-Llibreries-Ajuda.

7
Si ens posem a la línia 3*2 i cliquem Run, a la finestra de consola es mostra aquest resul-
tat.

Gravar els scripts és molt útil per recordar en un futur què havíem fet, per tornar-ho a
repetir, o per tornar a fer anàlisis semblants (potser amb unes altres dades, o amb les
mateixes dades de manera una mica diferent), canviant les comandes com convingui en
lloc d’haver-les d’escriure totes de bell nou. Podem tornar a obrir un script arxivat amb
el menú Fileà Open file. Els arxius script estan identificats a la carpeta on l’hàgim guar-
dat com “Archivo R”.
Els resultats de la consola no s’arxiven. El que se sol fer és seleccionar els que ens in-
teressen i copiar-los i enganxar-los en un document de MS Word.

8
Finestra Espai de treball-Història (Environment-History)

La pestanya Espai de treball emmagatzema qualsevol objecte, valor, o funció, entre altres,
que haguem creat durant la nostra sessió de R. L’objecte més habitual és una taula de
dades estadístiques que volem analitzar. Més endavant us ensenyarem com importar ar-
xius, ja siguin en format .RData (R software), SPSS, Excel o csv.

Finestra Fitxers-Figures-Llibreries-Ajuda (Files-Plots-Packages-Help)

A la finestra de consola només hi apareixen els resultats numèrics. Els gràfics apareixen
en la finestra de figures (plots). Per exemple, si a la pestanya de sintaxi executem la ins-
trucció per fer un diagrama de barres amb alçades 4 i 7:
barplot(c(4,7))

A la pestanya de figures obtenim:

Per passar un gràfic a MS Word cliquem Export, à Copy to Clipboard à Copy Plot, o
amb el botó dret sobre el gràfic àCopy Image.
La pestanya Llibreries permet veure els paquets disponibles per executar determinades
instruccions. En parlarem més endavant i aprendrem a instal·lar-los
Si necessitem ajuda podem anar a la pestanya Ajuda de la finestra Fitxers-Figures-Llibre-
ries-Ajuda. Per exemple, si a la pestanya de sintaxi executem:
help(barplot)

ens hi sortiran els detalls de funcionament de la instrucció barplot.

9
3. Importar les dades, preparar-les i arxivar-les
L’R-Studio és un programa d’anàlisi de dades. Per tant, per poder treballar-hi, el primer
que cal fer és introduir-hi dades tot important un arxiu ja existent. La importació de les
dades es pot fer de dues maneres diferents:
1) Importar les dades des d’un arxiu propi ja existent en format diferent de R.
2) Importar les dades des d’un arxiu propi ja existent en format R (.RData).

La importació de dades a l’R-Studio es pot fer mitjançant menús. Per practicar, el primer
que farem serà descarregar-nos la base de dades costa_brava.xlsx que teniu al Moodle i
la guardarem en el nostre ordinador.
Per poder ser importats els arxius Excel han de complir uns requisits. Han de tenir un sol
full, cada individu ha de ser una filera, excepte la primera filera on hi ha els noms de les
variables. Els noms de les variables han de ser tots diferents i no poden contenir espais
en blanc ni caràcters especials (símbols, lletres accentuades, ç, ñ, etc...), només lletres,
números i el guió baix “_”. Els valors han d’estar introduïts preferentment com a codis
numèrics, i el format de les cel·les en Excel s’ha de definir com a numèric. Els valors
mancants (per exemple, preguntes d’un qüestionari que una persona ha deixat en blanc)
s’identifiquen com cel·les en blanc. El full d’Excel no pot tenir altre contingut (fórmules,
gràfics, etc.). L’arxiu costa_brava.xlsx compleix aquests requisits.

Seguidament anirem a: Import data set (de la finestra Espai de treball) i seleccionarem el
format “From Excel”.

Des d’aquí podrem anar a cer-


car la carpeta on tinguem ubi-
cada la nostra base de dades.

Un cop l’hem trobat i seleccionat, caldrà que premem el botó import. D’aquesta manera
tindrem la següent visualització a les diverses finestres de l’R-Studio. Les dades man-
cants, que en l’Excel eren en blanc, han d’aparèixer com NA (not available).

10
Base de dades que hem importat (ens
mostra el número d’observacions que te-
nim i el número de variables)

Visualització de les dades que consten a


la base de dades.

Per fer actives les vostres dades i poder-hi treballar (calcular, transformar, fer gràfics,
etc.), cal que introduïu i executeu la següent comanda:
attach(costa_brava)
Fixeu-vos que dins del parèntesi heu de posar el nom de la base de dades amb la que
voleu treballar. En aquest cas, treballem amb la base de dades costa_brava.
Finalment, per etiquetar les variables qualitatives del nostre arxiu, segons la taula de codis
que detalla a les pàgines 29-32 del llibre, corresponent al qüestionari que es presenta a les
pàgines 33-41 del llibre, haurem d’aplicar la següent comanda a cadascuna d’elles:
Per exemple, per la variable localida de la taula de dades costa_brava indiquem que serà
una variable qualitativa (factor) on els valors 9 i 12 tenen respectivament les etiquetes
Palafrugell i Platja d’Aro.
costa_brava$localida<-factor(costa_brava$localida,levels = c(9,12), labels = c("Palafru-
gell", "Platja d’Aro"))
Cal tenir en compte que la comanda es pot executar només una vegada. Si s’executés una
segona vegada, com que ja no trobaria cap valor 9 i 12, substituïts per Palafrugell i Platja
d’Aro, ho substituiria tor per dada mancant (NA). Si passa això cal tornar a obrir l’arxiu
Excel original. Per la variable origen executem:
costa_brava$origen<-factor(costa_brava$origen,levels = c(1,20,21,22,23,24,25,26,53),
labels = c("Catalunya","Resta Espanya","França","Italia","Alemanya","Regne unit i Ir-
landa","Belgica","Paisos Baixos","Altres paisos"))
Per la variable transp.
costa_brava$transp<-factor(costa_brava$transp,levels = c(1,2,4,5,6,7,9), labels = c("Au-
tomobil","Automobil amb caravana o similar","Autocar","Tren","Avio Xarter","Avio lí-
nia regular","Altres"))
Per les variables act_reco, act_visi, act_comi, act_comp, act_fies, act_excu, act_depo,
act_play, act_disc, act_fami.
costa_brava$act_reco<-factor(costa_brava$act_reco,levels = c(1,2), labels =
c("Si","No"))
costa_brava$act_visi<-factor(costa_brava$act_visi,levels = c(1,2), labels = c("Si","No"))
costa_brava$act_comi<-factor(costa_brava$act_comi,levels = c(1,2), labels =
c("Si","No"))
costa_brava$act_comp<-factor(costa_brava$act_comp,levels = c(1,2), labels =
c("Si","No"))

11
costa_brava$act_fies<-factor(costa_brava$act_fies,levels = c(1,2), labels = c("Si","No"))
costa_brava$act_excu<-factor(costa_brava$act_excu,levels = c(1,2), labels =
c("Si","No"))
costa_brava$act_depo<-factor(costa_brava$act_depo,levels = c(1,2), labels =
c("Si","No"))
costa_brava$act_play<-factor(costa_brava$act_play,levels = c(1,2), labels =
c("Si","No"))
costa_brava$act_disc<-factor(costa_brava$act_disc,levels = c(1,2), labels =
c("Si","No"))
costa_brava$act_fami<-factor(costa_brava$act_fami,levels = c(1,2), labels =
c("Si","No"))
Per la variable serv_con.
costa_brava$serv_con<-factor(costa_brava$serv_con,levels = c(0,1,2,3), labels =
c("Sense agencia","Viatge organitzat","Transport i allotjament","Nomes transport o no-
mes allotjament"))
Per la variable alojami.
costa_brava$alojami<-factor(costa_brava$alojami,levels = c(1,2,3,4,5,6), labels =
c("Hotel o pensio","Camping ","Apartaments","Llar en propietat","Llar de familiars o
amics ","Altres"))
Per la variable veces.
costa_brava$veces<-factor(costa_brava$veces,levels = c(1,2,3,4,5,6), labels =
c("Mai","Una vegada","Dues vegades","Entres 3 i 5 vegades","Entre 6 i 10 vega-
des","Mes de 10 vegades"))
Per la variable regres.
costa_brava$regres<-factor(costa_brava$regres,levels = c(1,2,4), labels = c("No ho
se","No","Si"))
Per la variable asp_mej1.
costa_brava$asp_mej1<-factor(costa_brava$asp_mej1,levels = c(1,2,3,4,5,6,7,8,9), la-
bels = c("Neteja","Transit, aparcament","Qualitat, amabilitat, oferta","Preu","Manquen
activitats","Soroll, massificacio","Estat carrers i carreteres","Altres","Res, tot correcte"))
Per la variable sexo.
costa_brava$sexo<-factor(costa_brava$sexo,levels = c(1,2), labels = c("Home","Dona"))
Per la variable ocupacio.
costa_brava$ocupacio<-factor(costa_brava$ocupacio,levels =
c(1,2,3,4,5,6,7,8,11,13,14,16), labels = c("Atur","Jubilat","Incapacitat","Estudiant","Fei-
nes de la llar","Professional liberal","Empresari amb assalariats","Directiu","Adminsitra-
tiu","Professional per compte alie","Obrer","Altres"))
Per la variable estudios.
costa_brava$estudios<-factor(costa_brava$estudios,levels = c(1,2,3,4,5), labels =
c("Acabats a 14 anys o abans","Acabats entre 15 i 18 anys","superiors no universita-
ris","universitaris no acabats","Universitaris acabats"))
Per la variable e_civil.
costa_brava$e_civil<-factor(costa_brava$e_civil,levels = c(1,2,3), labels = c("Sol-
ter","Casat o amb parella","Separats divorciats o vidus"))
Per la variable mes.
costa_brava$mes<-factor(costa_brava$mes,levels = c(6,7,8,9), labels = c("Juny","Ju-
liol", "Agost","Setembre"))
Les variables numèriques no s’etiqueten. Perquè tots aquests canvis es tinguin en compte
en les anàlisis posteriors cal que torneu a activar la base de dades amb la comanda:
attach(costa_brava)

12
Pot resultar bastant útil guardar les taules de dades en format R (extensió .RData). Com a mínim
ho farem sempre que les hàgim llegit en formats diferents de l’R, i sempre que les hàgim
modificat, per exemple definint etiquetes com acabem de fer, o afegint variables noves tal com
veurem més avall. Això es pot fer amb la icona dins del menú Environment. Per tornar-lo a
obrir un altre dia per treballar-hi es fa amb la icona .

13
4. Estadística descriptiva univariant amb R-Studio
Com hem vist ja a teoria, l’estadística descriptiva univariant s’aplica de manera diferent segons
el tipus de variable que es tracti. Per a les variables qualitatives, la feina acaba amb l’anàlisi
exploratòria. Per a les numèriques, aquestes taules i gràfics exploratoris també són molt
importants, però, en treballar amb números, també es podran operar i combinar de diverses
maneres per trobar algunes mesures que ens indiquin característiques rellevants de les dades.

En el nostre cas treballarem amb un arxiu de dades ja existent anomenat costa_brava.RData


que és el mateix costa_brava.xlsx descrit a partir de la pàgina 27 del llibre i usat en l’apartat
anterior. L’arxiu conté una part de les variables que es van obtenir amb el qüestionari que es
presenta a les pàgines 33-41 del llibre. La mida de la mostra va ser de 1.500 persones a tota la
Costa Brava, i es va repartir per localitats i per mesos en funció del grau d’ocupació. El mètode
utilitzat va ser mostreig aleatori sistemàtic. El nostre arxiu només inclou una part d’aquesta
mostra, concretament 81 visitants a Palafrugell i 140 a Platja d’Aro, 221 en total.

Per obrir aquest arxiu poden fer-ho amb la icona dins del menú Environment. Seguidament
introduirem les següents comandes:

attach(costa_brava) #Per fer activa la base de dades


names(costa_brava) #Per conèixer els noms de les variables que hi ha a la base de dades

Darrere el símbol # podem escriure qualsevol comentari que ens ajudi a recordar què hem fet
amb cada comanda.

Caldrà que instal·lem i carreguem les llibreries descr i RcmdrMisc. Primer cal que les instal·leu a
Packages à Install, dins de la Finestra Fitxers-Figures-Llibreries-Ajuda (Files-Plots-Packages-
Help). Això cal fer-ho una sola vegada.

Llavors cada cop que les vulgueu usar només cal carregar-les amb les següents instruccions.

library(descr)
library(RcmdrMisc)

4.1. Taula de freqüències de variable qualitativa o quantitativa discreta.


Gràfic de barres

freq(transp) #Taula de freqüències (absoluta i relativa) + diagrama de barres

transp
Frequency Percent Valid Percent
Automobil 130 58.8235 59.091
Automobil amb caravana o similar 14 6.3348 6.364
Autocar 21 9.5023 9.545
Tren 10 4.5249 4.545
Avio Xarter 18 8.1448 8.182
Avio línia regular 23 10.4072 10.455
Altres 4 1.8100 1.818
NA's 1 0.4525
Total 221 100.0000 100.000

14
Veiem, per exemple, que 130 enquestats han respost que venen amb automòbil. Tenint en
compte que la mida de mostra efectiva és 220 (221 menys una dada mancant –NA–) la
freqüència relativa és 59,091%.

4.2. Taula de freqüències de variable quantitativa contínua. Gràfic de bar-


res (quantitativa agrupada), histograma i diagrama de caixa

Per fer una taula de freqüències per una variable quantitativa contínua necessitem agrupar la
variable en categories. Ho aplicarem a la variable edad. A la nova variable segmentada li direm
edad1.Triem el nombre de classes (7), li demanem que ens les faci de la mateixa longitud
(Segments equidistants, method='intervals') i que ens hi posi els mateixos extrems dels intervals
com a etiquetes (labels=NULL):

costa_brava$edad1<-with(costa_brava, bin.var(edad,bins=7,method='intervals',labels=NULL))

Hem afegit una nova variable (edad1) a la taula de dades costa_brava, hem d’activar de nou la
taula de dades:

attach(costa_brava)

També és bona idea gravar-la.

Fem la taula de freqüències de la nova variable, edad1. En els resultats veiem, a sobre de cada
freqüència, l’interval corresponent. Per exemple, de 15,9 anys exclòs fins a 25,4 inclòs, de 25,4
exclòs a 34,8 inclòs, etc.

freq(edad1)

15
edad1
Frequency Percent Valid Percent
(15.9,25.4] 55 24.8869 25.000
(25.4,34.9] 46 20.8145 20.909
(34.9,44.3] 51 23.0769 23.182
(44.3,53.7] 28 12.6697 12.727
(53.7,63.1] 20 9.0498 9.091
(63.1,72.6] 13 5.8824 5.909
(72.6,82.1] 7 3.1674 3.182
NA's 1 0.4525
Total 221 100.0000 100.000

plot(edad1,las=2) #las=2 serveix per girar les etiquetes de l’eix de les x quan no hi caben.

hist(edad) #Ens farà histograma de l’edat -> Sempre que feu un histograma ha de ser la
variable quantitativa original (la recodificada en intervals NO)

16
boxplot(edad,ylab="edad") #Ens farà gràfic de caixa de l’edat -> Sempre que feu un
diagrama de caixa ha de ser la variable quantitativa original (la recodificada en intervals NO).
ylab és l’etiqueta de l’eix vertical, que es pot escollir lliurement.

El gràfic de caixa mostra una distribució de les edats asimètrica i amb un possible valor atípic.

4.3. Mesures de posició i dispersió (variable quantitativa)

numSummary(edad) #Posar variable original (no la recodificada en intervals)

mean sd IQR 0% 25% 50% 75% 100% n NA


38.30909 15.75772 22.25 16 25.75 36 48 82 220 1

En la taula, mean indica la mitjana, sd la desviació típica, n el nombre d’observacions


vàlides, i NA el nombre d’observacions mancants. La resta és l’equivalent numèric al
gràfic de caixa: IQR recorregut interquartílic, 0% Q0 (mínim), 25% Q1, 50% Q2 (medi-
ana), 75% Q3, 100% Q4 (màxim).
Si volem calcular altres estadístics, com el coeficient de variació (cv), o centils que no siguin
només els 0, 25, 50, 75 i 100, ho podem especificar:

numSummary(edad,statistics=c("mean","sd","IQR","quantiles","cv"),
quantiles=c(0,0.05,.25,.5, .75,0.95,1))

A la finestra Consola es mostra el següent resultat:

mean sd IQR cv 0% 5% 25% 50% 75% 95% 100% n NA


38.30909 15.75772 22.25 0.4113312 16 18 25.75 36 48 69 82 220 1

Sabem així que entre 25,75 anys i 48 anys hi ha el 50% de les observacions, que entre 18 i 69 hi
ha el 90% de les observacions, que l’edat mínima és 16, la màxima 82, la mitjana 38,31, i que la

17
meitat dels enquestats tenen edats iguals o inferiors a 36 anys. A partir dels quartils, es poden
calcular els límits a partir dels quals els valors són considerats atípics de la següent manera:

Q1 - 1,5 x RIQ = 25,75-1,5x(48-25,75)= -7,625


Q3 + 1,5 x RIQ = 48+1,5x(48-25,75)= 81,375

Per això, l’individu de 82 anys ha sortit atípic en el gràfic de caixa anterior i el de 16 anys (valor
mínim) no.

Tant pel càlcul del límit superior com pel diagrama de caixa, veiem que hi ha una observació
atípica que hem de determinar si és influent o no. Per això, l’eliminarem temporalment del fitxer
i tornarem a fer el càlcul de les mesures de posició i dispersió per veure si sense l’observació
atípica canvien molt o no.

Com que el límit superior és 81,375, seleccionarem la submostra de l’arxiu costa_brava


que inclogui només les persones de 81 anys o menys, creant una nova taula de dades
anomenada sense_atipics, que veurem a la finestra Environment, i tot seguit activem.

sense_atipics <-subset(costa_brava,edad<82)
attach(sense_atipics)

I tornem a calcular els estadístics:

mean sd IQR 0% 25% 50% 75% 100% n


38.10959 15.51285 22.5 16 25.5 36 48 78 219

Observem que ara hi ha una observació menys (219) i la mitjana no ha variat gaire (de 38,3 anys
a 38,1 anys). Per tant, podríem considerar que l’observació, malgrat ser atípica, no és influent i
podríem continuar treballant amb el conjunt de la mostra.

Un cop hàgim finalitzat amb l’anàlisi d’aquesta variable caldrà fer:

attach(costa_brava) #Per tornar a treballar amb la taula inicial

Si no hem d’usar més aquesta taula de dades sense les edats atípiques la podem esborrar amb
la instrucció.

rm(sense_atipics)

Seleccionar un subconjunt d’individus de la nostra mostra que compleix un condició

Si volem fer una anàlisi, per exemple, dels habitants de Palafrugell, caldrà posar la següent
comanda per crear una taula de dades només amb el subconjunt d’enquestats a Palafrugell:

palafrugell<-subset(costa_brava,localida=="Palafrugell") #Ara la nova taula de dades es


dirà palafrugell

Cal anar amb compte a escriure el nom de la variable i la localitat tal com estan definits a la base
de dades: R és sensible a les majúscules i minúscules.

18
Un altre cop, haurem de seleccionar com a taula activa la nova taula creada per calcular els
descriptius que fan referència només als 81 visitants de Palafrugell.

attach(palafrugell)
numSummary(edad)

mean sd IQR 0% 25% 50% 75% 100% n NA


40.7 16.58915 23.5 16 28 38 51.5 82 80 1

També podem establir més d’una condició per definir el subconjunt de dades. Si volem
seleccionar només els visitants a Palafrugell de menys de 82 anys fem:

palafrugell<-subset(costa_brava,localida=="Palafrugell"&edad<82)
attach(palafrugell)
numSummary(edad)

mean sd IQR 0% 25% 50% 75% 100% n


40.17722 16.01823 22.5 16 28 38 50.5 76 79

Un cop hàgim finalitzat amb l’anàlisi caldrà fer:

attach(costa_brava) #Per tornar a treballar amb la taula inicial

Si no hem d’usar més aquesta taula de dades, la podem esborrar amb la instrucció.

rm(palafrugell)

Operacions amb les variables


Dins de la taula de dades costa_brava volem crear una variable nova que indiqui el pa-
gament en origen en persona, anomenada eur_ori_pers, i calcular-ne els estadístics. De-
finim la variable nova com el quocient entre el pagament en origen en euros (eur_ori) i
el nombre de persones incloses en el pagament (fam_ori). La pregunta del qüestionari
demana per les persones incloses en el pagament a banda de la que contesta l’enquesta,
de manera que hem de sumar-hi 1. Ara no hem creat una nova taula de dades sinó la nova
variable eur_ori_pers dins de la taula de dades ja existent costa_brava.
Activem la taula de dades i calculem els estadístics de la manera habitual.
costa_brava$eur_ori_pers=eur_ori/(fam_ori+1)
numSummary(eur_ori_pers)

mean sd IQR 0% 25% 50% 75% 100% n NA


320.6581 250.6883 315.5314 20.03374 135.2277 247.617 450.7591 1183.092 49 172

19
5. Estadística inferencial univariant amb R-Studio

Les eines més habituals de la inferència estadística són els intervals de confiança i els
contrastos d’hipòtesi. Aquestes dues eines es diferencien sobretot per la manera de pre-
sentar els resultats que permeten treure conclusions sobre la població.

Tal i com ja hem vist a teoria, l’interval ens dóna uns límits que contenen els infinits
valors del paràmetre que són compatibles amb el resultat de la mostra i el contrast es fixa
en un valor concret del paràmetre que tingui interès especial per a l’investigador i es de-
mana si es compatible amb el resultat de la mostra. A part d’aquesta diferència de presen-
tació, els contrastos i els intervals solen coincidir i conduir a la mateixa conclusió.

En aquest apartat usarem el mateix arxu de dades costa_brava.RData. Abans de comen-


çar caldrà carregar les llibreries pertinents. També caldrà activar la taula de dades.
library(descr)
library(RcmdrMisc)
attach(costa_brava)

Pel que fa a les condicions d’aplicació comunes a les tècniques d’inferència que anirem
veient en els apartats 5 i 6, cal tenir present que l’arxiu costa_brava.RData conté una
mostra aleatòria de mida n=221>30, obtinguda d’una població gran per mostreig aleatori
sistemàtic.

5.1. Intervals i contrastos per a variables quantitatives

En aquest cas, podem agafar com a variable quantitativa qualsevol de les variables que fan
referència a la valoració d’alguna de les activitats que han fet els turistes. Per exemple, podem
treballar amb la variable valoració de la bellesa de l’entorn natural (val_ento) en una escala d’1
a 7 punts. Suposem que volem fer inferència sobre el valoració mitjana poblacional de l’entorn.

Tenint en compte les condicions d’aplicació dels intervals de confiança per mitjanes
poblacionals, en primer lloc, caldrà analitzar per mitjà de gràfics d’anàlisi exploratòria de dades
si la variable presenta observacions atípiques o no, perquè en el cas de presentar-les, si són
extremes, invalidaria els resultats obtinguts. Per saber si efectivament són extremes i
modifiquen substancialment els resultats, caldria repetir les anàlisis amb una nova taula de
dades amb el subconjunt d’observacions no atípiques, com en l’apartat anterior amb la variable
edad.

boxplot(val_ento, ylab="Valoració de l’entorn sobre 7 punts")

20
Els estadístics descriptius s’obtenen amb la comanda:
numSummary(val_ento)

mean sd IQR 0% 25% 50% 75% 100% n NA


5.820276 0.9718034 2 2 5 6 7 7 217 4

La mitjana (mean), la desviació tipus (sd) i la mida de mostra efectiva descomptant les respostes
NA (n) són les dades que l’R-Studio usa per fer l’Interval de confiança amb la comanda t.test. La
mitjana mostral és 5,820276, però el que ens interessa ara és què podem dir sobre la mitjana
poblacional.

En aquest cas, no s’observen valors atípics, per tant, amb aquesta finalitat, podem procedir al
càlcul de l’interval de confiança per a la mitjana poblacional de la variable val_ento assumint un
risc del 5% (o una confiança del 95%, que es pot modificar).

t.test(val_ento,conf.level=0.95) #conf.level= indica la confiança desitjada en tant per un

One Sample t-test


data: val_ento
t = 88.226, df = 216, p-value < 2.2e-16
alternative hypothesis: true mean is not equal to 0
95 percent confidence interval:
5.690249 5.950304
sample estimates:
mean of x
5.820276

Els resultats obtinguts ens diuen que la mitjana poblacional de la valoració de l’entorn, assumint
un risc del 5%, es troba entre 5,69 i 5,95 punts sobre 7.

21
De vegades és interessant interpretar els intervals de confiança en relació amb alguna afirmació,
creença o hipòtesi sobre un possible valor del paràmetre en la població. Per exemple, si algú
formulés la hipòtesi que la mitjana poblacional és 5 punts sobre 7, podríem dir amb un risc del
5% que aquesta hipòtesi no és certa, sinó que la mitjana poblacional pel cap baix és 5,69.

Continuem fent inferència sobre la mitjana de la valoració de l’entorn dels turistes de la nostra
mostra i anem a respondre a la hipòtesi anterior usant un contrast d’hipòtesi. Plantegem la
pregunta: “Què li diríeu a una persona que afirma que la valoració mitjana de l’entorn de la
població és de 5 punts sobre 7?”

La traducció de l’enunciat de la pregunta és clarament fer la prova de la hipòtesi:

𝐻" : 𝜇 = 5

Com que ja s’ha comprovat l’absència de valors atípics, passem a resoldre el contrast
directament. La comanda que utilitzarem és la mateixa comanda t-test usada per obtenir
l’interval de confiança amb la diferència que ara s’indicarà el valor de la hipòtesi nul·la que es
vulgui; en aquest cas, 5.

t.test(val_ento, mu=5, conf.level=0.95)

One Sample t-test

data: val_ento
t = 12.434, df = 216, p-value < 2.2e-16
alternative hypothesis: true mean is not equal to 5
95 percent confidence interval:
5.690249 5.950304
sample estimates:
mean of x
5.820276

Observem com l’interval que es proporciona no varia de l’obtingut en la sortida anterior, però
el que si canvia, és la primera part de la sortida que fa referència al contrast, doncs abans no
s’havia especificat.

Tal com ja s’ha dit, segons l’interval de confiança, el valor contrastat no és un valor possible,
doncs assumint un risc del 5% tenim que la valoració mitjana de l’entorn a la població està entre
5,69 i 5,95 punts.

Pel que fa al contrast, R dona l’estadístic del contrast:

t= 12,434 amb 216 GL.

El valor p o significació és <2,2e-16 i permet rebutjar la H0 amb a=0,05. Així, respondrem que,
segons les dades de la mostra, podem rebutjar l’afirmació que m=5.
Per el valor crític, arribem a la mateixa conclusió. Si aproximem 216 GL per 200, el valor crític
que trobem a la taula de la distribució t amb a=0,05 és t200,0,05=1,97. Tenim que t = 12,434>1,97.
Per tant, podem afirmar que la valoració mitjana de l’entorn a la població no és de 5 punts sobre
7, i a més, segons l’interval, és superior a aquest valor.

22
5.2. Intervals i contrastos per a variables qualitatives

En aquest cas, agafarem com a variable d’anàlisi la variable qualitativa estat civil (e_civil) per
determinar quina és la proporció poblacional de persones solteres.

Pel que fa a les condicions d’aplicació dels intervals de confiança per a proporcions, en primer
lloc, caldrà analitzar si la categoria “Solter” presenta una freqüència igual o superior a 5. En
variables qualitatives l’anàlisi exploratòria de dades es pot fer amb una taula de freqüències.

freq(e_civil)

e_civil
Frequency Percent Valid Percent
Solter 71 32.127 32.569
Casat o amb parella 135 61.086 61.927
Separats divorciats o vidus 12 5.430 5.505
NA's 3 1.357
Total 221 100.000 100.000

En aquest cas, el nombre de solters és de 71 individus a la mostra, per tant,


np=218x0,32569=71>5 i n(1-p)=218x(1-0,32569)=147> 5. Sobre una mida de mostra de 221-
3=218, la proporció mostral de solters és 32,569%, però el que ens interessa ara és què podem
dir sobre la proporció poblacional. Així, podem procedir al càlcul de l’interval de confiança per a
la proporció poblacional de solters assumint un risc de l’1% (o una confiança del 99%).

t.test(e_civil=="Solter",conf.level=0.99)

One Sample t-test

data: e_civil == "Solter"


t = 10.238, df = 217, p-value < 2.2e-16
alternative hypothesis: true mean is not equal to 0
99 percent confidence interval:
0.2430170 0.4083591
sample estimates:
mean of x
0.3256881

Els resultats obtinguts ens diuen que la proporció poblacional de solters, assumint un risc de
l’1%, es troba entre el 24,30% i el 40,83%. Si algú formulés la hipòtesi que un terç de la població
és soltera, cal reconèixer que podria ser certa, atès que 1/3=0,3333 és a dins de l’interval. No
podem, però, afirmar que sigui certa, perquè qualsevol altre dels infinits valors compresos entre
0,2430170 i 0,4083591 podria ser el vertader valor de la proporció poblacional de solters, i això
amb un risc de l’1%.

Continuem fent inferència sobre la proporció poblacional de solters i anem a respondre a la


hipòtesi anterior usant un contrast d’hipòtesi. Plantegem la pregunta: “Què li diríeu a una
persona que afirma que una terç de la població és soltera?”

La traducció de l’enunciat de la pregunta és clarament fer la prova de la hipòtesi:

𝐻" : 𝜋 = 0,333

23
Com que ja s’ha comprovat que el nombre de solters a la mostra és superior a 5, passem a
resoldre el contrast directament. La comanda que utilitzarem és la mateixa comanda t-test
usada per obtenir l’interval de confiança amb la diferència que ara s’indicarà el valor de la
hipòtesi nul·la que es vulgui; en aquest cas, 0,333.

t.test(e_civil=="Solter", mu=0.333, conf.level=0.99)

One Sample t-test

data: e_civil == " Soltero"


t = -0.22984, df = 217, p-value = 0.8184
alternative hypothesis: true mean is not equal to 0.333
99 percent confidence interval:
0.2430170 0.4083591
sample estimates:
mean of x
0.3256881

Igual que en l’apartat anterior, el que varia és la primera part de la sortida que fa referència al
contrast, doncs abans no s’havia especificat.

Segons l’interval de confiança, el valor contrastat és un valor possible, doncs assumint un risc de
l’1% tenim que la proporció de solters a la població està entre 0,243 i 0,408.

Pel que fa al contrast, R dona l’estadístic del contrast t= -0,22984 (ho anomena t perquè es pensa
que està treballant amb variables numèriques, amb 217 GL). El valor p o significació és 0,8184 i
no permet rebutjar la H0 amb a=0,01. Així, respondrem que, segons les dades de la mostra,
podem rebutjar l’afirmació que p=0,333. Per el valor crític, arribem a la mateixa conclusió. El
valor crític de les taules de la distribució normal amb a=0,01 és 2,57 i |z=-0,2298|<2,57.

Per tant, afirmem que assumint un risc de l’1% és possible que un terç de la població sigui sol-
tera, però també pot ser qualsevol valor contingut dins l’interval trobat.

24
6. Estadística descriptiva i inferencial bivariant amb R-Studio
Fins ara hem estudiat cada variable per separat (estadística descriptiva univariant). Però per
veure la relació entre dues variables no n’hi ha prou amb estudiar-les per separat. Per això, en
aquest tema usarem l’estadística bivariant, que té per objecte establir relacions entre parelles
de variables. Com sempre, el tipus de variable ens condiciona l’anàlisi que hem de fer. Com que
estem parlant de parelles de variables i les variables poden ser quantitatives i qualitatives, les
opcions d’anàlisi seran 3:

1) Relació entre dues variables qualitatives (apartat 6.1)


2) Relació entre dues variables quantitatives (apartat 6.2)
3) Relació entre una variable quantitativa i una de qualitativa (apartat 6.3)

Tal com hem vist a teoria, en qualsevol dels tres casos, la nostra tasca sempre es desenvoluparà
en tres passos:

Pas 1. Anàlisi exploratòria de les dades. És a dir, inspeccionar visualment la relació entre
les dues variables i comprovar el compliment de les condicions d’aplicació.
Pas 2. Quantificar la relació entre les variables a la mostra tot utilitzant les mesures o
estadístics d’associació.
Pas 3. Fer l’anàlisi inferencial que ens permeti veure si podem afirmar que la relació
entre aquestes dues variables es produeix a la població de la qual provenen les dades.

6.1. Relació entre dues variables qualitatives

Volem relacionar les variables qualitatives localitat visitada (localida) i mitjà de transport
(transp) del fitxer de dades costa_brava.RData.

Abans de relacionar aquestes dues variables farem una taula de freqüències de cada una d’elles,
un cop activada la taula de dades i carregades les llibreries necessàries:

library(descr)
library(RcmdrMisc)
attach(costa_brava)
freq(transp)
freq(localida)

transp
Frequency Percent Valid Percent
Automobil 130 58.8235 59.091
Automobil amb caravana o similar 14 6.3348 6.364
Autocar 21 9.5023 9.545
Tren 10 4.5249 4.545
Avio Xarter 18 8.1448 8.182
Avio línia regular 23 10.4072 10.455
Altres 4 1.8100 1.818
NA's 1 0.4525
Total 221 100.0000 100.000

25
localida
Frequency Percent
Palafrugell 81 36.65
Platja d’Aro 140 63.35
Total 221 100.00

Seguidament, demanarem la taula de contingència per aquestes dues variables.

CrossTable(transp,localida,prop.t=FALSE,prop.chisq=FALSE,expected=TRUE,chisq=TRUE)

|-------------------------|
| N |
| Expected N |
| N / Row Total |
| N / Col Total |
|-------------------------|
======================================================================
localida
transp Palafrugell Platja d’Aro Total
----------------------------------------------------------------------
Automobil 45 85 130
47.9 82.1
0.346 0.654 0.591
0.556 0.612
----------------------------------------------------------------------
Automobil amb caravana o similar 8 6 14
5.2 8.8
0.571 0.429 0.064
0.099 0.043
----------------------------------------------------------------------
Autocar 3 18 21
7.7 13.3
0.143 0.857 0.095
0.037 0.129
----------------------------------------------------------------------
Tren 6 4 10
3.7 6.3
0.600 0.400 0.045
0.074 0.029
----------------------------------------------------------------------
Avio Xarter 10 8 18
6.6 11.4
0.556 0.444 0.082
0.123 0.058
----------------------------------------------------------------------
Avio línia regular 7 16 23
8.5 14.5
0.304 0.696 0.105
0.086 0.115
----------------------------------------------------------------------
Altres 2 2 4
1.5 2.5
0.500 0.500 0.018
0.025 0.014
----------------------------------------------------------------------
Total 81 139 220
0.368 0.632

26
======================================================================
Statistics for All Table Factors
Pearson's Chi-squared test
------------------------------------------------------------
Chi^2 = 13.0691 d.f. = 6 p = 0.042
Warning message:
In chisq.test(tab, correct = FALSE, ...) :
Chi-squared approximation may be incorrect

Fixeu-vos que a la part inferior de la taula surt un missatge d’error que ens avisa que el
valor de l’estadístic khi-quadrat pot ser incorrecte. Això succeeix perquè hi ha alguna
freqüència esperada (Expected N) inferior a 5. Concretament, en les categories de “Tren”
i “Altres” mitjans de transport. Per tant, per poder seguir amb l’anàlisi, caldrà agrupar les
categories amb menor quantitat d’individus d’algunes de les categories de la variable
mitjà de transport. En aquest cas, el més raonable és agrupar les categories “Tren” i “Al-
tres”. Per fer això, definirem una nova variable que anomenarem transp_agrup dins de
la taula de dades costa_brava, i que contindrà les mateixes categories que la variable
transp però amb la categoria “Tren” canviada per “Altres”, per agrupar-les.

costa_brava$transp_agrup<-Recode(transp,"’Tren’=’Altres’")
attach(costa_brava)

Arxivem les dades i repetim l’anàlisi estadística anterior substituint la variable transp per
la nova variable creada transp_agrup:

CrossTable(transp_agrup,localida,prop.t=FALSE,prop.chisq=FALSE,expected=TRUE,chisq=TRUE)

Ara totes les freqüències esperades són iguals o superiors a 5. Per tant, podem procedir a
l’anàlisi dels resultats amb seguretat. En cada cel·la la taula mostra en aquest ordre les
freqüències absolutes (N), les esperades sota independència (Expected N), les relatives
per fileres (N / Row Total) i les relatives per columnes (N / Col Total). Així 8 enquestats
van a Palafrugell amb altres mitjans de transport i haurien estat 5.2 si el transport i la
localitat fossin independents. El 57,1% dels que usen altres mitjans de transport visiten
Palafrugell, però el 9,9% dels visitants a Palafrugell usen altres mitjans de transport. Pel
que fa a les marginals, en el conjunt de la mostra 14 persones usen altres mitjans de trans-
port (6,4%) i 81 visiten Palafrugell (el 36,8%). La mida de mostra útil és 220, atesa una
dada mancant (NA) en la taula de freqüències de la variable transp.

En primer lloc, cal comparar els percentatges per fileres (N/Row Total) amb els percen-
tatges totals de la mostra a sota de la taula. Així, observem que hi ha un 36,8% de la
mostra que va a Palafrugell i un 63,2% a Platja d’Aro. Si analitzem els percentatges per
fileres per cadascun dels mitjans de transport, observem que “altres”, “automòbil amb
caravana” i “avió xàrter” són més habituals en els turistes que van a Palafrugell (per
exemple, 0,571>0,368) mentre que “autocar”, “automòbil” i “avió de línia regular” són
més habituals en els turistes que van a Platja d’Aro (per exemple, 0,857>0,632). També
es poden comparar els percentatges per columnes (N/Col Total) amb els percentatges to-
tals de la mostra a la dreta de la taula (per exemple, 0,099>0,064 i 0,129 > 0,095).

27
|-------------------------|
| N |
| Expected N |
| N / Row Total |
| N / Col Total |
|-------------------------|

======================================================================
localida
transp_agrup Palafrugell Platja d’Aro Total
----------------------------------------------------------------------
Altres 8 6 14
5.2 8.8
0.571 0.429 0.064
0.099 0.043
----------------------------------------------------------------------
Autocar 3 18 21
7.7 13.3
0.143 0.857 0.095
0.037 0.129
----------------------------------------------------------------------
Automobil 45 85 130
47.9 82.1
0.346 0.654 0.591
0.556 0.612
----------------------------------------------------------------------
Automobil amb caravana o similar 8 6 14
5.2 8.8
0.571 0.429 0.064
0.099 0.043
----------------------------------------------------------------------
Avio línia regular 7 16 23
8.5 14.5
0.304 0.696 0.105
0.086 0.115
----------------------------------------------------------------------
Avio Xarter 10 8 18
6.6 11.4
0.556 0.444 0.082
0.123 0.058
----------------------------------------------------------------------
Total 81 139 220
0.368 0.632
======================================================================
Statistics for All Table Factors
Pearson's Chi-squared test
------------------------------------------------------------
Chi^2 = 12.94628 d.f. = 5 p = 0.0239

En segon lloc, analitzem el grau de relació mostral d’aquestes dues variables. Per això,
caldria determinar el valor de l’estadístic V de Cramér. Aquest valor no ens el dona di-
rectament l’R-Studio però el podem calcular a partir de l’estadístic c2 (Chi-squared), que
pren un valor de 12,94628.

28
On q és la dimensió mínima de la taula (2, que és el mínim de 2 i 6) i n és el nombre total
d’observacions. L’estadístic V de Cramér mostra una relació feble, tot i que no és menys-
preable a la mostra.

Finalment, cal analitzar si aquesta relació mostral, tot i que feble, es produeix també a la
població. Per això, caldrà plantejar el següent contrast d’hipòtesi:

El valor de l’estadístic de contrast ens el proporciona l’R-Studio i pren un valor de


i presenta un valor p (p) de 0,0239. Per tant, assumint un risc del 5%=0,05,
podem rebutjar la hipòtesi nul·la (perquè el valor p és inferior al risc que volem assumir)
i afirmar que les variables transport agrupat i localitat tenen relació a la població essent
més habitual en els turistes de Palafrugell els mitjans d’automòbil amb caravana, avió
xàrter i altres i en els de Platja d’Aro l’autocar, l’automòbil i avió de línia regular. També
ho veiem perquè és superior al valor crític de les taules amb (6-1)(2-1)= 5
graus de llibertat (d.f.), que és 11,1 amb un risc del 5%.

El valor de l’estadístic c2 també es pot calcular com:

Agrupar més d’una categoria

Amb aquestes dades no és necessari, però si volguéssim fer més agrupacions, per exemple
ajuntar els dos tipus d’avions en una sola categoria anomenada “Avio”, faríem:

costa_brava$transp_agrup<-Recode(transp,"’Tren’=’Altres’" ;'Avio Xarter'='Avio';


'Avio línia regular'='Avio'"))
attach(costa_brava)

6.2. Relació entre dues variables quantitatives

Sabem que la relació entre dues variables numèriques es representa mitjançant un dia-
grama de dispersió o núvol de punts i el grau d’associació es determinar amb el Coeficient
de Correlació Lineal de Pearson. En el nostre cas, analitzarem la relació entre les variables
numèriques edat (edad) i nombre de familiars que acompanyen al turista (numfamil) que
figuren a l’arxiu costa_brava.RData. Si no ho hem fet, cal activar la taula de dades i
carregar les llibreries habituals.

plot(edad,numfamil)

29
cor(numfamil, edad, use="complete")

[1] 0.1945735

Si ens fixem en el gràfic de dispersió que fem en l’anàlisi exploratòria de dades, no ob-
servem curvatures, però sí que hi ha dos possibles valors atípics destacats, amb un nombre
d’acompanyants superiors a 12. Per tant, els resultats numèrics relatius al coeficient de
correlació hauran d’analitzar-se amb cura.

Com que hi ha la presència d’aquests possibles valors atípics, i perquè es compleixin les
condicions d’aplicació, els eliminarem temporalment en una taula de dades nova anome-
nada sense_atipics, i tornarem a calcular el coeficient de correlació de Pearson per de-
terminar si aquestes observacions són atípiques influents o no.

sense_atipics<-subset(costa_brava,numfamil<12)
attach(sense_atipics)
plot(edad,numfamil)
cor(numfamil, edad, use="complete")

[1] 0.2322516

30
Observem que quan s’eliminen les observacions extremes, el coeficient de correlació de
Pearson passa de 0,1945 a 0,2322, cosa que ens indica que aquestes observacions són
influents, ja que modifiquen substancialment els resultats. Donem, doncs, per bons els
resultats sense les dites observacions.

Finalment, realitzem el contrast d’hipòtesi per determinar si aquestes dues variables tenen
relació a la població.

cor.test(numfamil,edad)

Pearson's product-moment correlation

data: numfamil and edad


t = 3.4849, df = 213, p-value = 0.0005976
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.1016055 0.3550226
sample estimates:
cor
0.2322516

L’R-Studio no dona l’estadístic F però sí el valor p (p-value). Assumint un risc del 5%,
observem que podem rebutjar la hipòtesi nul·la, perquè el valor p és inferior al nivell de
risc que es vol assumir (0,0005976<0,05). Per tant, podem dir que les variables edat i
nombre de familiars que acompanyen al turista estan relacionades a la població de manera
que com major és l’edat, major és el nombre d’acompanyants, ja que el coeficient de
correlació de Pearson és positiu. Això sí, la relació, tot i que existent, és feble, ja que el
dit coeficient és proper a 0 (+0,2322).

Si cal, l’estadístic F es pot calcular com:

rxy2 0, 23225162
F= = = 12,14
(1 - rxy2 ) (n - 2) (1 - 0, 23225162 ) (213)

Els graus de llibertat (df) que dona R-Studio, corresponen als graus de llibertat del
denominador (n-2). Els graus de llibertat del numerador són iguals a 1. Per tant, el valor
crític amb un risc del 5% és 3,89. Com que l’estadístic F supera el valor crític, la conclusió
torna a ser la mateixa que abans.

Un cop hàgim finalitzat amb l’anàlisi d’aquestes variables caldrà fer:

attach(costa_brava) #Per tornar a treballar amb la taula inicial

31
6.3. Relació entre una variable quantitativa i una variable qualitativa

L’anàlisi exploratòria de la relació entre una variable quantitativa i una de qualitativa requereix
diagrames de caixa de la variable quantitativa per cadascuna de les categories de la variable
qualitativa. En el nostre cas, analitzarem la relació entre la valoració global de la destinació
(val_glob) en una escala d’1 a 7 punts, i l’estat civil (e_civil). La primera és numèrica i la segona
qualitativa. Per fer l’anàlisi exploratòria de dades:

boxplot(val_glob~e_civil)

El símbol “~” en la comanda es pot escriure prement alhora altgr 4, seguit de la tecla espai en
PCs, i en MACs prement alhora alt ñ. Observem que hi ha una dada atípica amb val_glob=2, que
implica l’incompliment d’una condició d’aplicació i cal eliminar abans de procedir amb la resta
de l’anàlisi, tot creant i activant una taula de dades nova.

sense_atipics<-subset(costa_brava,val_glob>2)
attach(sense_atipics)
boxplot(val_glob~e_civil)

32
Un cop eliminada l’observació atípica, podem fer el càlcul de les mitjanes i desviacions
tipus per grups i de la mesura d’associació eta.

numSummary(val_glob,statistics=c(“mean”,”sd”),groups=e_civil)

mean sd data:n
Solter 5.928571 0.8567114 70
Casat o amb parella 5.954198 0.7530716 131
Separats divorciats o vidus 5.700000 0.6749486 10

summary(aov(val_glob~e_civil))

Df Sum Sq Mean Sq F value Pr(>F)


e_civil 2 0.6 0.3015 0.488 0.614
Residuals 208 128.5 0.6176

El càlcul de la mesura d’associació eta caldrà fer-la a mà a partir de les sumes de quadrats (Sum
Sq) entre grups (e_civil) i dins dels grups (Residuals):

Això ens indica una relació molt feble entre les dues variables a nivell mostral. La taula de
mitjanes indica tanmateix que a nivell mostral els separats, divorciats i vidus fan valoracions
inferiors que la resta.

Pel que fa a la relació a nivell poblacional, plantegem el següent contrast d’hipòtesi:

33
Per comprovar la condició de desviacions típiques semblants entre grups, usarem el contrast de
Levene.

𝐻" : 𝜎- = 𝜎. = 𝜎/

leveneTest(val_glob,e_civil,center = median )

Levene's Test for Homogeneity of Variance (center = median)


Df F value Pr(>F)
group 2 0.5362 0.5858
208

La prova de Levene mostra un valor p de 0,5858>0,05. Per tant, no rebutgem la hipòtesi nul·la
de desviacions iguals. Podem usar la prova F estàndard de Fisher, no cal usar la robusta de
Welch.

Assumit un risc del 5%, no podem rebutjar la hipòtesi nul·la perquè el valor p (Pr(>F)) és superior
al risc assumible (0,614>0,05), de manera que no sabem si l’estat civil i la valoració global de la
localitat de vacances estan relacionats a nivell poblacional.

També ho veiem perquè l’estadístic F (F value) 0,488 és inferior al valor crític de les taules. Amb
t-1=3-1=2 i n-t=211-3=208 graus de llibertat (Df) el numerador i al denominador respectivament,
el valor crític és 3,04 amb un risc del 5%.

Si cal, l’estadístic F es pot calcular com:

h 2 (t - 1) 0, 06817 2 (3 - 1)
F= = = 0, 49
(1 - h 2 ) (n - t ) (1 - 0, 06817 2 ) (211 - 3)

Nota: en el cas d’haver d’usar el contrast de Welch, la comanda seria

oneway.test(val.glob~e_civil)

Addicionalment, podem realitzar el gràfic dels intervals de confiança al 95% de la variable valo-
ració global (val_glob) per cada categoria de la variable estat civil (e_civil) per determinar si els
intervals s’encavalquen o no.

plotMeans(val_glob,e_civil,error.bars = ("conf.int"),level = 0.95)

34
Observem que els IC de la variable valoració global s’encavalquen per totes les categories de la
variable estat civil cosa que ens indica que no hi ha diferències poblacionals pels diferents grups
d’estat civil en relació a la valoració global del lloc de vacances. Això ja era d’esperar, atès el
resultat del contrast d’hipòtesi. Aquest gràfic té interès sobretot quan s’ha rebutjat la hipòtesi
nul·la i hi ha tres o més grups, i serveix per veure quins grups en concret són diferents de quins
altres, indicat per parelles d’intervals que no s’encavalquen.

Un cop hàgim finalitzat amb l’anàlisi d’aquestes variables caldrà fer:

attach(costa_brava) #Per tornar a treballar amb la taula inicial

35
7. Anàlisi Descriptiva de Sèries Temporals

Aquest manual es basa en el booklet d'Avril Coghlan, accessible a: https://a-little-book-


of-r-for-time-series.readthedocs.io/en/latest/index.html.

Lectura de dades de sèries temporals


El primer que haurem de fer per analitzar les dades d'una sèrie temporal serà llegir-les en
R i graficar-les. Suposarem que les dades les tenim estructurades per a punts de temps
successius i que es troben en un fitxer de text simple amb una columna.
Per exemple, el fitxer kings.csv que trobareu al moodle, conté dades sobre l’edat de mort
de reis d’Anglaterra successius, començant per Guillem el Conqueridor (font original:
Hipel i Mcleod, 1994).
kings <- read.csv("kings.csv", header = FALSE)
kings
## V1
## 1 60
## 2 43
## 3 67
## 4 50
## 5 56
## 6 42
## 7 50
## 8 65
## 9 68
## 10 43
## 11 65
## 12 34
## 13 47
## 14 34
## 15 49
## 16 41
## 17 13
## 18 35
## 19 53
## 20 56
## 21 16
## 22 43
## 23 69
## 24 59
## 25 48
## 26 59
## 27 86
## 28 55
## 29 68
## 30 51
## 31 33
## 32 49
## 33 67
## 34 77
## 35 81

36
## 36 67
## 37 71
## 38 81
## 39 68
## 40 70
## 41 77
## 42 56
En aquest cas, l’edat de mort de 42 reis d’Anglaterra successius s’ha guardat a l'objecte
«kings».
Un cop llegides les dades de sèries temporals a R, el següent pas és emmagatzemar-les
en un objecte de sèries temporals a R, de manera que puguem utilitzar les múltiples fun-
cions d'R per analitzar les dades de sèries temporals. Per emmagatzemar les dades en un
objecte de sèries temporals, fem servir la funció ts(). Per exemple, per emmagatzemar les
dades de la sèrie "kings" com a objecte de sèries temporals a R, escrivim:
kingstimeseries <- ts(kings)
kingstimeseries
## Time Series:
## Start = 1
## End = 42
## Frequency = 1
## V1
## [1,] 60
## [2,] 43
## [3,] 67
## [4,] 50
## [5,] 56
## [6,] 42
## [7,] 50
## [8,] 65
## [9,] 68
## [10,] 43
## [11,] 65
## [12,] 34
## [13,] 47
## [14,] 34
## [15,] 49
## [16,] 41
## [17,] 13
## [18,] 35
## [19,] 53
## [20,] 56
## [21,] 16
## [22,] 43
## [23,] 69
## [24,] 59
## [25,] 48
## [26,] 59
## [27,] 86
## [28,] 55
## [29,] 68
## [30,] 51
## [31,] 33

37
## [32,] 49
## [33,] 67
## [34,] 77
## [35,] 81
## [36,] 67
## [37,] 71
## [38,] 81
## [39,] 68
## [40,] 70
## [41,] 77
## [42,] 56
De vegades, el conjunt de dades de sèries temporals pot haver estat recollit a intervals
regulars inferiors a un any, per exemple, mensuals o trimestrals. En aquest cas, podem
especificar el nombre de vegades que es van recopilar dades per any mitjançant el parà-
metre "frequency" a la funció ts(). Per a les dades de sèries temporals mensuals, definim
la freqüència = 12, mentre que per a les dades de sèries temporals trimestrals, definim la
freqüència = 4.
També podem especificar el primer any en què es van recollir les dades i el primer interval
d’aquest any mitjançant el paràmetre "start"" de la funció ts(). Per exemple, si el primer
punt de dades correspon al segon trimestre del 1986, definirem start=c(1986,2).
Un exemple és un conjunt de dades del nombre de naixements al mes a la ciutat de Nova
York, des de gener de 1946 fins a desembre de 1959 (originalment recollida per Newton).
Aquestes dades estan disponibles al fitxer nybirths.csv que trobareu al moodle. Podem
llegir les dades a R i emmagatzemar-les com a objecte de sèrie temporal escrivint:
births <- read.csv("nybirths.csv", header = FALSE)
birthstimeseries <- ts(births, frequency=12, start=c(1946,1))
birthstimeseries
## Jan Feb Mar Apr May Jun Jul Aug Sep Oct
## 1946 26.663 23.598 26.931 24.740 25.806 24.364 24.477 23.901 23.175 23.227
## 1947 21.439 21.089 23.709 21.669 21.752 20.761 23.479 23.824 23.105 23.110
## 1948 21.937 20.035 23.590 21.672 22.222 22.123 23.950 23.504 22.238 23.142
## 1949 21.548 20.000 22.424 20.615 21.761 22.874 24.104 23.748 23.262 22.907
## 1950 22.604 20.894 24.677 23.673 25.320 23.583 24.671 24.454 24.122 24.252
## 1951 23.287 23.049 25.076 24.037 24.430 24.667 26.451 25.618 25.014 25.110
## 1952 23.798 22.270 24.775 22.646 23.988 24.737 26.276 25.816 25.210 25.199
## 1953 24.364 22.644 25.565 24.062 25.431 24.635 27.009 26.606 26.268 26.462
## 1954 24.657 23.304 26.982 26.199 27.210 26.122 26.706 26.878 26.152 26.379
## 1955 24.990 24.239 26.721 23.475 24.767 26.219 28.361 28.599 27.914 27.784
## 1956 26.217 24.218 27.914 26.975 28.527 27.139 28.982 28.169 28.056 29.136
## 1957 26.589 24.848 27.543 26.896 28.878 27.390 28.065 28.141 29.048 28.484
## 1958 27.132 24.924 28.963 26.589 27.931 28.009 29.229 28.759 28.405 27.945
## 1959 26.076 25.286 27.660 25.951 26.398 25.565 28.865 30.000 29.261 29.012
## Nov Dec
## 1946 21.672 21.870
## 1947 21.759 22.073
## 1948 21.059 21.573
## 1949 21.519 22.025
## 1950 22.084 22.991
## 1951 22.964 23.981
## 1952 23.162 24.707
## 1953 25.246 25.180
## 1954 24.712 25.688
## 1955 25.693 26.881
## 1956 26.291 26.987

38
## 1957 26.634 27.735
## 1958 25.912 26.619
## 1959 26.992 27.897
De la mateixa manera, el fitxer fancy.csv conté vendes mensuals d’una botiga de souve-
nirs en una ciutat turística de platja de Queensland, Austràlia, entre el gener de 1987 i
desembre de 1993 (dades originals de Wheelwright and Hyndman, 1998). Podem llegir
les dades en R escrivint:
souvenir <- read.csv("fancy.csv", header = FALSE)
souvenirtimeseries <- ts(souvenir, frequency=12, start=c(1987,1))
souvenirtimeseries
## Jan Feb Mar Apr May Jun Jul
## 1987 1664.81 2397.53 2840.71 3547.29 3752.96 3714.74 4349.61
## 1988 2499.81 5198.24 7225.14 4806.03 5900.88 4951.34 6179.12
## 1989 4717.02 5702.63 9957.58 5304.78 6492.43 6630.80 7349.62
## 1990 5921.10 5814.58 12421.25 6369.77 7609.12 7224.75 8121.22
## 1991 4826.64 6470.23 9638.77 8821.17 8722.37 10209.48 11276.55
## 1992 7615.03 9849.69 14558.40 11587.33 9332.56 13082.09 16732.78
## 1993 10243.24 11266.88 21826.84 17357.33 15997.79 18601.53 26155.15
## Aug Sep Oct Nov Dec
## 1987 3566.34 5021.82 6423.48 7600.60 19756.21
## 1988 4752.15 5496.43 5835.10 12600.08 28541.72
## 1989 8176.62 8573.17 9690.50 15151.84 34061.01
## 1990 7979.25 8093.06 8476.70 17914.66 30114.41
## 1991 12552.22 11637.39 13606.89 21822.11 45060.69
## 1992 19888.61 23933.38 25391.35 36024.80 80721.71
## 1993 28586.52 30505.41 30821.33 46634.38 104660.67

Gràfics de sèries temporals


Una vegada que hem llegit una sèrie temporal en R, el següent pas sol ser fer un gràfic de
les dades de la sèrie, que podem fer amb la funció plot.ts().
Per exemple, per representar la sèrie temporal de l'edat de la mort de 42 reis d'Anglaterra
successius, escrivim:

plot.ts(kingstimeseries)

39
Podem veure pel gràfic temporal que aquesta sèrie probablement es podria descriure mit-
jançant un model additiu, ja que les fluctuacions aleatòries de les dades són aproximada-
ment constants en mida al llarg del temps.
De la mateixa manera, per representar la sèrie temporal del nombre de naixements al mes
a la ciutat de Nova York, escrivim:

plot.ts(birthstimeseries)

Podem veure a partir d’aquesta sèrie que sembla haver-hi variacions estacionals en el
nombre de naixements al mes: hi ha un pic cada estiu i una baixada cada hivern. De nou,
sembla que aquesta sèrie temporal probablement es podria descriure mitjançant un model
additiu, ja que les fluctuacions estacionals són aproximadament constants en mida al llarg
del temps i no semblen dependre del nivell de la sèrie temporal, i les fluctuacions aleatò-
ries també semblen ser de mida aproximadament constant al llarg del temps.
De la mateixa manera, per representar la sèrie temporal de les vendes mensuals de la
botiga de souvenirs a Queensland, Austràlia, escrivim:

plot.ts(souvenirtimeseries)

40
En aquest cas, sembla que un model additiu no és adequat per descriure aquesta sèrie
temporal, ja que la mida de les fluctuacions estacionals i les fluctuacions irregulars sem-
blen augmentar amb el nivell de la sèrie temporal.

Descomposició de sèries temporals estacionals

Model additiu

Una sèrie temporal estacional consisteix en una component de tendència, una component
estacional i una component irregular. Descomposar les sèries temporals significa separar
les sèries temporals en aquestes tres components: és a dir, estimar aquestes tres compo-
nents.
Per estimar la component de tendència i la component estacional d'una sèrie temporal
estacional que es pot descriure mitjançant un model additiu, podem utilitzar la funció
"decompose()" a R. Aquesta funció estima la tendència, les components estacionals i ir-
regulars d'una sèrie temporal que es pot descriure mitjançant un model additiu.
La funció "decompose()" retorna un objecte amb diferents resultats: les estimacions de la
component estacional, component de tendència i component irregular, que s'emmagatze-
men amb els noms “seasonal”, “trend”, i “random” respectivament.
Per exemple, la sèrie temporal del nombre de naixements al mes a la ciutat de Nova York,
com ja hem comentat, és estacional, amb un pic cada estiu i mínim cada hivern, i proba-
blement es pugui descriure mitjançant un model additiu ja que les fluctuacions estacionals
i aleatòries semblen tenir una mida aproximadament constant al llarg del temps:

birthstimeseriescomponents <- decompose(birthstimeseries, type="addi-


tive")
Per exemple, podem extreure els valors estimats de la component estacional escrivint:
birthstimeseriescomponents$seasonal

41
## Jan Feb Mar Apr May Jun
## 1946 -0.6771947 -2.0829607 0.8625232 -0.8016787 0.2516514 -0.1532556
## 1947 -0.6771947 -2.0829607 0.8625232 -0.8016787 0.2516514 -0.1532556
## 1948 -0.6771947 -2.0829607 0.8625232 -0.8016787 0.2516514 -0.1532556
## 1949 -0.6771947 -2.0829607 0.8625232 -0.8016787 0.2516514 -0.1532556
## 1950 -0.6771947 -2.0829607 0.8625232 -0.8016787 0.2516514 -0.1532556
## 1951 -0.6771947 -2.0829607 0.8625232 -0.8016787 0.2516514 -0.1532556
## 1952 -0.6771947 -2.0829607 0.8625232 -0.8016787 0.2516514 -0.1532556
## 1953 -0.6771947 -2.0829607 0.8625232 -0.8016787 0.2516514 -0.1532556
## 1954 -0.6771947 -2.0829607 0.8625232 -0.8016787 0.2516514 -0.1532556
## 1955 -0.6771947 -2.0829607 0.8625232 -0.8016787 0.2516514 -0.1532556
## 1956 -0.6771947 -2.0829607 0.8625232 -0.8016787 0.2516514 -0.1532556
## 1957 -0.6771947 -2.0829607 0.8625232 -0.8016787 0.2516514 -0.1532556
## 1958 -0.6771947 -2.0829607 0.8625232 -0.8016787 0.2516514 -0.1532556
## 1959 -0.6771947 -2.0829607 0.8625232 -0.8016787 0.2516514 -0.1532556
## Jul Aug Sep Oct Nov Dec
## 1946 1.4560457 1.1645938 0.6916162 0.7752444 -1.1097652 -0.3768197
## 1947 1.4560457 1.1645938 0.6916162 0.7752444 -1.1097652 -0.3768197
## 1948 1.4560457 1.1645938 0.6916162 0.7752444 -1.1097652 -0.3768197
## 1949 1.4560457 1.1645938 0.6916162 0.7752444 -1.1097652 -0.3768197
## 1950 1.4560457 1.1645938 0.6916162 0.7752444 -1.1097652 -0.3768197
## 1951 1.4560457 1.1645938 0.6916162 0.7752444 -1.1097652 -0.3768197
## 1952 1.4560457 1.1645938 0.6916162 0.7752444 -1.1097652 -0.3768197
## 1953 1.4560457 1.1645938 0.6916162 0.7752444 -1.1097652 -0.3768197
## 1954 1.4560457 1.1645938 0.6916162 0.7752444 -1.1097652 -0.3768197
## 1955 1.4560457 1.1645938 0.6916162 0.7752444 -1.1097652 -0.3768197
## 1956 1.4560457 1.1645938 0.6916162 0.7752444 -1.1097652 -0.3768197
## 1957 1.4560457 1.1645938 0.6916162 0.7752444 -1.1097652 -0.3768197
## 1958 1.4560457 1.1645938 0.6916162 0.7752444 -1.1097652 -0.3768197
## 1959 1.4560457 1.1645938 0.6916162 0.7752444 -1.1097652 -0.3768197
Els factors estacionals estimats es donen per als mesos de gener a desembre i són els
mateixos per a cada any. El factor estacional més gran és al juliol (aproximadament 1,46)
i el més baix al febrer (al voltant de -2,08), cosa que indica que sembla que hi ha un pic
en els naixements al juliol i un mínim en els naixements al febrer de cada any.
Podem representar la tendència estimada, les components estacionals i irregulars de les
sèries temporals mitjançant la funció "plot()", per exemple:
plot(birthstimeseriescomponents)

42
El gràfic anterior mostra la sèrie temporal original (superior), la component de tendència
estimada (segon des de dalt), la component estacional estimada (tercer des de dalt) i la
component irregular estimada (inferior). Veiem que la component de tendència estimada
mostra una petita disminució d’uns 24 el 1947 a uns 22 el 1948, seguit d’un augment
constant d’aleshores a uns 27 el 1959.

Model multiplicatiu
Com ja hem vist anteriorment, la sèrie temporal de les vendes mensuals de la botiga de
souvenirs a Queensland, Austràlia, sembla que el model multiplicatiu seria més adient ja
que la mida de les fluctuacions estacionals i les fluctuacions irregulars semblaven aug-
mentar amb el nivell de la sèrie temporal.
souvenirtimeseriescomponents <- decompose(souvenirtimeseries,
type="multiplicative")
També podem extreure els valors estimats de la component estacional escrivint:
souvenirtimeseriescomponents$seasonal
## Jan Feb Mar Apr May Jun Jul
## 1987 0.4745416 0.6042447 0.9828893 0.6568138 0.6748599 0.6793992 0.7778894
## 1988 0.4745416 0.6042447 0.9828893 0.6568138 0.6748599 0.6793992 0.7778894
## 1989 0.4745416 0.6042447 0.9828893 0.6568138 0.6748599 0.6793992 0.7778894
## 1990 0.4745416 0.6042447 0.9828893 0.6568138 0.6748599 0.6793992 0.7778894
## 1991 0.4745416 0.6042447 0.9828893 0.6568138 0.6748599 0.6793992 0.7778894
## 1992 0.4745416 0.6042447 0.9828893 0.6568138 0.6748599 0.6793992 0.7778894
## 1993 0.4745416 0.6042447 0.9828893 0.6568138 0.6748599 0.6793992 0.7778894
## Aug Sep Oct Nov Dec
## 1987 0.7649696 0.8356251 0.9217051 1.4797541 3.1473083
## 1988 0.7649696 0.8356251 0.9217051 1.4797541 3.1473083

43
## 1989 0.7649696 0.8356251 0.9217051 1.4797541 3.1473083
## 1990 0.7649696 0.8356251 0.9217051 1.4797541 3.1473083
## 1991 0.7649696 0.8356251 0.9217051 1.4797541 3.1473083
## 1992 0.7649696 0.8356251 0.9217051 1.4797541 3.1473083
## 1993 0.7649696 0.8356251 0.9217051 1.4797541 3.1473083
Els factors estacionals estimats es donen per als mesos de gener a desembre i són els
mateixos per a cada any com en la sèrie anterior. El factor estacional més gran és al
desembre (aproximadament 3,14) i el més baix al gener (al voltant de 0,47), cosa que
indica que hi ha un augment de vendes al mes de desembre coincidint amb el nadal, i una
baixada al mes de gener.
Podem representar la tendència estimada i les components estacionals i irregulars de la
sèrie:
plot(souvenirtimeseriescomponents)

Sèrie desestacionalitzada (SAS)

Hem vist que la funció decompose() arxiva les components tendència, estacional i irre-
gular, però no arxiva la sèrie desestacionalitzada. La sèrie desestacionalitzada és més fàcil
d'interpretar perquè reflecteix l'evolució de la sèrie original sense les zigues-zagues esta-
cionals que no donen cap informació sobre si per exemple les vendes d'un mes en parti-
cular en el cas de la botiga de souvenirs de Queensland està anant bé o malament.
La sèrie de tipus multiplicatiu (com és l'exemple de les vendes de la botiga de Queens-
land) desestacionalitzada la podem construïr fàcilment escrivint:
44
souvenirtimeseriescomponents$SAS<-souvenirtimeseriescompo-
nents$x/souvenirtimeseriescomponents$seasonal
souvenirtimeseriescomponents$SAS
## Jan Feb Mar Apr May Jun Jul
## 1987 3508.249 3967.813 2890.163 5400.755 5561.095 5467.684 5591.554
## 1988 5267.842 8602.873 7350.919 7317.188 8743.859 7287.821 7943.443
## 1989 9940.162 9437.617 10130.927 8076.536 9620.412 9759.800 9448.156
## 1990 12477.516 9622.890 12637.486 9697.985 11275.111 10634.028 10440.071
## 1991 10171.164 10707.964 9806.567 13430.245 12924.712 15027.218 14496.342
## 1992 16047.130 16300.831 14811.840 17641.729 13828.885 19255.381 21510.488
## 1993 21585.549 18646.222 22206.813 26426.563 23705.350 27379.382 33623.226
## Aug Sep Oct Nov Dec
## 1987 4662.067 6009.657 6969.127 5136.394 6277.177
## 1988 6212.207 6577.627 6330.767 8514.982 9068.613
## 1989 10688.816 10259.589 10513.667 10239.431 10822.267
## 1990 10430.806 9685.037 9196.760 12106.511 9568.306
## 1991 16408.782 13926.568 14762.738 14747.119 14317.215
## 1992 25999.215 28641.288 27548.238 24345.126 25647.856
## 1993 37369.483 36506.095 33439.471 31514.952 33254.025
La millor manera de veure les components és per mitjà d'un gràfic conjunt de la sèrie
original (Y), la mitjana mòbil (tendència o trend en anglès) i la sèrie desestacionalitzada
(SAS):
plot(souvenirtimeseriescomponents$x, ylab="vendes")
lines(souvenirtimeseriescomponents$trend, lty=2, col="red")
lines(souvenirtimeseriescomponents$SAS, lty=3, col="blue")
legend("topleft", legend=c("Y", "Trend","SAS"),
col=c("black", "red", "blue"), lty=1:3)

La mitjana mòbil, al gràfic (al gràfic Trend) ens representa l'evolució suau a llarg termini.
La sèrie desestacionalitzada (SAS) ens ensenya les petites variacions irregulars a curt
termini per sobre o per sota la tendència un cop eliminades les dents de serra estacionals.
Pel que fa a la sèrie de tipus additiu, com l'exemple de nombre de naixements al mes a la
ciutat de Nova York, la sèrie desestacionalitzada l'obtenim escrivint:

45
birthstimeseriescomponents$SAS<-birthstimeseriescomponents$x - births-
timeseriescomponents$seasonal
birthstimeseriescomponents$SAS
## Jan Feb Mar Apr May Jun Jul Aug
## 1946 27.34019 25.68096 26.06848 25.54168 25.55435 24.51726 23.02095 22.73641
## 1947 22.11619 23.17196 22.84648 22.47068 21.50035 20.91426 22.02295 22.65941
## 1948 22.61419 22.11796 22.72748 22.47368 21.97035 22.27626 22.49395 22.33941
## 1949 22.22519 22.08296 21.56148 21.41668 21.50935 23.02726 22.64795 22.58341
## 1950 23.28119 22.97696 23.81448 24.47468 25.06835 23.73626 23.21495 23.28941
## 1951 23.96419 25.13196 24.21348 24.83868 24.17835 24.82026 24.99495 24.45341
## 1952 24.47519 24.35296 23.91248 23.44768 23.73635 24.89026 24.81995 24.65141
## 1953 25.04119 24.72696 24.70248 24.86368 25.17935 24.78826 25.55295 25.44141
## 1954 25.33419 25.38696 26.11948 27.00068 26.95835 26.27526 25.24995 25.71341
## 1955 25.66719 26.32196 25.85848 24.27668 24.51535 26.37226 26.90495 27.43441
## 1956 26.89419 26.30096 27.05148 27.77668 28.27535 27.29226 27.52595 27.00441
## 1957 27.26619 26.93096 26.68048 27.69768 28.62635 27.54326 26.60895 26.97641
## 1958 27.80919 27.00696 28.10048 27.39068 27.67935 28.16226 27.77295 27.59441
## 1959 26.75319 27.36896 26.79748 26.75268 26.14635 25.71826 27.40895 28.83541
## Sep Oct Nov Dec
## 1946 22.48338 22.45176 22.78177 22.24682
## 1947 22.41338 22.33476 22.86877 22.44982
## 1948 21.54638 22.36676 22.16877 21.94982
## 1949 22.57038 22.13176 22.62877 22.40182
## 1950 23.43038 23.47676 23.19377 23.36782
## 1951 24.32238 24.33476 24.07377 24.35782
## 1952 24.51838 24.42376 24.27177 25.08382
## 1953 25.57638 25.68676 26.35577 25.55682
## 1954 25.46038 25.60376 25.82177 26.06482
## 1955 27.22238 27.00876 26.80277 27.25782
## 1956 27.36438 28.36076 27.40077 27.36382
## 1957 28.35638 27.70876 27.74377 28.11182
## 1958 27.71338 27.16976 27.02177 26.99582
## 1959 28.56938 28.23676 28.10177 28.27382
plot(birthstimeseriescomponents$x, ylab="naixements")
lines(birthstimeseriescomponents$trend, lty=2, col="red")
lines(birthstimeseriescomponents$SAS, lty=3, col="blue")
legend("topleft", legend=c("Y", "Trend","SAS"),
col=c("black", "red", "blue"), lty=1:3)

46
A l’arxiu seriesine.sav disposeu de sèries mensuals del sector turístic espanyol mesurades
entre gener de 1995 i desembre de 2005. Aquesta informació ha estat obtinguda del web
del Instituto Nacional de Estadística https://www.ine.es/. Dins d’aquest web, l’apartat
INEBASE https://www.ine.es/dyngs/INEbase/listaoperaciones.htm conté el recull histò-
ric de totes les estadístiques per temes i sectors econòmics. L’arxiu conté les variables
següents:
ingtur Ingressos per turisme (x1000 EUR)
pasaerre Passatgers entrats i sortits vols internacionals regulars (x1000)
pasaerch Passatgers entrats i sortits vols internacionals xàrter (x1000)
entcar Entrades de turistes estrangers per carretera (x1000)
entae Entrades de turistes estrangers per aire (x1000)
entfer Entrades de turistes estrangers per ferrocarril (x1000)
entmar Entrades de turistes estrangers per mar (x1000)

Obrim l’arxiu i l’activem:


attach(seriesine)

Volem descompondre la sèrie ingtur. En primer lloc cal indicar al programa les dates i la
seva periodicitat diària, mensual o trimestral (altrament no és possible parlar d’estaciona-
litat). Indiquem així que la freqüència estacional (frequency) és 12 (mesos) i l’inici (start)
és l’any 1995, mes 1 (gener).

serie_ingtur<-ts(ingtur,frequency=12,start = c(1995, 1))

47
L’objecte serie_ingtur que hem creat i que tenim en la finestra Environment conté les
mateixes dades inicials ordenades per anys i mesos. Per visualitzar-lo fem:

serie_ingtur

Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1995 1153269 1032443 1084529 1259854 1730843 1954816 2332759 2309119 2044848 1708318 1170602 1131601
1996 1276187 1170573 1295296 1357881 1837300 1992959 2519730 2569197 2232591 1891990 1317729 1235567
1997 1402465 1247417 1348570 1465105 2010816 2213907 2825810 3092790 2517868 2168521 1500557 1403175
1998 1555725 1425762 1530457 1710423 2253465 2537630 3065037 3326240 2868121 2577229 1677079 1568833
1999 1807005 1663277 1783257 1972026 2573587 2888141 3409345 3624638 3209244 2950187 1963381 1563913
2000 1826000 1816000 2119000 2288000 2738000 3182000 3853000 3960000 3540000 3145000 2150000 1829000
2001 1986000 2030000 2245000 2395000 2991000 3366000 4143000 4176000 3723000 3122000 2162000 1883000
2002 2029000 1980000 2364000 2155000 2844000 3209000 3975000 4187000 3604000 3155000 2140000 1915000
2003 2055000 2014000 2440429 2427463 3066000 3393417 4056404 4501000 3689000 3264073 2168366 1972000
2004 2312225 2071147 2408472 2318351 2936108 3417066 4307735 4615521 3956141 3622477 2351681 2059358
2005 2446084 2055205 2570058 2106159 2996670 3228274 4801659 5096061 4767082 4016736 2709435 1701326

En segon lloc caldrà fer un gràfic de la sèrie per mitjà de:

plot(serie_ingtur)

Les components més destacades són la tendència creixent i l’estacionalitat, per cert, de
tipus multiplicatiu, cosa que veiem perquè les oscil·lacions estacionals són més profundes
per valors alts de la sèrie, en aquest cas, de forma clara.
5e+06
4e+06
serie_ingtur

3e+06
2e+06
1e+06

1996 1998 2000 2002 2004 2006

Time
La instrucció per fer la descomposició multiplicativa és:
descomposicio<-decompose(serie_ingtur, type="multiplicative")
descomposicio

Una descomposició additiva s’hauria fet amb el paràmetre type = "additive" . L’objecte
descomposicio que hem creat i veurem en la finestra Environment conté les mitjanes
mòbils de la tendència on s’aprecien les dades que es perden (NA) al principi i al final de
la sèrie:

48
$trend
Jan Feb Mar Apr May Jun
1995 NA NA NA NA NA NA
1996 1643411 1662038 1680697 1696173 1709956 1720418
1997 1800677 1835247 1868950 1892358 1911498 1926100
1998 2053483 2073178 2097499 2129122 2153507 2167764
1999 2328499 2355278 2381925 2411678 2439148 2450872
2000 2575961 2608420 2636175 2658074 2673967 2692788
2001 2802917 2824000 2840625 2847292 2846833 2849583
2002 2808833 2802292 2797792 2794208 2794667 2795083
2003 2867751 2884226 2900851 2908937 2914664 2918221
2004 2936656 2951900 2967803 2993867 3016439 3027717
2005 3046860 3087463 3141275 3191491 3222825 3222814
Jul Aug Sep Oct Nov Dec
1995 1581205 1592082 1606619 1619486 1628006 1634031
1996 1730012 1738475 1743897 1750584 1762282 1778717
1997 1939469 1953286 1968296 1986096 2006428 2030027
1998 2185137 2205503 2225933 2247366 2271605 2299548
1999 2451458 2458613 2478966 2506121 2526137 2545232
2000 2710500 2726083 2740250 2749958 2764958 2783167
2001 2853625 2853333 2856208 2851167 2835042 2822375
2002 2797500 2800000 2804601 2819138 2839741 2856675
2003 2931314 2944413 2945462 2939584 2929626 2925199
2004 3036934 3041847 3047916 3045807 3039490 3034147
2005 NA NA NA NA NA NA

També conté la component irregular, al voltant de la unitat en el cas multiplicatiu. Aquí


posem identificar períodes amb valors destacats per dalt (per exemple, abril de 2000) o
per baix (per exemple, abril de 2005):

49
$random
Jan Feb Mar Apr May Jun
1995 NA NA NA NA NA NA
1996 1.0270811 1.0078241 0.9747033 1.0051884 1.0422064 1.0073869
1997 1.0301317 0.9726225 0.9125754 0.9721229 1.0203684 0.9995684
1998 1.0020243 0.9840962 0.9228099 1.0086923 1.0149932 1.0180009
1999 1.0264076 1.0105306 0.9468446 1.0267129 1.0234328 1.0247778
2000 0.9375576 0.9962432 1.0165986 1.0807985 0.9931983 1.0276138
2001 0.9371424 1.0286283 0.9995287 1.0561591 1.0190909 1.0272229
2002 0.9554162 1.0110647 1.0686240 0.9683766 0.9870931 0.9984053
2003 0.9477787 0.9992111 1.0639803 1.0477894 1.0203336 1.0112324
2004 1.0413902 1.0040061 1.0263592 0.9723048 0.9441392 0.9814542
2005 1.0618309 0.9525340 1.0347367 0.8286159 0.9019048 0.8710982
Jul Aug Sep Oct Nov Dec
1995 1.0297841 0.9668264 0.9874872 0.9379523 0.9507421 1.0267122
1996 1.0166453 0.9851368 0.9932805 0.9610037 0.9886903 1.0298524
1997 1.0170084 1.0554852 0.9924898 0.9708510 0.9888681 1.0247684
1998 0.9790877 1.0053412 0.9996981 1.0196903 0.9761806 1.0114627
1999 0.9707579 0.9827477 1.0044207 1.0467349 1.0276782 0.9109635
2000 0.9922339 0.9683306 1.0022973 1.0169128 1.0281567 0.9742943
2001 1.0134038 0.9756085 1.0113154 0.9736424 1.0083370 0.9891252
2002 0.9918169 0.9968103 0.9970045 0.9951124 0.9964247 0.9938563
2003 0.9659250 1.0190088 0.9717145 0.9873318 0.9786556 0.9994640
2004 0.9900977 1.0114651 1.0070528 1.0575292 1.0230273 1.0062617
2005 NA NA NA NA NA NA

Finalment conté els coeficients estacionals. Aquests ens estan dient que el gener hi ha uns
ingressos que representen el 75,6% d’un mes que es comportés com la mitjana de l’any
(és a dir, estan un 24,4% per sota la mitjana de l’any). El desembre, que té el valor mínim,
està un 32,5% per sota la mitjana de l’any. Entre els mesos que estan sobre la mitjana de
l’any hi trobem, per exemple, el maig, que està un 3,1% per sobre d’un mes mitjà, i
l’agost, que té el valor màxim, i està un 50,0% per sobre. Els mesos amb més ingressos
són agost, juliol, setembre, juny i octubre en aquest ordre. Els mesos amb menys són
desembre, febrer, gener i novembre en aquest ordre.

$figure
[1] 0.7560725 0.6988322 0.7906917 0.7964238 1.0309591 1.1499212
[7] 1.4326349 1.5001421 1.2888920 1.1246330 0.7562938 0.6745037

La sèrie desestacionalitzada sol ser el resultat més interessant d’una descomposició. És


més fàcil d’interpretar que la sèrie original perquè reflexa en aquest cas l’evolució dels
ingressos per turisme sense les zigues-zagues estacionals que no donen cap informació
sobre si la temporada està anant bé o malament. Per obtenir-la cal dividir la sèrie i els
coeficients estacionals. Ho emmagatzemem en un objecte que anomenem sas.

sas=serie_ingtur/descomposicio$seasonal
sas

50
Jan Feb Mar Apr May Jun
1995 1525342 1477383 1371621 1581889 1678867 1699957
1996 1687916 1675042 1638181 1704973 1782127 1733127
1997 1854934 1785002 1705557 1839605 1950432 1925268
1998 2057640 2040207 1935593 2147629 2185795 2206786
1999 2389989 2380081 2255313 2476101 2496304 2511599
2000 2415112 2598621 2679932 2872842 2655779 2767146
2001 2626732 2904846 2839286 3007193 2901182 2927157
2002 2683605 2833298 2989787 2705846 2758596 2790626
2003 2717993 2881951 3086448 3047954 2973930 2951000
2004 3058205 2963726 3046032 2910951 2847938 2971565
2005 3235250 2940913 3250392 2644520 2906682 2807387
Jul Aug Sep Oct Nov Dec
1995 1628300 1539267 1586516 1519000 1547814 1677679
1996 1758808 1712636 1732178 1682318 1742351 1831816
1997 1972457 2061665 1953514 1928203 1984093 2080307
1998 2139440 2217283 2225261 2291618 2217497 2325907
1999 2379772 2416196 2489925 2623244 2596056 2318613
2000 2689450 2639750 2746545 2796468 2842811 2711623
2001 2891874 2783736 2888527 2776017 2858677 2791682
2002 2774608 2791069 2796200 2805360 2829588 2839125
2003 2831429 3000382 2862148 2902345 2867095 2923631
2004 3006862 3076723 3069412 3221030 3109481 3053146
2005 3351628 3397052 3698589 3571597 3582516 2522338

Per exemple, si mirem la sèrie original veurem que entre agost i setembre de 2005, els
ingressos baixen (com és lògic) de 5096061 a 4767082 però un cop treta l’estacionalitat,
pugen de 3397052 a 3698589 tot revelant així que aquesta temporada el setembre ha anat
millor que l’agost.
La diferència entre la mitjana mòbil i la sèrie desestacionalitzada és que la sèrie desesta-
cionalitzada encara conté la component irregular i la mitjana mòbil en canvi només la
tendència. Per tant, mostra de forma suau l’evolució de la sèrie a mitjà i a llarg termini.
La millor manera de veure les components és per mitjà d’un gràfic conjunt de cada com-
ponent i la sèrie original. A banda, podem fer un gràfic de la sèrie desestacionalitzada:

plot(descomposicio)
plot(sas)

Es veu clarament com l’estacionalitat dificulta veure l’evolució subjacent de la sèrie ori-
ginal (observed) a causa de les enormes zigues-zagues estacionals. La mitjana mòbil
(trend) ens representa l’evolució suau a llarg termini que ens mostra una tendència crei-
xent amb una depressió cíclica els anys 2002 i 2003 causada probablement per l’atemptat
de les torres bessones a finals de 2001. Les components irregular (random) i estacional
(seasonal) estan al voltant de 1. Ambdues ens indiquen oscil·lacions entorn de la tendèn-
cia, sigui per causes fortuïtes o estacionals (positives si són més grans que 1, negatives
en cas contrari). En aquesta sèrie les oscil·lacions estacionals són molt importants (vora
un 40% per sobre i un 30% per sota la mitjana de l’any). De fet, el gràfic ens mostra els
mateixos valors dels coeficients estacionals de la taula repetits per tots els anys. Pel que
fa a les oscil·lacions irregulars són de poca quantia, en general de menys del 10% cap
amunt o cap avall. Ens trobaríem, per tant, amb una sèrie d’evolució molt regular i fàcil
de preveure. Les punxes més altes i més baixes indicarien mesos amb ingressos anormal-
ment alts o baixos, cosa que es veu amb més precisió a la taula que al gràfic.

51
Decomposition of multiplicative time series
5e+06
observed
3e+06 1e+06
3000000
trend
2000000
1.4
seasonal
1.2
1.0
0.8
1.05
random
0.95
0.85

1996 1998 2000 2002 2004 2006

Time

La sèrie desestacionalitzada (sas) ens ensenya les petites variacions irregulars a curt ter-
mini per sobre o per sota la tendència un cop eliminades les dents de serra estacionals.
Veiem per exemple que els darrers mesos de la sèrie hi ha hagut una disminució conside-
rable dels ingressos que caldria estudiar a fons, perquè aquesta disminució es veu també
a la sèrie desestacionalitzada i, per tant, no és un efecte de temporada baixa.

52
3500000
2500000
sas

1500000

1996 1998 2000 2002 2004 2006

Time

Si pensem que no ens caldran més els objectes que hem creat, podem esborrar-los:
rm(descomposició)
rm(serie_ingtur)
rm(sas)

53

You might also like