Estadistica Amb RStudio-TUTORIA 2

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 10

Estadística I - Pràctica 2

Curs 2020-2021

Índex
1 Introducció 1

2 Objectius 2
2.1 Conceptes teòrics relacionats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

3 Taules de Freqüències Bivariants 2


3.1 Taules de contingència . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3.2 Taules de freqüències marginals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.3 Taules de Freqüències Condicionals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

4 Reresentacions gràfiques 7
4.1 Per a variables discretes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.2 Per a variables contínues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1 Introducció
En aquesta segona sessió pràctica continuarem amb el càlcul de freqüències, ara bivariants, i veurem com
representar gràficament la informació proporcionada per aquestes freqüències i d’altres característiques d’un
conjunt de dades.
Més específicament veurem com:
1. Calcular taules de freqüències conjuntes entre variables discretes
2. Calcular taules de freqüències condicionades per variables discretes
3. Representar gràficament un conjunt de dades corresponent a una variable discreta
4. Representar gràficament un conjunt de dades corresponent a una variable contínua
Abans de començar, però, hem de carregar la base de dades HDI_Data.csv que utilitzem en aquestes sessions
pràctiques.
library (readr)
HDI_Data <- read_csv ("Data/HDI_Data.csv")

##
## -- Column specification --------------------------------------------------------
## cols(
## COUNTRY = col_character(),
## HDI = col_double(),
## LEB = col_double(),
## EYS = col_double(),
## MYS = col_double(),
## GNI_GROUP = col_double(),
## GNI_MINUS_HDI = col_double()
## )

1
2 Objectius
L’objectiu d’aquesta sessió es avançar en el procés de resumir i fer entenedora la informació continguda en el
conjunt de dades.

2.1 Conceptes teòrics relacionats


2.1 Tipus de variables i taules de distribució de freqüències
• 2.1.3 Taules de freqüències bivariants
• 2.1.4 Taules de freqüències marginals i condicionades
2.2 Representacions gràfiques
• 2.2.1 Representacions gràfiques de variables qualitatives
• 2.2.2 Representacions gràfiques de variables quantitatives

3 Taules de Freqüències Bivariants


Construirem ara una taula de freqüències bivariants, és a dir, una taula que considera la distribució conjunta
de freqüències de dues variables. En aquest exercici, la taula es construirà per a dues variables qualitatives, el
que es coneix com a taula de contingència.
Una de les variables utilitzades serà el GNI_GROUP, que categoritza els països de 5 grups depenent de la
seva renda per capita i que ja està en el nostre conjunt de dades. L’altra variable serà la que anem a crear de
nou i que categoritzarà els països en 4 grups segons el seu Índex de desenvolupament humà (HDI).
Per tant, categoritzarem primer la variable quantitativa contínua HDI creant una nova variable qualitativa,
HDI_GROUP, utilitzant els mateixos criteris que fa servir el programa de desenvolupament de les Nacions
Unides de la manera següent:

Valor HDI Categoria Valor HDI_GROUP


HDI ≥ 0.8 Països amb IDH molt alt Molt alt
0.7 ≤ HDI < 0.8 Països amb d’IDH alt Alt
0.55 ≤ HDI < 0.7 Països amb IDH mig Mitjà
HDI < 0.55 Països amb IDH baix baix

El codi R per fer-ho és:


HDI_Data$HDI_GROUP <- NA
HDI_Data$HDI_GROUP [HDI_Data$HDI >= 0.8] = "Molt alt"
HDI_Data$HDI_GROUP [HDI_Data$HDI < 0.8] = "Alta"
HDI_Data$HDI_GROUP [HDI_Data$HDI < 0.7] = "Mitjà"
HDI_Data$HDI_GROUP [HDI_Data$HDI < 0.55] = "Baix"

Això afegeix una nova columna a la taula HDI_Data amb la variable HDI_GROUP, els valors estan buits
primer (NA) i després s’omplen segons s’indica a la taula anterior.

3.1 Taules de contingència


