Professional Documents
Culture Documents
Estadistica Amb RStudio-TUTORIA 2
Estadistica Amb RStudio-TUTORIA 2
Estadistica Amb RStudio-TUTORIA 2
Curs 2020-2021
Índex
1 Introducció 1
2 Objectius 2
2.1 Conceptes teòrics relacionats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
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.
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.
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)
##
##
## 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 |
## -------------------|-----------|-----------|-----------|-----------|-----------|
##
##
##
##
## 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
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
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"
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