Está en la página 1de 15

ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL

Año: 2020 Periodo: I PAO


Materia: Estadística I

Práctica: Tabla de Frecuencias y Gráficos de histogramas

Fecha: Duración: 60
minutos
Práctica 1. Tablas de Frecuencias, Histograma y Ojiva
Introducción
En la presente práctica se aplican los conceptos de Tablas de Frecuencias para variables
cualitativas y cuantitativas, Gráficos de Histogramas y Ojivas mediante el uso de
comandos de R. Sobre los datos
Empecemos cargando los datos que se requieren para la práctica, para lo cual
utilizaremos la base de datos Iris incorporada por defecto en Rstudio. Iris es un conjunto
de datos de flores que utilizó Ronald Fisher en un artículo publicado en el año 1936. Está
formado por 50 muestras de cada una de tres especies de Iris (Iris setosa, virginica Iris e
Iris versicolor) y cuatro características que se tomaron en cada muestra: longitud,
anchura de los sépalos y pétalos medidos en centímetros.
Tema 1. Obtención de datos
Obtenga los datos de la tabla Iris y asígnelo al objeto data, luego extraiga los 3 primeros
registros asignados (filas). Muestre los nombres de las columnas extraídas y haga
referencia a la columna Species.
Comandos:

objetoR<- objetoA #sintaxis de asignación de valores y datos


objetoR= objetoA #sintaxis de asignación de valores y datos
head(objetoR,n) #extraer los n primeros registros del objeto R
colnames (objetoR) #visualiza las columnas del objeto R
objetoR$columna #referencia a una columna en particular del objeto R

Solución:
data=iris #Asigna los datos de la base iris al objeto data (tabla de
datos Dataframe)
head(data,3) #visualiza las tres primeras filas del objeto data

## Sepal.Length Sepal.Width Petal.Length Petal.Width Species


## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa

colnames(data) #muestra los nombres de las columnas(variables) del obj


eto data
## [1] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width" "Sp
ecies"

data$Species #permite referencia a los datos de una columna Species(


variable), el resultado se muestra como un vector

## [1] setosa setosa setosa setosa setosa setosa


## [7] setosa setosa setosa setosa setosa setosa
## [13] setosa setosa setosa setosa setosa setosa
## [19] setosa setosa setosa setosa setosa setosa
## [25] setosa setosa setosa setosa setosa setosa
## [31] setosa setosa setosa setosa setosa setosa
## [37] setosa setosa setosa setosa setosa setosa
## [43] setosa setosa setosa setosa setosa setosa
## [49] setosa setosa versicolor versicolor versicolor versic
olor
## [55] versicolor versicolor versicolor versicolor versicolor versic
olor
## [61] versicolor versicolor versicolor versicolor versicolor versic
olor
## [67] versicolor versicolor versicolor versicolor versicolor versic
olor
## [73] versicolor versicolor versicolor versicolor versicolor versic
olor
## [79] versicolor versicolor versicolor versicolor versicolor versic
olor
## [85] versicolor versicolor versicolor versicolor versicolor versic
olor
## [91] versicolor versicolor versicolor versicolor versicolor versic
olor
## [97] versicolor versicolor versicolor versicolor virginica virgin
ica
## [103] virginica virginica virginica virginica virginica virgin
ica
## [109] virginica virginica virginica virginica virginica virgin
ica
## [115] virginica virginica virginica virginica virginica virgin
ica
## [121] virginica virginica virginica virginica virginica virgin
ica
## [127] virginica virginica virginica virginica virginica virgin
ica
## [133] virginica virginica virginica virginica virginica virgin
ica
## [139] virginica virginica virginica virginica virginica virgin
ica
## [145] virginica virginica virginica virginica virginica virgin
ica
## Levels: setosa versicolor virginica

Tema 2. Obtención de registros


Obtenga los 10 primeros registros de la tabla data y asígnelo en un nuevo objeto
Dataframe de nombre data1. Luego haga referencia a la longitud del pétalo de los
registros seleccionados.
Tema 3. Tabla de Frecuencia de una variable cualitativa
Elabore una tabla con la distribución de frecuencias de la variable Especie, incorpore las
frecuencias absolutas y relativas asociadas a cada especie.
Comando:

table(datos,exclude) #comando para crear tablas con las frecuencias absolutas, se


