Está en la página 1de 7

Semana 4

Gustavo Monsalvo

25/8/2020

#Tablas de frecuencia para datos numéricos o cuantitativos


1. Una variable de interés en un estudio del cangrejo Xanthidae (pequeñ o cangrejo
que habita en las proximidades de Gloucester Point, Virginia) es el nú mero de
huevos puestos por individuo. Las siguientes son las observaciones obtenidas
para 45 cangrejos:
cangrejos<-
c(1959,4534,2802,2462,2412,7624,6837,8639,5099,6627,6472,8372,7020,4000,1
548,7417,4484,8225,6725,3378,4801,6082,5633,6142,6964,7343,737,10241,4148
,12130,7428,4189,5321,962,6588,9359,9166,8973,4327,849,5749,3894,1801,584
7,4632)
cangrejos

## [1] 1959 4534 2802 2462 2412 7624 6837 8639 5099 6627 6472
8372
## [13] 7020 4000 1548 7417 4484 8225 6725 3378 4801 6082 5633
6142
## [25] 6964 7343 737 10241 4148 12130 7428 4189 5321 962 6588
9359
## [37] 9166 8973 4327 849 5749 3894 1801 5847 4632

En un conjunto de datos para determinar el número de intervalos o clases


utilizamos el comando nclass.Sturges
nclass.Sturges(cangrejos)

## [1] 7

La tabla de frecuencias para la variable cangrejos


cut: corta cada intervalo, es quien los realiza.
breaks: comando que indica el nú mero de intervalos que se deben tomar.
tabla1<-data.frame(table(tabla=factor(cut(cangrejos,breaks = 7))))
tabla1

## tabla Freq
## 1 (726,2.36e+03] 6
## 2 (2.36e+03,3.99e+03] 5
## 3 (3.99e+03,5.62e+03] 10
## 4 (5.62e+03,7.25e+03] 12
## 5 (7.25e+03,8.87e+03] 7
## 6 (8.87e+03,1.05e+04] 4
## 7 (1.05e+04,1.21e+04] 1

#Tabla de frecuenncias completa


tabla2<-
transform(tabla1,FA=cumsum(Freq),FR=round(prop.table(Freq),2),FRA=round(c
umsum(prop.table(Freq)),2))
tabla2

## tabla Freq FA FR FRA


## 1 (726,2.36e+03] 6 6 0.13 0.13
## 2 (2.36e+03,3.99e+03] 5 11 0.11 0.24
## 3 (3.99e+03,5.62e+03] 10 21 0.22 0.47
## 4 (5.62e+03,7.25e+03] 12 33 0.27 0.73
## 5 (7.25e+03,8.87e+03] 7 40 0.16 0.89
## 6 (8.87e+03,1.05e+04] 4 44 0.09 0.98
## 7 (1.05e+04,1.21e+04] 1 45 0.02 1.00

2.36e+03=2360 significa multiplicar por 1000 #Histograma


tabla3<-table(tabla=factor(cut(cangrejos,breaks = 7)))
tabla3

## tabla
## (726,2.36e+03] (2.36e+03,3.99e+03] (3.99e+03,5.62e+03]
(5.62e+03,7.25e+03]
## 6 5 10
12
## (7.25e+03,8.87e+03] (8.87e+03,1.05e+04] (1.05e+04,1.21e+04]
## 7 4 1

porcentaje<-round(prop.table(tabla3)*100,0)
porcentaje

## tabla
## (726,2.36e+03] (2.36e+03,3.99e+03] (3.99e+03,5.62e+03]
(5.62e+03,7.25e+03]
## 13 11 22
27
## (7.25e+03,8.87e+03] (8.87e+03,1.05e+04] (1.05e+04,1.21e+04]
## 16 9 2

lab<-paste(porcentaje,"%")
lab

## [1] "13 %" "11 %" "22 %" "27 %" "16 %" "9 %" "2 %"

#Elementos del eje x


puntos=min(cangrejos)+(0:7)*(max(cangrejos)-min(cangrejos))/7
puntos
## [1] 737.000 2364.571 3992.143 5619.714 7247.286 8874.857
10502.429
## [8] 12130.000

