Este es un archivo Notebook de R Markdown, Cuando ejecutas el código con Run
o Ctrl+Shift+Enter
, el resultado aparecerá debajo del código
Los histogramas permiten visualizar la dispersión de los datos. Grafica un histograma del número de carburetors (carb)
de la variable mtcars
usando la función hist()
. El primer argumento es un vector con los valores de la variable deseada. Luego, se pueden añadir argumentos adicionales para dar formato al gráfico. Por ejemplo hist(variable, argumento1, argumento2)
. En este caso utiliza el argumento main="Carburetors"
hist(mtcars$carb, main="Carburetors")
Formato del histograma. Cambia la escala del eje y añadiendo el argumento ylim
. Aquí debes indicar el rango que deseas para el eje, por ejemplo para una escala de 0 a 50 usa ylim = c(0,50)). También incluye una etiqueta al eje x del siguiente modo xlab = "title"
. Finalmente cambia el color de las barras a azul con col = "blue"
. En este caso cambia la escala del eje y de 0 a 20, dibuja las barras en rojo “red” y utiliza la etiqueta para el eje x “Number of Carburetors”. Separa cada argumento con coma.
hist(mtcars$carb, main = "Carburetors", ylim=c(0,20), col="blue", xlab="Number of Carburetors")
******
Formato del histograma. Añade el argumento breaks
para indicar un número diferente de clases, por ejemplo utiliza 3 breaks.
hist(mtcars$carb, main = "Carburetors", ylim=c(0,20), col="red", xlab="Number of Carburetors", breaks = 3)
Dibuje un gráfico de barras para la variable mtcars$am
con la función barplot()
. Observe que el gráfico de barras se construye a partir de la frecuencia por ello, se utiliza previamente la función table()
.
barplot(table(mtcars$am))
Gráfico de barras vs. Histrograma. ¿Por qué se dibujo un gráfico de barras para la variable de tipo de transmisión mtcars$am
y un histograma para carburadores mtcars$carb
.
a-Porque transmisión es continua y carburadores es categórico b-Porque transmisión es categórico y carburadores es continuo
Observa el resultado de table()
table(mtcars$am)
##
## 0 1
## 19 13
Utiliza table()
para las variables mtcars$carb
y mtcars$qsec
. Discute el resultado.
table(mtcars$carb)
##
## 1 2 3 4 6 8
## 7 10 3 10 1 1
table(mtcars$qsec)
##
## 14.5 14.6 15.41 15.5 15.84 16.46 16.7 16.87 16.9 17.02 17.05 17.3
## 1 1 1 1 1 1 1 1 1 2 1 1
## 17.4 17.42 17.6 17.82 17.98 18 18.3 18.52 18.6 18.61 18.9 19.44
## 1 1 1 1 1 1 1 1 1 1 2 1
## 19.47 19.9 20 20.01 20.22 22.9
## 1 1 1 1 1 1
Tabla de distribución de frecuencias. Calcula primero el valor máximo y mínimo de los datos. Puedes hacerlo con range()
o con min()
y max()
. Luego crea una variable breaks
, a la que le asignas los quiebres de clases. Para ello inspecciona el siguiente código seq(1, 8, by=1)
e identifica su función.
# Selecciona el número de clases
2**4 # 16 muy pequeño
## [1] 16
2**5 # 32 - 5 clases #alt 94
## [1] 32
#Intervalos de clases
range(mtcars$carb)
## [1] 1 8
min(mtcars$carb)
## [1] 1
max(mtcars$carb)
## [1] 8
(8-1)/5 #= 1.4, 1.5 o 2
## [1] 1.4
breaks = seq(1, 8, by=1.4)
breaks
## [1] 1.0 2.4 3.8 5.2 6.6 8.0
Con la función cut()
aplica los quiebres a los datos de mtcars$carb
para seleccionar las clases.
carb.cut = cut(mtcars$carb, breaks, right=FALSE)
carb.cut
## [1] [3.8,5.2) [3.8,5.2) [1,2.4) [1,2.4) [1,2.4) [1,2.4) [3.8,5.2)
## [8] [1,2.4) [1,2.4) [3.8,5.2) [3.8,5.2) [2.4,3.8) [2.4,3.8) [2.4,3.8)
## [15] [3.8,5.2) [3.8,5.2) [3.8,5.2) [1,2.4) [1,2.4) [1,2.4) [1,2.4)
## [22] [1,2.4) [1,2.4) [3.8,5.2) [1,2.4) [1,2.4) [1,2.4) [1,2.4)
## [29] [3.8,5.2) [5.2,6.6) <NA> [1,2.4)
## Levels: [1,2.4) [2.4,3.8) [3.8,5.2) [5.2,6.6) [6.6,8)
Finalmente, calcula la tabla de frecuencias con table()
.
carb.freq = table(carb.cut)
carb.freq
## carb.cut
## [1,2.4) [2.4,3.8) [3.8,5.2) [5.2,6.6) [6.6,8)
## 17 3 10 1 0
Para mostrar la tabla de forma vertical usa la función cbind()
.
cbind(carb.freq)
## carb.freq
## [1,2.4) 17
## [2.4,3.8) 3
## [3.8,5.2) 10
## [5.2,6.6) 1
## [6.6,8) 0
barplot(carb.freq)
Guardar los datos del histograma. Asigna el gráfico del historama a una variable h
. Observa la información almacenada en la variable h
a través de h$breaks
, h$counts
y h$mids
. ¿Qué tipo de información almacenan breaks, counts y mids?
h= hist(mtcars$carb, main = "Carburetors", ylim=c(0,20), col="red", xlab="Number of Carburetors")
names(h)
## [1] "breaks" "counts" "density" "mids" "xname" "equidist"
h$breaks
## [1] 1 2 3 4 5 6 7 8
h$counts
## [1] 17 3 10 0 1 0 1
h$mids
## [1] 1.5 2.5 3.5 4.5 5.5 6.5 7.5
Dibuja una línea extra en el histograma de manera que represente el polígono de frecuencias. Observa la estructura del código.
hist(mtcars$carb, main = "Carburetors", xlim=c(0,8), ylim=c(0,20), col="red", xlab="Number of Carburetors")
lines(c(0,h$mids),c(0,h$counts), type = "b", pch = 20, col = "blue", lwd = 3)
Dibuja un gráfico que represente el polígono de frecuencias acumulada . Observa la estructura del código.¿Qué hace la función cumsum()
?
plot(c(0,h$mids), c(0,cumsum(h$counts)), type = "b", col = "blue", pch = 20)
Divide la variable carb.freq
por el número total de registros en mtcars
y multiplica por 100 para calcular la frecuencia relativa en %. Usa cbind()
para añadir los nuevos datos carb.relfreq
a carb.freq
.
carb.relfreq = carb.freq / nrow(mtcars) *100
cbind(carb.freq, carb.relfreq)
## carb.freq carb.relfreq
## [1,2.4) 17 53.125
## [2.4,3.8) 3 9.375
## [3.8,5.2) 10 31.250
## [5.2,6.6) 1 3.125
## [6.6,8) 0 0.000
Acumula las frecuencias relativas con la función cumsum()
.
carb.cumfreq = cumsum(carb.relfreq)
carb.cumfreq
## [1,2.4) [2.4,3.8) [3.8,5.2) [5.2,6.6) [6.6,8)
## 53.125 62.500 93.750 96.875 96.875
cumfreq0 = c(0, cumsum(carb.freq))
plot(breaks, cumfreq0, # plot
main="Carburadores", # título
xlab=" ", #etiqueta x???axis
ylab="Acumulado") # etiqueta y???axis
lines(breaks, cumfreq0) # unir los puntos
### Actividad individual 1 Explore el tipo de variables que contiene el data.frame mtcars. Defina si son variables cuantitativas o cualitativas y su nivel de medición. Dibuje el histograma o gráfico de barras para cada variable, identificando el tipo de distribución de la misma.
Trabaja con los datos data(precip)
, ya contenidos en R, que muestra datos de precipitación media anual para los Estados Unidos del año 1975. El tipo de datos es vector, por ello utiliza la variable como precip
. Además, por ser vector el número de elementos totales se obtiene con length()
.
Explora la estructura y dimensiones de los datos y calcula. 1. Histograma con un número de clases apropiado. 2. Tabla de frecuencia, frecuencia relativa y frecuencia acumulada. 3. Polígono de frecuencia. 4. Polígono de frecuencia acumulada.
Responde * Cuántas clases se recomienda? * Cuál es el intervalo recomendado? * Qué tipo de distribución se observa en el histograma? * Aproximadamente qué frecuencia relativa tiene los 40 mm anuales?
Repite la actividad anterior pero esta vez con datos propios. Cargalos en R, explora sus dimensiones, variables y datos. Crea una tabla de frecuencias y un histograma, dependiendo del tipo de variable de interes.
nclasses <- ceiling(log2(length(unname(precip)))) #Opcional para determinar el número de clases