puede excluir ciertos valores
prop.table(tabla frecuencia, margin) #permite crear tabla con frecuencias relativas. Por
defecto margin es NULL, si margin es 1 se obtiene marginales por filas, en caso de
marginales por columnas el valor es 2
cbind(columna 1, columna2) #permite unificar columnas en un nuevo objeto

Solución:
tabla1=table(data$Species)
tabla1

##
## setosa versicolor virginica
## 50 50 50

tabla2=table(data$Species, exclude = c("versicolor")) #excluye los re


gistros de la Specie versicolor
tabla2

##
## setosa virginica
## 50 50

tabla3=prop.table(tabla1) #frecuencias relativas


tabla3

##
## setosa versicolor virginica
## 0.3333333 0.3333333 0.3333333

tablaR=cbind(Absoluta=tabla1,Relativa=tabla3)
tablaR

## Absoluta Relativa
## setosa 50 0.3333333
## versicolor 50 0.3333333
## virginica 50 0.3333333

tablaR=cbind(Abosulta=table(data$Species), Relativa=prop.table(table(d
ata$Species))) #sintaxis unificada
tablaR

## Abosulta Relativa
## setosa 50 0.3333333
## versicolor 50 0.3333333
## virginica 50 0.3333333

Tema 4. Diagrama de barras


Elabore un diagrama de barras para las frecuencias absolutas de las Especies de iris.
Comando:

barplot(tabla frecuencia, main, xlab) #diagrama de barras, argumentos main permite


asignar título del gráfico y xlab etiqueta eje x

