• No se han encontrado resultados

Pr`actica R : 4 Descripci´o de mostres univariants

univariants

Objectius

Usar les capacitats de

R

per explorar i descriure mostres univariants a partir

dels principals gr`afics i estad´ıstics implementats.

Tipus de variables

Les variables m´es senzilles que s’analitzen poden ser:

1. Qualitatives: les dades s´on etiquetes i nom´es es poden considerar com

iguals o distintes. Les dades tamb´e poden expressar graus d’una qualitat

(com el nivell de satisfacci´o) que tenen un ordre, de menor a major.

2. Quantitatives: les dades expressen quantitats sobre...

Discretes: ...un concepte comptable per unitats (0, 1, 2...)

Cont´ınues: ...un concepte mesurable sobre una escala comuna de

nombres reals (com les llarg`aries, temps, o altres unitats que es

podrien mesurar amb major o menor exactitud, usant m´es o menys

nombres decimals)

Per algunes tasques, com ara alguns gr`afics i la taula de freq¨u`encies, les

variables quantitatives discretes s’assemblen m´es a les variables qualitatives

que a les quantitatives discretes, ja que les repeticions s´on m´es habituals als

dos primers tipus.

Descripci´o de mostres univariants qualitatives

Una mostra de dades univariants qualitatives pot estar emmagatzemada a un

vector de tipuscharactero a una columna concreta d’un

data.frame. Anem

a treballar amb les dades creades pel codi:

set.seed(123456789)

d1vql <- sample(x=c( A , B , C , D , E , F ),

size=rpois(n=1, lambda=500),

replace=TRUE, prob=c(1,5,4,9,1,2))

Taula de freq¨u`encies:

table()

La funci´o

table()

crea una taula de freq¨u`encies: torna un vector amb les

freq¨u`encies absolutes (repeticions) de cada valor existent en el vector de dades

que es passa com a argument.

En realitat, torna un vector les coordenades del qual estan etiquetades amb

els valors corresponents. A l’exemple:

table(d1vql)

torna per pantalla:

d1vql

A

B

C

D

E

F

El vector tornat ´es el vector (16,113,95,209,18,60) mentre que les lletres

que apareixen al damunt s´on etiquetes que ajuden l’usuari a saber cada fre-

q¨u`encia a quina dada pertany.

La funci´otable()ordena el vector de freq¨u`encies per l’ordre de les catego-

ries de les dades (alfab`etic). Normalment interessa escriure les freq¨uencies de

major a menor, mostrant primer les dades m´es rellevants. Per obtenir aquesta

modificaci´o cal usar les funcionssort()

irev()

mostrades a la Secci´o 1.6. Per

exemple:

rev(sort(table(d1vql)))

torna per pantalla:

d1vql

D

B

C

F

E

A

209 113

95

60

18

16

Ara el vector tornat t´e les freq¨u`encies ordenades, i les seues etiquetes. Si

es vol obtenir una taula de freq¨u`encies amb els percentatges, en lloc de les

freq¨u`encies absolutes, s’ha de fabricar a m`a. A mode d’exemple:

rev(sort(table(d1vql)/length(d1vql)*100))

torna per pantalla:

d1vql

D

B

C

F

E

A

40.900196 22.113503 18.590998 11.741683

3.522505

3.131115

Gr`afics

Diagrama de barres

barplot()

La funci´o

barplot()

fa el diagrama de barres corresponent a la taula de fre-

q¨u`encies que es passe com a argument. Una sintaxi m´es completa ´es:

barplot(height, col = NULL, main = NULL, sub = NULL,

xlab = NULL, ylab = NULL, xlim = NULL, ylim = NULL )

on:

height: ´es el vector de freq¨u`encies. Normalment ´es

heigth=table(...).

col: vector de colors (optatiu).

main, sub: t´ıtol principal i secundari del gr`afic.

xlab, ylab: etiquetes per als eixos horitzontal i vertical.

xlim, ylim: l´ımits inferior i superior dels eixos horitzontal i vertical.

Normalment es calculen autom`aticament, per`o l’usuari pot manipular-

los.

Els valors

NULL

que figuren s´on valors per defecte. No cal escriure’ls si no

els volem canviar. Prova amb:

barplot(height=table(d1vql))

# orden. per categ.

barplot(height=rev(sort(table(d1vql))))# orden. per freq.

Diagrama de sectors (past´ıs)

pie()

La funci´o

pie()

fa un diagrama de barres a partir d’un vector amb les fre-

q¨u`encies absolutes:

pie(x, labels = names(x), col = NULL, main = NULL, ...)

on:

x: ´es el vector de freq¨u`encies. Normalment ´es

x=table(...).

labels: etiquetes de les categories. Es prenen autom`aticament de la

taula, per`o l’usuari pot canviar-les.

col: vector de colors (optatiu).

main: t´ıtol principal del gr`afic.

Com sempre, hi ha m´es opcions per a usuaris avan¸cats. Prova amb:

pie( x=table(d1vql) )

pie( x=rev(sort(table(d1vql))) )

n <- length(unique(d1vql))

pie( x=table(d1vql), col=grey((1:n)/n))

Moda

La moda, com a dada m´es present en la mostra de dades, es pot trobar r`api-

dament mirant la taula de freq¨u`encies. Una forma per a que la torne

R

sense

haver de mirar-la seria agafar la primera component de la taula de freq¨u`encies

quan est`a ordenada. Per exemple:

rev(sort(table(d1vql)))[1]

que torna per pantalla:

D

209

Descripci´o de mostres univariants quantitatives

Les mostres univariants quantitatives es poden emmagatzemar en un vector de

tipusnum`erico en una columna concreta d’undata.frame. Anem a treballar

amb les dades creades pel codi:

set.seed(123456789)

d1vqtd <- rpois(n=rpois(n=1, lambda=500), lambda=50 )

d1vqtc <- rnorm(n=rpois(n=1, lambda=500), mean=50, sd=10

)

que creen una mostra de dades de variables discreta i cont´ınua, respectivament.

Taula de freq¨u`encies:

table()

En el cas de variables discretes, les repeticions s´on freq¨uents, aleshores la taula

es construeix com a la secci´o anterior. En el cas de variables cont´ınues, les

repeticions s´on poques, i l’abund`ancia de dades diferents fa la t`ecnica in´util, i

es recorre a fer intervals. Prova:

table(d1vqtd)

table(d1vqtc)

Les variables cont´ınues es transformen en discretes formant intervals amb

ajuda de la funci´o

cut(), amb arguments:

x: el vector num`eric amb les dades a classificar en intervals.

breaks: vector que expressa la partici´o dels intervals. El nombre d’in-

tervals ser`a un menys que la llarg`aria del vector de

breaks.

right: valor l`ogic que indica si els intervals s´on tancats per la dreta

(TRUE) o per l’esquerra (FALSE).

include.lowest: valor l`ogic que indica si es tanca (TRUE) o no es tanca

(FALSE) l’interval (primer o ´ultim) que quedava amb un extrem obert.

Una vegada creada la variable amb intervals es pot fer la taula d’aquesta

nova mostra, ´es a dir:

a <- d1vqtc

intervals <- seq(from=min(a), to=max(a), length=10)

d1vqtc2 <- cut(x=d1vqt, breaks=intervals, include.lowest=TRUE)

table(d1vqtc2)

Gr`afics (I)

Per a mostres de variables cont´ınues amb poques dades

La distribuci´o de les dades d’una xicoteta mostra es pot visualitzar molt con-

venientment amb un diagrama de punts. Aquest s’obt´e amb la funci´ostripc-

hart(). Per exemple:

d1vqtc3 <- d1vqtc[1:30]

stripchart(d1vqtc3)

Quan hi ha moltes dades els punts formen l´ınies cont´ınues i no deixen

apreciar com es ditribueixen.

Per mostres de variables cont´ınues amb moltes dades

L’histograma ´es el gr`afic convenient en aquest cas, i es demana amb la funci´o

hist(). Per exemple:

hist( x=d1vqtc )

Una sintaxi m´es completa de la funci´o ´es:

hist(x, breaks = "Sturges", freq = NULL, probability = !freq,

include.lowest = TRUE, right = TRUE,

density = NULL, angle = 45, col = NULL, border = NULL,

main = paste("Histogram of" , xname),

xlim = range(breaks), ylim = NULL,

xlab = xname, ylab,

axes = TRUE, plot = TRUE, labels = FALSE,

nclass = NULL, ...)

on els principals arguments s´on:

x: la variable que cont´e les dades qualitatives.

breaks: per defecte pren un valor t´ıpic, per`o l’usuari pot variar-lo donant

un vector de punts de tall dels intervals.

freq: el valor per defecte fa que les freq¨u`encies siguen absolutes. Un

valor igual a

TRUE

fa que l’histograma siga com una funci´o de densitat

(amb `area total igual a 1).

Els altres arguments s´on semblants als ja utilitzats en la funci´oplot(), o

prou intu¨ıtius.

Un histograma enR, a banda de dibuixar un gr`afic amb barres, ´es un objecte

m´es complex que pots examinar si l’emmagatzemes en una variable. Prova a

averiguar qu`e t´e l’histograma anterior (fes que una variable l’emmagatzeme i

despr´es mostra la variable).

Per mostres de variables discretes

Una forma de representar mostres de dades de variables discretes, degut a les

repeticions, ´es tractar-les com si foren variables qualitatives, i fer doncs un

diagrama de barres, aprofitant que les categories s’ordenen per ordre alfab`etic

(que ´es el mateix que el num`eric quan les etiquetes s´on nombres). Una altra

