library(lsm) # Para descargar una base de datos
library(dplyr)
##
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(moments) # Para hallar las medidas de forma
library(e1071)
##
## Adjuntando el paquete: 'e1071'
## The following objects are masked from 'package:moments':
##
## kurtosis, moment, skewness
library(ggplot2)
##
## Adjuntando el paquete: 'ggplot2'
## The following object is masked from 'package:e1071':
##
## element
A partir de este chunk, se cargaron las librerías necesarias para trabajar con la base de datos y realizar los análisis estadísticos.
datosCompleto <- lsm::survey # Asigna la base de datos survey al objeto datosCompleto
En esta línea se toma la base de datos survey, perteneciente al paquete lsm, y se almacena bajo el nombre datosCompleto para poder trabajar con ella posteriormente. Analizar la estructura del Data Frame Se revisa la estructura de la base de datos para conocer sus dimensiones, variables y el tipo de información que contiene cada una.
str(datosCompleto) #A) Estructura de los datos
## tibble [800 × 66] (S3: tbl_df/tbl/data.frame)
## $ Observation : num [1:800] 1 2 3 4 5 6 7 8 9 10 ...
## $ ID : chr [1:800] "SB11201910010435" "SB11201910004475" "SB11201910011427" "SB11201910041975" ...
## $ Gender : chr [1:800] "Female" "Male" "Male" "Male" ...
## $ Like : chr [1:800] "TV" "Network" "Network" "TV" ...
## $ Age : num [1:800] 21.4 21.1 20.9 18.4 16.6 ...
## $ Smoke : chr [1:800] "No" "Yes" "Yes" "Yes" ...
## $ Height : num [1:800] 1.58 1.6 1.5 1.53 1.78 1.65 1.73 1.53 1.64 1.52 ...
## $ Weight : num [1:800] 75 80 64 49 82 80 90 55 50 78 ...
## $ BMI : num [1:800] 30 31.2 28.4 20.9 25.9 ...
## $ School : chr [1:800] "Private" "Public" "Private" "Public" ...
## $ SES : chr [1:800] "Medium" "High" "High" "Low" ...
## $ Enrollment : chr [1:800] "Credit" "Scholarship" "Scholarship" "Credit" ...
## $ Score : num [1:800] 81 78 77 70 68 65 54 50 36 35 ...
## $ MotherHeight: chr [1:800] "Short_M" "Normal_M" "Normal_M" "Tall_M" ...
## $ MotherAge : num [1:800] 41 45 45 45 46 46 47 48 48 48 ...
## $ MotherCHD : num [1:800] 0 0 0 0 1 0 0 0 0 1 ...
## $ FatherHeight: chr [1:800] "Normal_F" "Short_F" "Tall_F" "Short_F" ...
## $ FatherAge : num [1:800] 40 43 44 45 45 46 46 48 48 49 ...
## $ FatherCHD : num [1:800] 1 1 1 2 1 1 1 1 1 1 ...
## $ Status : chr [1:800] "Distinguished" "Distinguished" "Distinguished" "Regular" ...
## $ SemAcum : num [1:800] 4.25 2.8 4.15 3.2 3.45 2.75 2.7 4.35 4.3 2.8 ...
## $ Exam1 : num [1:800] 1.5 2.3 3.4 2.5 3.1 3.8 5 4 2.5 2.4 ...
## $ Exam2 : num [1:800] 5 4.9 3.6 4.2 3.5 4.4 3 2.3 3.3 2.6 ...
## $ Exam3 : num [1:800] 5 3.7 2 5 5 4.2 3.5 4.6 3.8 4.3 ...
## $ Exam4 : num [1:800] 4.5 3.3 1.9 2.5 3 5 3.6 4.3 1.9 5 ...
## $ ExamAcum : num [1:800] 16 14.2 10.9 14.2 14.6 17.4 15.1 15.2 11.5 14.3 ...
## $ Definitive : num [1:800] 4 3.55 2.73 3.55 3.65 ...
## $ Expense : num [1:800] 48.9 72.1 85.2 56.6 64.6 63 40.8 65.4 37.3 63 ...
## $ Income : num [1:800] 1.61 2.07 2.84 1.55 2.32 2.1 1.69 2.18 1.71 2.1 ...
## $ Gas : num [1:800] 27.4 24.2 22.3 23.1 27.3 ...
## $ Course : chr [1:800] "Face-to-Face" "Virtual" "Face-to-Face" "Virtual" ...
## $ Law : chr [1:800] "Agree" "Agree" "Agree" "Agree" ...
## $ Economic : chr [1:800] "Regular" "Good" "Regular" "Bad" ...
## $ Race : chr [1:800] "Ethnic" "Ethnic" "Ethnic" "Ethnic" ...
## $ Region : chr [1:800] "North" "Center" "North" "Center" ...
## $ EMO1 : num [1:800] 1 4 3 4 2 3 2 3 4 2 ...
## $ EMO2 : num [1:800] 2 4 1 2 1 1 4 1 2 2 ...
## $ EMO3 : num [1:800] 2 1 3 3 2 4 2 4 3 3 ...
## $ EMO4 : num [1:800] 1 2 3 1 4 2 3 2 1 1 ...
## $ EMO5 : num [1:800] 4 1 2 2 2 2 1 1 2 2 ...
## $ GOAL1 : chr [1:800] "Strongly agree" "Undecided" "Agree" "Agree" ...
## $ GOAL2 : chr [1:800] "Agree" "Disagree" "Disagree" "Undecided" ...
## $ GOAL3 : chr [1:800] "Strongly agree" "Disagree" "Agree" "Strongly agree" ...
## $ Pre_STAT1 : num [1:800] 2 1 5 4 1 4 4 2 2 2 ...
## $ Pre_STAT2 : num [1:800] 4 1 1 3 4 1 2 3 3 5 ...
## $ Pre_STAT3 : num [1:800] 2 1 3 1 1 5 4 3 3 2 ...
## $ Pre_STAT4 : num [1:800] 5 1 1 2 2 3 2 3 2 4 ...
## $ Post_STAT1 : num [1:800] 4 5 5 3 5 2 3 3 2 5 ...
## $ Post_STAT2 : num [1:800] 5 1 2 2 3 3 2 3 2 3 ...
## $ Post_STAT3 : num [1:800] 2 3 3 4 3 5 5 4 5 4 ...
## $ Post_STAT4 : num [1:800] 2 3 3 5 4 4 3 5 5 1 ...
## $ Pre_IDARE1 : chr [1:800] "Quite a bit" "Quite a bit" "Quite a bit" "Little" ...
## $ Pre_IDARE2 : chr [1:800] "Little" "Little" "Little" "Nothing" ...
## $ Pre_IDARE3 : chr [1:800] "Quite a bit" "A lot" "Quite a bit" "Quite a bit" ...
## $ Pre_IDARE4 : chr [1:800] "Quite a bit" "Nothing" "Quite a bit" "Quite a bit" ...
## $ Pre_IDARE5 : chr [1:800] "Little" "Quite a bit" "Little" "Nothing" ...
## $ Post_IDARE1 : chr [1:800] "A lot" "A little" "Nothing" "Quite a bit" ...
## $ Post_IDARE2 : chr [1:800] "A lot" "Nothing" "Quite a bit" "A little" ...
## $ Post_IDARE3 : chr [1:800] "A little" "Quite a bit" "Nothing" "A lot" ...
## $ Post_IDARE4 : chr [1:800] "Quite a bit" "A lot" "Nothing" "Quite a bit" ...
## $ Post_IDARE5 : chr [1:800] "A lot" "Quite a bit" "Nothing" "A lot" ...
## $ PSICO1 : chr [1:800] "Frequently" "Frequently" "Sometimes" "Almost always" ...
## $ PSICO2 : chr [1:800] "Almost always" "Sometimes" "Sometimes" "Frequently" ...
## $ PSICO3 : chr [1:800] "Frequently" "Sometimes" "Sometimes" "Frequently" ...
## $ PSICO4 : chr [1:800] "Almost always" "Frequently" "Frequently" "Almost never" ...
## $ PSICO5 : chr [1:800] "Almost always" "Frequently" "Sometimes" "Sometimes" ...
El resultado permite identificar las características principales del Data Frame, incluyendo sus 800 observaciones y 66 variables. Explorar los nombres de las variables Se identifican los nombres de las variables que componen la base de datos para conocer la información disponible.
names(datosCompleto) #A) Muestra los nombres de las columnas (variables).
## [1] "Observation" "ID" "Gender" "Like" "Age"
## [6] "Smoke" "Height" "Weight" "BMI" "School"
## [11] "SES" "Enrollment" "Score" "MotherHeight" "MotherAge"
## [16] "MotherCHD" "FatherHeight" "FatherAge" "FatherCHD" "Status"
## [21] "SemAcum" "Exam1" "Exam2" "Exam3" "Exam4"
## [26] "ExamAcum" "Definitive" "Expense" "Income" "Gas"
## [31] "Course" "Law" "Economic" "Race" "Region"
## [36] "EMO1" "EMO2" "EMO3" "EMO4" "EMO5"
## [41] "GOAL1" "GOAL2" "GOAL3" "Pre_STAT1" "Pre_STAT2"
## [46] "Pre_STAT3" "Pre_STAT4" "Post_STAT1" "Post_STAT2" "Post_STAT3"
## [51] "Post_STAT4" "Pre_IDARE1" "Pre_IDARE2" "Pre_IDARE3" "Pre_IDARE4"
## [56] "Pre_IDARE5" "Post_IDARE1" "Post_IDARE2" "Post_IDARE3" "Post_IDARE4"
## [61] "Post_IDARE5" "PSICO1" "PSICO2" "PSICO3" "PSICO4"
## [66] "PSICO5"
El resultado muestra los nombres correspondientes a las 66 variables que forman parte de la base de datos. Muestra 1 Se selecciona una parte de la base de datos para trabajar con un conjunto reducido de observaciones y variables.
Muestra1 <- datosCompleto[1:10,2:7] # Crear una nueva muestra con las filas 1 a 10 y las columnas 2 a 7
Muestra1 # Mostrar en pantalla la muestra seleccionada
## # A tibble: 10 × 6
## ID Gender Like Age Smoke Height
## <chr> <chr> <chr> <dbl> <chr> <dbl>
## 1 SB11201910010435 Female TV 21.4 No 1.58
## 2 SB11201910004475 Male Network 21.1 Yes 1.6
## 3 SB11201910011427 Male Network 20.9 Yes 1.5
## 4 SB11201910041975 Male TV 18.4 Yes 1.53
## 5 SB11201910013623 Female TV 16.6 Yes 1.78
## 6 SB11201910038122 Female Network 16.0 No 1.65
## 7 SB11201910037905 Female TV 19.3 Yes 1.73
## 8 SB11201910038140 Female TV 18.6 Yes 1.53
## 9 SB11201910038005 Female TV 17.0 Yes 1.64
## 10 SB11201910037919 Male TV 19.7 Yes 1.52
En este chunk se obtiene una muestra de 10 observaciones y 6 variables, dando como resultado una tabla de 10 × 6. Estos procedimientos permiten conocer y organizar la información de la base de datos antes de realizar los análisis estadísticos correspondientes.
tablas de frecuencia
Muestra <- datosCompleto[1:100,]
#A) Definiendo y convirtiendo en factor
Sexo <- as.factor(Muestra$Gender)
#B) Calcular tabla de frecuencias
Tabla1 <- table(Sexo)
Tabla1
## Sexo
## Female Male
## 49 51
La tabla de frecuencias presenta el número de observaciones correspondientes a cada categoría de la variable Gender dentro de la muestra seleccionada. Esto permite identificar la distribución de hombres y mujeres en las primeras 100 observaciones de la base de datos.
#A) Definiendo y convirtiendo en factor
Sexo <- as.factor(Muestra$Gender)
#B) Calcular tabla de frecuencias
(49/100)*100
## [1] 49
El resultado indica que el 49 % de las personas de la muestra corresponde a mujeres.
Fuma <- as.factor(Muestra$Smoke)
#B) Tabla de frecuencias
Tabla3 <- table(Sexo, Fuma)
Tabla3
## Fuma
## Sexo No Yes
## Female 21 28
## Male 24 27
La tabla de contingencia muestra el número de personas de cada sexo según su categoría en la variable Smoke. Esto permite comparar la distribución del hábito de fumar entre hombres y mujeres dentro de la muestra. # Distribución de fumadores según sexo Se realiza un diagrama de barras para representar visualmente la frecuencia de personas fumadoras y no fumadoras, diferenciando los resultados según el sexo.
ggplot(Muestra, aes(Fuma, fill=Sexo)) +
geom_bar(position="dodge",colour="black") +
labs(x= "Fuma", y="Frecuencias", fill="Sexo") +
ylim(c(0,30)) +
#xlim(c(0,300)) +
ggtitle("Diagrama de barras") +
#theme_bw() +
theme_bw(base_size = 12) +
#coord_flip() +
#guides(fill=FALSE)+ #8
scale_fill_manual(values = c("#F7D6BC","#CFDCEF")) + #9
geom_text(aes(label=..count..), stat='count', #10
position=position_dodge(0.9),
vjust=-0.5,
size=5.0
)+
facet_wrap(~"Sexo por fumadores y no fumadores") #11
## Warning: The dot-dot notation (`..count..`) was deprecated in ggplot2 3.4.0.
## ℹ Please use `after_stat(count)` instead.
## This warning is displayed once per session.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
El gráfico permite comparar visualmente la cantidad de personas fumadoras y no fumadoras dentro de cada categoría de sexo. Las etiquetas sobre las barras muestran la frecuencia correspondiente a cada grupo. # Distribución del hábito de fumar según sexo Se realiza un segundo diagrama de barras para comparar las frecuencias de hombres y mujeres según su condición de fumador o no fumador.
ggplot(Muestra, aes(Sexo, fill=Fuma)) +
geom_bar(position="dodge",colour="black") +
labs(x= "Sexo", y="Frecuencias", fill="Fuma") +
ylim(c(0,30)) +
#xlim(c(0,300)) +
ggtitle("Diagrama de barras") +
#theme_bw() +
theme_bw(base_size = 12) +
#coord_flip() +
#guides(fill=FALSE)+ #8
scale_fill_manual(values = c("#6DB366","#8F989B")) + #9
geom_text(aes(label=..count..), stat='count', #10
position=position_dodge(0.9),
vjust=-0.5,
size=5.0
)+
facet_wrap(~"Fuma por Genero") #11
El gráfico permite comparar la distribución de fumadores y no fumadores entre hombres y mujeres. Las etiquetas sobre las barras facilitan la identificación de la frecuencia correspondiente a cada categoría. # Medidas estadisticas Aquí seleccionamos especificamente los datos de la variable “Examen3” correspondientes a la muestra [1:100].
Muestra2 <- datosCompleto[1:100,]
x <- as.numeric(Muestra2$Exam3) # A) Convirtiendo la variable a numérica
x
## [1] 5.0 3.7 2.0 5.0 5.0 4.2 3.5 4.6 3.8 4.3 3.0 3.8 3.4 3.3 3.5 4.5 3.6 4.0
## [19] 3.4 4.0 4.2 3.5 3.7 4.0 4.0 3.2 2.9 2.9 3.0 3.3 2.8 2.4 3.8 3.3 3.2 2.2
## [37] 2.6 3.2 3.3 1.2 4.2 2.4 5.0 2.8 3.0 3.8 3.2 1.5 2.6 3.8 3.2 3.3 1.4 3.8
## [55] 1.4 3.6 3.6 2.4 2.8 3.1 2.4 1.8 1.6 3.3 4.4 1.0 4.5 2.0 4.2 4.2 3.1 2.3
## [73] 2.6 2.7 2.4 2.2 2.8 2.4 1.9 2.4 1.7 2.9 2.4 2.2 2.8 3.2 3.1 2.7 2.5 3.5
## [91] 3.3 2.1 3.3 2.1 3.7 5.0 3.7 2.0 5.0 5.0
str (Muestra)
## tibble [100 × 66] (S3: tbl_df/tbl/data.frame)
## $ Observation : num [1:100] 1 2 3 4 5 6 7 8 9 10 ...
## $ ID : chr [1:100] "SB11201910010435" "SB11201910004475" "SB11201910011427" "SB11201910041975" ...
## $ Gender : chr [1:100] "Female" "Male" "Male" "Male" ...
## $ Like : chr [1:100] "TV" "Network" "Network" "TV" ...
## $ Age : num [1:100] 21.4 21.1 20.9 18.4 16.6 ...
## $ Smoke : chr [1:100] "No" "Yes" "Yes" "Yes" ...
## $ Height : num [1:100] 1.58 1.6 1.5 1.53 1.78 1.65 1.73 1.53 1.64 1.52 ...
## $ Weight : num [1:100] 75 80 64 49 82 80 90 55 50 78 ...
## $ BMI : num [1:100] 30 31.2 28.4 20.9 25.9 ...
## $ School : chr [1:100] "Private" "Public" "Private" "Public" ...
## $ SES : chr [1:100] "Medium" "High" "High" "Low" ...
## $ Enrollment : chr [1:100] "Credit" "Scholarship" "Scholarship" "Credit" ...
## $ Score : num [1:100] 81 78 77 70 68 65 54 50 36 35 ...
## $ MotherHeight: chr [1:100] "Short_M" "Normal_M" "Normal_M" "Tall_M" ...
## $ MotherAge : num [1:100] 41 45 45 45 46 46 47 48 48 48 ...
## $ MotherCHD : num [1:100] 0 0 0 0 1 0 0 0 0 1 ...
## $ FatherHeight: chr [1:100] "Normal_F" "Short_F" "Tall_F" "Short_F" ...
## $ FatherAge : num [1:100] 40 43 44 45 45 46 46 48 48 49 ...
## $ FatherCHD : num [1:100] 1 1 1 2 1 1 1 1 1 1 ...
## $ Status : chr [1:100] "Distinguished" "Distinguished" "Distinguished" "Regular" ...
## $ SemAcum : num [1:100] 4.25 2.8 4.15 3.2 3.45 2.75 2.7 4.35 4.3 2.8 ...
## $ Exam1 : num [1:100] 1.5 2.3 3.4 2.5 3.1 3.8 5 4 2.5 2.4 ...
## $ Exam2 : num [1:100] 5 4.9 3.6 4.2 3.5 4.4 3 2.3 3.3 2.6 ...
## $ Exam3 : num [1:100] 5 3.7 2 5 5 4.2 3.5 4.6 3.8 4.3 ...
## $ Exam4 : num [1:100] 4.5 3.3 1.9 2.5 3 5 3.6 4.3 1.9 5 ...
## $ ExamAcum : num [1:100] 16 14.2 10.9 14.2 14.6 17.4 15.1 15.2 11.5 14.3 ...
## $ Definitive : num [1:100] 4 3.55 2.73 3.55 3.65 ...
## $ Expense : num [1:100] 48.9 72.1 85.2 56.6 64.6 63 40.8 65.4 37.3 63 ...
## $ Income : num [1:100] 1.61 2.07 2.84 1.55 2.32 2.1 1.69 2.18 1.71 2.1 ...
## $ Gas : num [1:100] 27.4 24.2 22.3 23.1 27.3 ...
## $ Course : chr [1:100] "Face-to-Face" "Virtual" "Face-to-Face" "Virtual" ...
## $ Law : chr [1:100] "Agree" "Agree" "Agree" "Agree" ...
## $ Economic : chr [1:100] "Regular" "Good" "Regular" "Bad" ...
## $ Race : chr [1:100] "Ethnic" "Ethnic" "Ethnic" "Ethnic" ...
## $ Region : chr [1:100] "North" "Center" "North" "Center" ...
## $ EMO1 : num [1:100] 1 4 3 4 2 3 2 3 4 2 ...
## $ EMO2 : num [1:100] 2 4 1 2 1 1 4 1 2 2 ...
## $ EMO3 : num [1:100] 2 1 3 3 2 4 2 4 3 3 ...
## $ EMO4 : num [1:100] 1 2 3 1 4 2 3 2 1 1 ...
## $ EMO5 : num [1:100] 4 1 2 2 2 2 1 1 2 2 ...
## $ GOAL1 : chr [1:100] "Strongly agree" "Undecided" "Agree" "Agree" ...
## $ GOAL2 : chr [1:100] "Agree" "Disagree" "Disagree" "Undecided" ...
## $ GOAL3 : chr [1:100] "Strongly agree" "Disagree" "Agree" "Strongly agree" ...
## $ Pre_STAT1 : num [1:100] 2 1 5 4 1 4 4 2 2 2 ...
## $ Pre_STAT2 : num [1:100] 4 1 1 3 4 1 2 3 3 5 ...
## $ Pre_STAT3 : num [1:100] 2 1 3 1 1 5 4 3 3 2 ...
## $ Pre_STAT4 : num [1:100] 5 1 1 2 2 3 2 3 2 4 ...
## $ Post_STAT1 : num [1:100] 4 5 5 3 5 2 3 3 2 5 ...
## $ Post_STAT2 : num [1:100] 5 1 2 2 3 3 2 3 2 3 ...
## $ Post_STAT3 : num [1:100] 2 3 3 4 3 5 5 4 5 4 ...
## $ Post_STAT4 : num [1:100] 2 3 3 5 4 4 3 5 5 1 ...
## $ Pre_IDARE1 : chr [1:100] "Quite a bit" "Quite a bit" "Quite a bit" "Little" ...
## $ Pre_IDARE2 : chr [1:100] "Little" "Little" "Little" "Nothing" ...
## $ Pre_IDARE3 : chr [1:100] "Quite a bit" "A lot" "Quite a bit" "Quite a bit" ...
## $ Pre_IDARE4 : chr [1:100] "Quite a bit" "Nothing" "Quite a bit" "Quite a bit" ...
## $ Pre_IDARE5 : chr [1:100] "Little" "Quite a bit" "Little" "Nothing" ...
## $ Post_IDARE1 : chr [1:100] "A lot" "A little" "Nothing" "Quite a bit" ...
## $ Post_IDARE2 : chr [1:100] "A lot" "Nothing" "Quite a bit" "A little" ...
## $ Post_IDARE3 : chr [1:100] "A little" "Quite a bit" "Nothing" "A lot" ...
## $ Post_IDARE4 : chr [1:100] "Quite a bit" "A lot" "Nothing" "Quite a bit" ...
## $ Post_IDARE5 : chr [1:100] "A lot" "Quite a bit" "Nothing" "A lot" ...
## $ PSICO1 : chr [1:100] "Frequently" "Frequently" "Sometimes" "Almost always" ...
## $ PSICO2 : chr [1:100] "Almost always" "Sometimes" "Sometimes" "Frequently" ...
## $ PSICO3 : chr [1:100] "Frequently" "Sometimes" "Sometimes" "Frequently" ...
## $ PSICO4 : chr [1:100] "Almost always" "Frequently" "Frequently" "Almost never" ...
## $ PSICO5 : chr [1:100] "Almost always" "Frequently" "Sometimes" "Sometimes" ...
min(x) #B) Mínimo
## [1] 1
max(x) #C) Máximo
## [1] 5
range(x) #D) Obtenemos (min, max)
## [1] 1 5
length(x) #E) Tamaño
## [1] 100
sum(x) #F) Suma los valores de los datos
## [1] 317.6
mean(x) #G) Media aritmética
## [1] 3.176
median(x) #H) Mediana
## [1] 3.2
var(x) #I) Varianza muestral
## [1] 0.8885091
sqrt(var(x)) #J) Desviación estándar muestral (una forma)
## [1] 0.9426076
sd(x) #K) Desviación estándar muestral (otra forma)
## [1] 0.9426076
skewness(x) #L) Sesgo
## [1] 0.01846742
quantile(x, probs=0.80) #M) 80-ésimo percentil o percentil 85
## 80%
## 4
quantile(x, probs=0.25) #N) Primer cuartil o 25-ésimo percentil
## 25%
## 2.4
quantile(x, probs=0.50) #O) Segundo cuartil o 50-ésimo percentil o mediana
## 50%
## 3.2
quantile(x, probs=0.75) #P) Tercer cuartil o 75-ésimo percentil
## 75%
## 3.8
Lo que hicimos fue solicitar algunos datos especificos como el dato mayor, el menor y el rango, entre otros. (El rango es la distancia entre el dato menor y el daro mayor), (La mediana es el dato que se encuentra en el centro de nuestros datos, en otras palabras, el 50% de las notas del Examen3 es menor o igual que 3.2); La varianza y la desviacion no se interpretan. Hay que observar si el sesgo es positivo >0, negativo 0< o igual a 0 =0, en este caso, el sesgo es positivo lo que quiere decir que las notas de los estudiantes están sesgadas a la derecha. Los percentiles es dividir los datos en porcentajes de 1, por ejemplo, el percentil 80 es el 80%, en este caso: 4, en otras palabras, el 80% de los estudiantes sacó una nota menor o igual a 4.
quantile(x, probs=0.85) #M) 80-ésimo percentil o percentil 85
## 85%
## 4.2
el 85% de los estudiantes sacaron una nota menor o igual a 4.2