A continuació, creem una taula de contingència amb les variables GNI_GROUP i HDI_GROUP i
l’anomenen ContingencyTable
Notar al codi que segueix que totes les opcions disponibles s’estableixen en FALSE. En les subsegüents seccions
veurem com els resultats varien quan canviem algunes d’aquestes opcions. Observar a més que el paquet
gmodels es carrega primer. És necessari per utilitzar la comanda CrossTable, que construeix la taula.

2
library (gmodels)
ContingencyTable <-CrossTable (HDI_Data$GNI_GROUP, HDI_Data$HDI_GROUP,
prop.r = FALSE, prop.c = FALSE, prop.t = FALSE, prop.chisq = FALSE)

##
##
## Cell Contents
## |-------------------------|
## | N |
## |-------------------------|
##
##
## Total Observations in Table: 161
##
##
## | HDI_Data$HDI_GROUP
## HDI_Data$GNI_GROUP | Alta | Baix | Mitjà | Molt alt | Row Total |
## -------------------|-----------|-----------|-----------|-----------|-----------|
## 1 | 19 | 0 | 5 | 22 | 46 |
## -------------------|-----------|-----------|-----------|-----------|-----------|
## 2 | 11 | 2 | 4 | 19 | 36 |
## -------------------|-----------|-----------|-----------|-----------|-----------|
## 3 | 10 | 2 | 7 | 5 | 24 |
## -------------------|-----------|-----------|-----------|-----------|-----------|
## 4 | 2 | 5 | 4 | 1 | 12 |
## -------------------|-----------|-----------|-----------|-----------|-----------|
## 5 | 5 | 26 | 12 | 0 | 43 |
## -------------------|-----------|-----------|-----------|-----------|-----------|
## Column Total | 47 | 35 | 32 | 47 | 161 |
## -------------------|-----------|-----------|-----------|-----------|-----------|
##
##
A la part superior de la taula, la llegenda Cell contents informa del contingut de les cel·les. En aquest cas,
cada cel·la només té un valor, és a dir, N, que és la frequència conjunta. Així, per exemple, a la cel·la
que correspon als valors 2 de la variable GNI_GROUP i Baixa per a la variable HDI_GROUP, trobem
que N = 2. És a dir, hi ha 2 països amb un nivell de renda per capita Alt (GNI_GROUP = 2) i un baix
índex de desenvolupament humà (HDI_GROUP = baix)
Per produir la mateixa taula però amb freqüències relatives conjuntes, només cal canviar l’opció prop.t de
FALSE a TRUE de la següent manera:
RelContingencyTable <-CrossTable (HDI_Data$GNI_GROUP, HDI_Data$HDI_GROUP,
prop.r = FALSE, prop.c = FALSE, prop.t = TRUE, prop.chisq = FALSE)

##
##
## Cell Contents
## |-------------------------|
## | N |
## | N / Table Total |
## |-------------------------|
##
##
## Total Observations in Table: 161

3
##
##
## | HDI_Data$HDI_GROUP
## HDI_Data$GNI_GROUP | Alta | Baix | Mitjà | Molt alt | Row Total |
## -------------------|-----------|-----------|-----------|-----------|-----------|
## 1 | 19 | 0 | 5 | 22 | 46 |
## | 0.118 | 0.000 | 0.031 | 0.137 | |
## -------------------|-----------|-----------|-----------|-----------|-----------|
## 2 | 11 | 2 | 4 | 19 | 36 |
## | 0.068 | 0.012 | 0.025 | 0.118 | |
## -------------------|-----------|-----------|-----------|-----------|-----------|
## 3 | 10 | 2 | 7 | 5 | 24 |
## | 0.062 | 0.012 | 0.043 | 0.031 | |
## -------------------|-----------|-----------|-----------|-----------|-----------|
## 4 | 2 | 5 | 4 | 1 | 12 |
## | 0.012 | 0.031 | 0.025 | 0.006 | |
## -------------------|-----------|-----------|-----------|-----------|-----------|
## 5 | 5 | 26 | 12 | 0 | 43 |
## | 0.031 | 0.161 | 0.075 | 0.000 | |
## -------------------|-----------|-----------|-----------|-----------|-----------|
## Column Total | 47 | 35 | 32 | 47 | 161 |
## -------------------|-----------|-----------|-----------|-----------|-----------|
##
##
Ara, cada cel·la conté tant la freqüència absoluta com la freqüència relativa. Notar que les freqüències
relatives s’han calculat amb respecte les 161 observacions vàlides. (Recordeu que hi ha 27 països per als quals
falta el valor de HDI i, per tant, HDI_GROUP)