forma ´es usar l’histograma, for¸cant la creaci´o d’intervals, perqu`e hi haja un

valor a cada interval. Per exemple:

barplot( table(d1vqtd) )

br <- seq( fr=min(d1vqtd)-0.5, to=max(d1vqtd)+0.5, by=1 )

hist( x=d1vqtd, breaks=br )

Estad´ıstics

Els estad´ıstics principals estan programats i nom´es cal usar-los. Si la variable

x

t´e la mostra:

1. De posici´o:

Mitjana aritm`etica:

mean(x)

Mediana:

median(x)

M´ınim:

min(x)

M`axim:

max(x)

Quantil d’ordre

p:

quantile( x, prob=p )

2. De dispersi´o:

Recorregut:

diff( range(x) )

Recorregut interquart´ıl lic:

IQR(x)

Vari`ancia mostral:

var(x)

Desviaci´o t´ıpica mostral:

sd(x)

Coef. de variaci´o de Pearson:

sd(x)/mean(x)

Gr`afics (II)

El diagrama de caixa:

boxplot()

El diagrama de caixa i bigots ´es molt ´util per intuir la posici´o central i dispersi´o

de les mostres quantitatives. La funci´oboxplot()torna el gr`afic. Per exemple:

boxplot(x)

Sobretot ´es ´util en comparacions de mostres relacionades, i poden repre-