Min: comando que da el mínimo de los datos. Max:comando que da el má ximo de los
datos
#El comando para el histograma es hist
w<-hist(cangrejos,breaks = puntos,col=rainbow(7),main = "Número de
huevos",xlab="Número de cangrejos", ylab="Frecuencia",labels=lab)
lines(c(min(w$breaks),w$mids,max(w$breaks)),c(0,w$counts,0),type="l")

Xlab nombre del eje x

Poligono de frecuencias
#Ojiva
ejex<-data.frame(tabla3) $tabla
ejex

## [1] (726,2.36e+03] (2.36e+03,3.99e+03] (3.99e+03,5.62e+03]


## [4] (5.62e+03,7.25e+03] (7.25e+03,8.87e+03] (8.87e+03,1.05e+04]
## [7] (1.05e+04,1.21e+04]
## 7 Levels: (726,2.36e+03] (2.36e+03,3.99e+03] ... (1.05e+04,1.21e+04]
ejey<-cumsum(prop.table(tabla3))
ejey

## (726,2.36e+03] (2.36e+03,3.99e+03] (3.99e+03,5.62e+03]


(5.62e+03,7.25e+03]
## 0.1333333 0.2444444 0.4666667
0.7333333
## (7.25e+03,8.87e+03] (8.87e+03,1.05e+04] (1.05e+04,1.21e+04]
## 0.8888889 0.9777778 1.0000000

plot(ejex,ejey,ylim=c(0,1),ylab="Frecuencia Acumulada",xlab="intervalos")
lines(ejex,ejey)

Ejercicio #2 con el paquete MASS de R y el conjuto de datos birthw


Cargar el paquete MASS: library Cargar el conjuto de datos birthwt y data attach: para
que pueda leer cada variable
library(MASS)
data(birthwt)
attach(birthwt)

A. Con la variable “age”, hallar: 1. La tabla de frecuencias, hacer el histograma,


polígono de frecuencias y ojiva
Determinar el nú mero de clases o intervalos con el comando
nclass.Sturges(age)
## [1] 9

tablaage<-data.frame(table(tabla=factor(cut(age,breaks = 9))))
tablaage

## tabla Freq
## 1 (14,17.4] 25
## 2 (17.4,20.9] 44
## 3 (20.9,24.3] 51
## 4 (24.3,27.8] 26
## 5 (27.8,31.2] 28
## 6 (31.2,34.7] 10
## 7 (34.7,38.1] 4
## 8 (41.6,45] 1

tablaage2<-
transform(tablaage,FA=cumsum(Freq),FR=round(prop.table(Freq),2),FRA=round
(cumsum(prop.table(Freq)),2))
tablaage2

## tabla Freq FA FR FRA


## 1 (14,17.4] 25 25 0.13 0.13
## 2 (17.4,20.9] 44 69 0.23 0.37
## 3 (20.9,24.3] 51 120 0.27 0.63
## 4 (24.3,27.8] 26 146 0.14 0.77
## 5 (27.8,31.2] 28 174 0.15 0.92
## 6 (31.2,34.7] 10 184 0.05 0.97
## 7 (34.7,38.1] 4 188 0.02 0.99
## 8 (41.6,45] 1 189 0.01 1.00

#Histograma
tablaage3<-table(tabla=factor(cut(age,breaks = 9)))
tablaage3

## tabla
## (14,17.4] (17.4,20.9] (20.9,24.3] (24.3,27.8] (27.8,31.2]
(31.2,34.7]
## 25 44 51 26 28
10
## (34.7,38.1] (41.6,45]
## 4 1

porcentajeage<-round(prop.table(tablaage3)*100,0)
porcentajeage

## tabla
## (14,17.4] (17.4,20.9] (20.9,24.3] (24.3,27.8] (27.8,31.2]
(31.2,34.7]
## 13 23 27 14 15
5
## (34.7,38.1] (41.6,45]
## 2 1

lab<-paste(porcentajeage,"%")
lab

## [1] "13 %" "23 %" "27 %" "14 %" "15 %" "5 %" "2 %" "1 %"

#Elementos del eje x


puntosage=min(age)+(0:9)*(max(age)-min(age))/9
puntosage

## [1] 14.00000 17.44444 20.88889 24.33333 27.77778 31.22222 34.66667


38.11111
## [9] 41.55556 45.00000

o<-hist(age,breaks = puntosage,col=rainbow(9),main = "Edad de la


madre",xlab="Número de mamás", ylab="Edad",labels=lab)
lines(c(min(o$breaks),o$mids,max(o$breaks)),c(0,o$counts,0),type="l")

Poligono de frecuencias
#Ojiva
ejexage<-data.frame(tablaage3) $tabla
ejexage
## [1] (14,17.4] (17.4,20.9] (20.9,24.3] (24.3,27.8] (27.8,31.2]
(31.2,34.7]
## [7] (34.7,38.1] (41.6,45]
## 8 Levels: (14,17.4] (17.4,20.9] (20.9,24.3] (24.3,27.8] ... (41.6,45]

ejeagey<-cumsum(prop.table(tablaage3))
ejeagey

## (14,17.4] (17.4,20.9] (20.9,24.3] (24.3,27.8] (27.8,31.2]


(31.2,34.7]
## 0.1322751 0.3650794 0.6349206 0.7724868 0.9206349
0.9735450
## (34.7,38.1] (41.6,45]
## 0.9947090 1.0000000

plot(ejexage,ejeagey,ylim=c(0,1),ylab="Frecuencia
Acumulada",xlab="intervalos")
lines(ejexage,ejeagey)

También podría gustarte