3.2 Taules de freqüències marginals


Les freqüències marginals s’obtenen sumant simplement les freqüències conjuntes per columnes (per a la
variable ** GNI_GROUP ) o les files (per a la variable HDI_GROUP **).
Això ja estava calculat per defecte a les taules anteriorment obtingudes
RelContingencyTable <-CrossTable (HDI_Data $ GNI_GROUP, HDI_Data $ HDI_GROUP,
prop.r = FALSE, prop.c = FALSE, prop.t = TRUE, prop.chisq = FALSE)

##
##
## Cell Contents
## |-------------------------|
## | N |
## | N / Table Total |
## |-------------------------|
##
##
## Total Observations in Table: 161
##
##
## | HDI_Data$HDI_GROUP
## HDI_Data$GNI_GROUP | Alta | Baix | Mitjà | Molt alt | Row Total |
## -------------------|-----------|-----------|-----------|-----------|-----------|
## 1 | 19 | 0 | 5 | 22 | 46 |
## | 0.118 | 0.000 | 0.031 | 0.137 | |

4
## -------------------|-----------|-----------|-----------|-----------|-----------|
## 2 | 11 | 2 | 4 | 19 | 36 |
## | 0.068 | 0.012 | 0.025 | 0.118 | |
## -------------------|-----------|-----------|-----------|-----------|-----------|
## 3 | 10 | 2 | 7 | 5 | 24 |
## | 0.062 | 0.012 | 0.043 | 0.031 | |
## -------------------|-----------|-----------|-----------|-----------|-----------|
## 4 | 2 | 5 | 4 | 1 | 12 |
## | 0.012 | 0.031 | 0.025 | 0.006 | |
## -------------------|-----------|-----------|-----------|-----------|-----------|
## 5 | 5 | 26 | 12 | 0 | 43 |
## | 0.031 | 0.161 | 0.075 | 0.000 | |
## -------------------|-----------|-----------|-----------|-----------|-----------|
## Column Total | 47 | 35 | 32 | 47 | 161 |
## -------------------|-----------|-----------|-----------|-----------|-----------|
##
##

3.3 Taules de Freqüències Condicionals


Les freqüències condicionals per a cada variable s’obtenen de la següent manera:
• Per a la variable GNI_GROUP condicionada a HDI_GROUP -> establint prop.c=TRUE
• Per a la variable HDI_GROUP condicionada a GNI_GROUP -> establint prop.r=TRUE
Per tant, per a GNI_GROUP condicionada a HDI_GROUP fem:
CrossTable (HDI_Data$GNI_GROUP, HDI_Data$HDI_GROUP,
prop.r = FALSE, prop.c = TRUE, prop.t = FALSE, prop.chisq = FALSE)

##
##
## Cell Contents
## |-------------------------|
## | N |
## | N / Col Total |
## |-------------------------|
##
##
## Total Observations in Table: 161
##
##
## | HDI_Data$HDI_GROUP
## HDI_Data$GNI_GROUP | Alta | Baix | Mitjà | Molt alt | Row Total |
## -------------------|-----------|-----------|-----------|-----------|-----------|
## 1 | 19 | 0 | 5 | 22 | 46 |
## | 0.404 | 0.000 | 0.156 | 0.468 | |
## -------------------|-----------|-----------|-----------|-----------|-----------|
## 2 | 11 | 2 | 4 | 19 | 36 |
## | 0.234 | 0.057 | 0.125 | 0.404 | |
## -------------------|-----------|-----------|-----------|-----------|-----------|
## 3 | 10 | 2 | 7 | 5 | 24 |
## | 0.213 | 0.057 | 0.219 | 0.106 | |
## -------------------|-----------|-----------|-----------|-----------|-----------|
## 4 | 2 | 5 | 4 | 1 | 12 |
## | 0.043 | 0.143 | 0.125 | 0.021 | |