sentar el gr`afic de v`aries mostres (boxplot(x1, x2,...)).

El diagrama de quantils:

ecdf()

Un altre gr`afic que d´ona informaci´o r`apida sobre la distribuci´o de les dades ´es

el diagrama de quantils. Amb aquest ´es molt r`apid contestar preguntes com

‘quin percentatge de les dades de la mostra s´on inferiors a un valor donat?’.

El diagrama de quantils es calcula amb la funci´o

ecdf()

i es dibuixa amb un

plot. Per exemple:

plot( ecdf(d1vqtd) )

plot( ecdf(d1vqtc) )

Exercicis d’ensinistrament

Usa la mostra de dades que figura a l’arxiu

s4-descriptiva-1v-dades.txt

i

carrega’l a una variable de

R, per exemple

mostra.

1. Per a la mostra univariant formada per la variable SEXE, obt´ın amb

R:

(a) La taula de freq¨u`encies.

(b) El diagrama de barres.

(c) El diagrama de sectors.

(d) Quants homes conformen la mostra? Sol.: 98

(e) Quin percentatge dels individus de la mostra s´on dones? Sol.: 44.31

2. Per a la mostra univariant formada per la variable SISOPER, obt´ın amb

R:

(a) La taula de freq¨u`encies absolutes i relatives, ordenades de major a

menor freq¨u`encia.

(b) El diagrama de barres amb les barres ordenades de major a menor

freq¨u`encia.

(c) Quin percentatge dels individus de la mostra usa Linux? Sol.: 51.70

3. Per a la mostra univariant formada per la variable NOTAFINAL:

(a) Dibuixa un histograma de les notes amb 10 intervals.

(b) Quants individus han superat l’assignatura? Sol.: 104

(c) Quina nota prendries per representar el nivell del grup? Sol.: 6.12

(o 5.78)

(d) Quin valor descriuria la variabilitat de notes en el grup? Sol.: 2.99

(altres valors s´on possibles)

(e) Quin sexe pots considerar que t´e un nivell superior de la nota final?

Sol.: Les dones (6.354>5.948)

(f) Quin sexe pots considerar que forma un grup m´es homogeni respecte

al nivell de la nota final? Sol.: Les dones (0.4623544<0.5108202)

(g) Compareu les notes dels alumnes agrupats per sexe, usant un gr`afic

que visualitze b´e la posici´o i la dispersi´o.

(h) Compareu les notes dels alumnes agrupats per sistema operatiu,

usant un gr`afic que visualitze b´e la posici´o i la dispersi´o.

(i) Si el professor vol tenir un percentatge de suspensos del 30%, quina

nota de tall divis`oria hauria d’establir? Sol.: 4.33

Cap´ıtol 4

Descripci´o de mostres de dades

multivariants