Solución:
barplot(tabla1, main="Diagrama de barras especies de Iris" , xlab="Tip
os de especies")

Tema 5. Tabla de frecuencia para variable cuantitativa


Elabore una tabla de frecuencias para la variable longitud de pétalos.
Comandos:

hist(x, breaks=‘Sturges’, include.lowest=TRUE, right=FALSE, plot=FALSE)


library(agricolae)
table.freq(hist…)

Solución:
k=nclass.Sturges(data$Petal.Length)
k
## [1] 9

x=range(data$Petal.Length)
amplitud=(x[2]-x[1])/k #amplitud
amplitud

## [1] 0.6555556

hist(data$Petal.Length, breaks = seq(from=x[1],to=x[2],by=amplitud),in


clude.lowest = T, right = F, plot = F)

## $breaks
## [1] 1.000000 1.655556 2.311111 2.966667 3.622222 4.277778 4.933333
5.588889
## [9] 6.244444 6.900000
##
## $counts
## [1] 44 6 0 6 17 31 21 19 6
##
## $density
## [1] 0.44745763 0.06101695 0.00000000 0.06101695 0.17288136 0.315254
24 0.21355932
## [8] 0.19322034 0.06101695
##
## $mids
## [1] 1.327778 1.983333 2.638889 3.294444 3.950000 4.605556 5.261111
5.916667
## [9] 6.572222
##
## $xname
## [1] "data$Petal.Length"
##
## $equidist
## [1] TRUE
##
## attr(,"class")
## [1] "histogram"

#install.packages("agricolae")
library(agricolae)

## Warning: package 'agricolae' was built under R version 3.6.3

tablaR=table.freq(hist(data$Petal.Length, breaks = seq(from=x[1],to=x[


2],by=amplitud), include.lowest = T, right = F, plot = F))
tablaR

## Lower Upper Main Frequency Percentage CF CPF


## 1 1.000000 1.655556 1.327778 44 29.3 44 29.3
## 2 1.655556 2.311111 1.983333 6 4.0 50 33.3
## 3 2.311111 2.966667 2.638889 0 0.0 50 33.3
## 4 2.966667 3.622222 3.294444 6 4.0 56 37.3
## 5 3.622222 4.277778 3.950000 17 11.3 73 48.7
## 6 4.277778 4.933333 4.605556 31 20.7 104 69.3
## 7 4.933333 5.588889 5.261111 21 14.0 125 83.3
## 8 5.588889 6.244444 5.916667 19 12.7 144 96.0
## 9 6.244444 6.900000 6.572222 6 4.0 150 100.0

Tema 6. Tabla de frecuencia para variable cuantitativa


Elabore una tabla de frecuencias para la variable longitud de pétalos.
Comandos:

library(fdth) # carla la librería fdth


dist <- fdt(x,breaks=“Sturges”) # calcula la distribución de frecuencias utilizando la regla
Sturges

Solución:
install.packages("fdth") #instlación del paquete
library(fdth)

## Warning: package 'fdth' was built under R version 3.6.3

##
## Attaching package: 'fdth'

## The following objects are masked from 'package:stats':


##
## sd, var

# k<-1 + (3.322*log10(150))
# k
k=nclass.Sturges(data$Petal.Length)
k

## [1] 9

tablaR1=fdt(data$Petal.Length, start = 1, end=6.9, h=(5.9/9), right =


F)
print("\n Tabla de Frecuencias (1) Regla longitud intervalo=end-star/k
")

## [1] "\n Tabla de Frecuencias (1) Regla longitud intervalo=end-star/


k"

tablaR1

## Class limits f rf rf(%) cf cf(%)


## [1,1.66) 44 0.29 29.33 44 29.33
## [1.66,2.31) 6 0.04 4.00 50 33.33
## [2.31,2.97) 0 0.00 0.00 50 33.33
## [2.97,3.62) 6 0.04 4.00 56 37.33
## [3.62,4.28) 17 0.11 11.33 73 48.67
## [4.28,4.93) 31 0.21 20.67 104 69.33
## [4.93,5.59) 21 0.14 14.00 125 83.33
## [5.59,6.24) 19 0.13 12.67 144 96.00
## [6.24,6.9) 5 0.03 3.33 149 99.33

print("*************************************")
## [1] "*************************************"

print("\n Tabla de Frecuencias (2) cantidad de intervalos k por Sturge


s")

## [1] "\n Tabla de Frecuencias (2) cantidad de intervalos k por Sturg


es"

tablaR2=fdt(data$Petal.Length, k, right = F)
tablaR2

## Class limits f rf rf(%) cf cf(%)


## [0.99,1.654) 44 0.29 29.33 44 29.33
## [1.654,2.319) 6 0.04 4.00 50 33.33
## [2.319,2.983) 0 0.00 0.00 50 33.33
## [2.983,3.647) 6 0.04 4.00 56 37.33
## [3.647,4.312) 19 0.13 12.67 75 50.00
## [4.312,4.976) 29 0.19 19.33 104 69.33
## [4.976,5.64) 27 0.18 18.00 131 87.33
## [5.64,6.305) 14 0.09 9.33 145 96.67
## [6.305,6.969) 5 0.03 3.33 150 100.00

print("*************************************")

## [1] "*************************************"

print("Tabla de Frecuencias (3) Regla Sturges")

## [1] "Tabla de Frecuencias (3) Regla Sturges"

tablaR3=fdt(data$Petal.Length, breaks = "Sturges", right = F)


tablaR3

## Class limits f rf rf(%) cf cf(%)


## [0.99,1.654) 44 0.29 29.33 44 29.33
## [1.654,2.319) 6 0.04 4.00 50 33.33
## [2.319,2.983) 0 0.00 0.00 50 33.33
## [2.983,3.647) 6 0.04 4.00 56 37.33
## [3.647,4.312) 19 0.13 12.67 75 50.00
## [4.312,4.976) 29 0.19 19.33 104 69.33
## [4.976,5.64) 27 0.18 18.00 131 87.33
## [5.64,6.305) 14 0.09 9.33 145 96.67
## [6.305,6.969) 5 0.03 3.33 150 100.00

Obs: Observe que existe una diferencia por precisión entre las Tablas
de Frecuencias obtenida por los comandos hist vs fdt.

Tema 7. Tabla de frecuencia para variable cuantitativa


Elabore una tabla de frecuencias para la variable longitud de pétalos. Considere 5
intervalos simétricos.
x=range(data$Petal.Length) #rango x[1] es el mínimo, x[2] el máximo
k=5 #cantidad de intervalos de clases
amplitud=(x[2]-x[1])/k #amplitud
amplitud
## [1] 1.18

limites=seq(from=x[1], to=x[2], by=amplitud) #secuencia de los límite


s de cada intervalo
limites

## [1] 1.00 2.18 3.36 4.54 5.72 6.90

library(agricolae)
tablaR=table.freq(hist(data$Petal.Length, breaks = limites, include.lo
west = T, right = T, plot = F))
tablaR

## Lower Upper Main Frequency Percentage CF CPF


## 1 1.00 2.18 1.59 50 33.3 50 33.3
## 2 2.18 3.36 2.77 3 2.0 53 35.3
## 3 3.36 4.54 3.95 34 22.7 87 58.0
## 4 4.54 5.72 5.13 47 31.3 134 89.3
## 5 5.72 6.90 6.31 16 10.7 150 100.0

Tema 8. Tabla de frecuencia para variable cuantitativa


Elabore una tabla de frecuencias para la variable ancho de pétalos.
Tema 9. Tabla de frecuencia para variable cuantitativa
Elabore una tabla de frecuencias para la variable longitud de sépalo. Considerando 6
intervalos simétricos.
Tema 10. Histograma y polígono de frecuencia
Elabore un histograma y polígono de frecuencia absoluta acumulada asociado a la
variable de longitud de sépalos.
Comando:

hist(x, breaks = “Sturges”) #histograma utilizando el número de clases según Sturges


plot(dist, type=“cfh”) #histograma de frecuencias absoluta acumulada, dist es un objeto
tabla de frecuenca
plot(dist, type=“cfp”) #polígono de frecuencias acumulada, dist es un objeto tabla
frecuencia
fdt(data$Sepal.Length,start=4.3,h=0.72,end=7.9) #crear intervalos acorde a un inicio, fin
y amplitud (h)

Solución:
library(fdth)
dist=fdt(data$Sepal.Length, breaks="Sturges")
hist(data$Sepal.Length, breaks = "Sturges")
#histograma frecuencia relativas (probability Density) se configura fr
eq=F

hist(data$Sepal.Length, breaks = "Sturges", freq = FALSE)

#curva de la normal
lines(density(data$Sepal.Length), col="blue", lwd=3) # dibujamos la d
istribución normal empírica con los datos que tenemos

lines(density(data$Sepal.Length, adjust=2), col="red", lwd=3, lty=2) #


suavizar la curva con adjust entre 1 a 5

abline(v=mean(data$Sepal.Length), lwd=2, lty=3, col="darkblue") #lín


ea vertical en el valor pemido(promedio)

plot(dist, type="cfh")
plot(dist, type="cfp")

x=range(data$Sepal.Length)
k=(x[2]-x[1])/5
aux=fdt(data$Sepal.Length,start=4.3,h=k,end=7.9) #h=0.72 crea 5 inter
valos
plot(aux,type="cfp",xlab="Sépalo longitud",ylab="Frecuencia absoluta a
cumulada")
Tema 11. Polígono de frecuencia y Ojiva (segunda forma)
Elabore un polígono de frecuencia y la ojiva asociado a la variable de longitud de sépalos.
Comandos:

plot(x,y, main="“, xlab=”“, ylab=”") #plotea el punto (x,y), los parámetros main para
especificar título de gráfio, xlab etiqueta eje x, y ylab etiqueta eje y.
sum(x) #suma todos los datos del vector x
cumsum(x) #suma acumulada hasta cada posición del elemento en x, suma acumulada
(Xi)=X1+X2+…+Xi-1

Solución:
tabla=hist(data$Sepal.Length, breaks="Sturges", plot=F)
plot(tabla$mids,tabla$counts, main="Poligono de frecuencia absoluta",
xlab = "Marca de clase")
lines(tabla$mids,tabla$counts, type="l")
plot(tabla$mids,cumsum(tabla$counts), main="Ojiva de frecuencia absolu
ta", xlab = "Marca de clase")
lines(tabla$mids,cumsum(tabla$counts), type="l")

plot(tabla$mids,tabla$counts/sum(tabla$counts), main="Poligono de frec


uencia relativa", xlab = "Marca de clase")
lines(tabla$mids,tabla$counts/sum(tabla$counts), type="l")
plot(tabla$mids,cumsum(tabla$counts)/sum(tabla$counts), main="Ojiva de
frecuencia relativa", xlab = "Marca de clase")
lines(tabla$mids,cumsum(tabla$counts)/sum(tabla$counts), type="l")

Tema 12. Resumen


Considerando los datos de data$Sepal.width, realice:
a) Tabla de frecuencias considerando 5 intervalos simétricos
b) Histograma
c) Polígono de frecuencia
d) Ojiva

También podría gustarte