5
## -------------------|-----------|-----------|-----------|-----------|-----------|
## 5 | 5 | 26 | 12 | 0 | 43 |
## | 0.106 | 0.743 | 0.375 | 0.000 | |
## -------------------|-----------|-----------|-----------|-----------|-----------|
## Column Total | 47 | 35 | 32 | 47 | 161 |
## | 0.292 | 0.217 | 0.199 | 0.292 | |
## -------------------|-----------|-----------|-----------|-----------|-----------|
##
##
Així, per exemple, a la cel·la que correspon als valors 2 per a la variable GNI_GROUP i Baixa per a
la variable HDI_GROUP , trobem que la freqüència condicional és 0.057. És a dir, dins els països amb
un baix índex de desenvolupament humà (HDI_GROUP = baix) el 5,7% té una renda per capita Alta
(GNI_GROUP = 2). Tal és la freqüència relativa de GNI_GROUP = 2 condicionada a HDI_GROUP
= Baix.
De la mateixa manera, per HDI_GROUP condicionada a GNI_GROUP fem:
CrossTable (HDI_Data$GNI_GROUP, HDI_Data$HDI_GROUP,
prop.r = TRUE, prop.c = FALSE, prop.t = FALSE, prop.chisq = FALSE, expected = FALSE)

##
##
## Cell Contents
## |-------------------------|
## | N |
## | N / Row Total |
## |-------------------------|
##
##
## Total Observations in Table: 161
##
##
## | HDI_Data$HDI_GROUP
## HDI_Data$GNI_GROUP | Alta | Baix | Mitjà | Molt alt | Row Total |
## -------------------|-----------|-----------|-----------|-----------|-----------|
## 1 | 19 | 0 | 5 | 22 | 46 |
## | 0.413 | 0.000 | 0.109 | 0.478 | 0.286 |
## -------------------|-----------|-----------|-----------|-----------|-----------|
## 2 | 11 | 2 | 4 | 19 | 36 |
## | 0.306 | 0.056 | 0.111 | 0.528 | 0.224 |
## -------------------|-----------|-----------|-----------|-----------|-----------|
## 3 | 10 | 2 | 7 | 5 | 24 |
## | 0.417 | 0.083 | 0.292 | 0.208 | 0.149 |
## -------------------|-----------|-----------|-----------|-----------|-----------|
## 4 | 2 | 5 | 4 | 1 | 12 |
## | 0.167 | 0.417 | 0.333 | 0.083 | 0.075 |
## -------------------|-----------|-----------|-----------|-----------|-----------|
## 5 | 5 | 26 | 12 | 0 | 43 |
## | 0.116 | 0.605 | 0.279 | 0.000 | 0.267 |
## -------------------|-----------|-----------|-----------|-----------|-----------|
## Column Total | 47 | 35 | 32 | 47 | 161 |
## -------------------|-----------|-----------|-----------|-----------|-----------|
##
##

6
4 Reresentacions gràfiques
Veurem com representar un conjunt de dades
L’objectiu és tenir una instantània visual de la informació continguda en les dades.
La majoria d’aquestes representacions gràfiques se centraran en les freqüències de les diferents variables

4.1 Per a variables discretes


Les principals representacions gràfiques en el cas de variables quantitatives qualitatives o discretes són
diagrames de barres i diagrames circulars (o gràfics de pastís)
Usarem R Studio per crear un diagrama de barres i un gràfic circular que representi les freqüències de la
variable GNI_GROUP.
El codi R per al diagrama de barres és molt simple: la comanda table calcula les freqüències absolutes de la
variable GNI_GROUP i, a continuació, la comandabarplot s’ocupa de construir la gràfica corresponent.
barplot (table (HDI_Data$GNI_GROUP))
40
30
20
10
0

