## Métodos Estadísticos Básicos - Nivelación cohorte 2017 - Maestría en Estadística

## TABLA DE DISTRIBUCIÓN DE FRECUENCIAS COMPLETA PARA VARIABLE PESO 
## Datos tomados a estudiantes de Métodos Estadísticos I
## de la Licenciatura en Estadística - Semestre A-2014
               ##### Prof. Gudberto León - Feb 2017 #####

MEI <- read.table("C:\\Users\\Gudberto\\Dropbox\\Materias que dicto\\Maestría Estadística\\Programas R\\Datos\\Datos A-2014.prn",
                  header=T)

attach(MEI)

max(Peso)
min(Peso)

R <- max(Peso) - min(Peso) # Rango
R

n <-length(Peso) # Número de observaciones

Sturges <- 1+3.3*log10(n) # Regla de Sturges
Sturges # Número de clases (intervalos de clases) sugeridos por la regla de Sturges

sqrt(n) # Número de clases (intervalos de clases) sugeridos por la regla de la raiz cuadrada de n

# Limites de clases que se han establecidos a partir del procedimiento basado
# en la regla de Sturges: 1+3.3*Log10(n):
lim_clases <- c(40,47,54,61,68,75,82,89)

# Encuentra la tabla de distribución de frecuencias (con solo fi) según los
# límites de clase establecidos en lim_clases
dist_freq <-table(cut(Peso,breaks=lim_clases,right = FALSE))
dist_freq <-as.data.frame(dist_freq)

k <- length(dist_freq$Freq)

# Calculo de la marca de clase, mi:
i <- 1:(k+1)   # Ya que existen k+1 límites de clase diferentes
mi <- matrix(0,k)
mi[i] <- (lim_clases[i+1]+lim_clases[i])/2
mi <- mi[1:k]  # Como la mi[k+1] resulta obviamente en un NA, se seleccionan
# las k mi que corresponden a la distribución de frecuencias

# Calculo de la frecuencia relativa simple, fri:
fri <- matrix(0,k)
fri <- round(dist_freq$Freq/n,4)

# Calculo de la frecuencia acumulada Fi:
Fi <- matrix(0,k)
for (i in 2:k) {Fi[i] <- dist_freq$Freq[i] + Fi[i-1]}

# Calculo de la frecuencia relativa acumulada Fri
Fri <- matrix(0,k)
Fri <- round(Fi/n,4)


#Arreglando la salida de la tabla de distribución de frecuencias
names(dist_freq)[1] <- "Peso(Kg)"
names(dist_freq)[2] <- "fi"
dist_freq <- cbind(dist_freq,fri,Fi,Fri,mi)

dist_freq    # Imprime en pantalla la distribución de frecuencias