1 2 3 4 5
En aquest gràfic, l’alçada de cada barra és proporcional a la freqüència de cada valor.
• 46 per valor “1” (països amb ingressos molt elevats)
• 36 per valor “2” (països amb ingressos elevats)
• ...
• 43 per valor “5” (països amb ingressos molt baixos)
El gràfic seria el mateix si utilitzem les freqüències relatives en lloc de les absolutes, només l’escala en l’eix
vertical seria diferent. El que importa és que les barres són proporcionals a les freqüències que representen.
És molt útil explorar les possibilitats que ofereix aquesta comanda per personalitzar la gràfica que s’obté.
L’exemple següent mostra algunes opcions.
barplot (table (HDI_Data$GNI_GROUP),
xlab = "Ingressos", ylab = "Freqüència absoluta", ylim = c (0,50),
names.arg = c ("Very High", "High", "Medium", "Low", "Very Low"),
col = c ("blue"),
main = "Barplot for GNI_GROUP"
)

7
Barplot for GNI_GROUP

50
40
Freqüència absoluta

30
20
10
0

Very High High Medium Low Very Low

Ingressos
D’una manera molt similar, podem crear un gràfic circular en R Studio
A <- c ("Molt alt", "Alt", "Mitjà", "Baix", "Molt baix")
B <- table (HDI_Data$GNI_GROUP)
C <- "Freqüències absolutes per GNI_GROUP"

pie(B, labels = paste (A, B), main = C)

Freqüències absolutes per GNI_GROUP

Molt alt 46
Alt 36

Mitjà 24
Molt baix 43
Baix 12

8
4.2 Per a variables contínues
Les principals representacions gràfiques en el cas de les variables contínues són histogrames i diagrames de
caixa (barplots).
Primer crearem un histograma per a la variable HDI.
Recordar, com es va veure a la primera pràctica, que quan calculem una taula de freqüències per a una
variable contínua amb el paquet agricolae primer es construeix un histograma amb la comandagraph.freq
() i després es calcula la taula de freqüències corresponent amb la comanda ’table .freq ()‘. El codi era:
library (agricolae)
graph.freq (HDI_Data$HDI, breaks = c (0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0), frequency = 2)

0.30

0.25

0.20

0.15

0.10

0.05

0.00

0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0

HDI_Data$HDI
Notar que s’ha introduït l’opció frequency = 2 que, d’acord amb la “pàgina d’ajuda” (Help) de graph.freq,
considerarà les freqüències relatives a l’hora de fer la gràfica.
Ara crearem un diagrama de caixa per a HDI amb R. El codi utilitzat no podria ser més senzill:
boxplot (HDI_Data$HDI)
0.9
0.8
0.7
0.6
0.5
0.4

9
De vegades és interessant disposar d’un diagrama de caixa d’una variable donada per a diferents valors d’una
altra variable. Això es coneix com una “diagrama de caixa factoritzat”.
Per exemple, amb el següent codi tindrem un diagrama de caixa per la variable HDI per a cada valor diferent
de GNI_GROUP, és a dir, per a cada nivell de renda diferent. Notar que, de nou, la comanda és molt
senzilla.
boxplot (HDI_Data$HDI ~ HDI_Data$GNI_GROUP)
0.9
0.8
HDI_Data$HDI

0.7
0.6
0.5
0.4

1 2 3 4 5

HDI_Data$GNI_GROUP
La comanda boxplot té moltes opcions, que es poden consultar a la “pàgina d’ajuda” corresponent. El
següent, per exemple, mostra com col·locar la mitjana de HDI a la gràfica.
mean_HDI <- mean(HDI_Data$HDI)
boxplot(HDI_Data$HDI)
points(mean_HDI, pch = 23, cex = 1, bg ="red")
text(1:5 - 0, mean_HDI, labels = formatC(mean_HDI, format = "f",
digits = 4), pos = 1, cex = 1.4, col = "red")
0.9
0.8
0.7

0.6924
0.6
0.5
0.4

10

You might also like