##
## Femenino Masculino
## 42 32
pie_1<-pie(table_sexo, col=c("#E8A0BF","#7FB5D5"),
main="Estudio de Pastel.\n Distribución por sexos - Carolina Esalas.", labels = table_sexo)barp<-barplot(table_sexo, col = paleta, border = borde,main = "Gráfico de Barras - Carolina Esalas",sub = "UTB",xlab = "SEXO", ylab = "Conteo")
text(barp, table_sexo-30, labels = table_sexo)##
## Femenino Masculino
## 57 43
barp2<-barplot(table_sexo2, col = paleta, border = borde,main = "Gráfico de Barras - Carolina Esalas",sub = "UTB",xlab = "SEXO", ylab = "Porcentaje")
text(barp2, table_sexo2-30, labels = table_sexo2)Las tablas de frecuencias y las representaciones gráficas son dos maneras equivalentes de presentar la información. Las dos exponen ordenadamente la información recogida en una muestra.
pie_1<-pie(table_sexo2, col=c("#E8A0BF","#7FB5D5"),
main="Estudio de Pastel.\n Distribución por sexos - Carolina Esalas.", labels = table_sexo2)##
## ESTADISTICAI PROBABILIDAD
## Femenino 16 26
## Masculino 10 22
barp3<-barplot(table_3,
main = "Gráfico de barras CURSO vs SEXO - Carolina Esalas",
xlab = "CURSO", ylab = "Frecuencia",
col = c("#E8A0BF", "#7FB5D5"),
border = borde,
legend.text = rownames(table_3),
beside = TRUE) # Barras agrupadas
text(barp3, table_3-5, labels = table_3)##
## ESTADISTICAI PROBABILIDAD
## Femenino 22 35
## Masculino 14 30
barp4<-barplot(table_4,
main = "Gráfico de barras CURSO vs SEXO en porcentajes - Carolina Esalas",
xlab = "CURSO", ylab = "Frecuencia",
col = c("#E8A0BF", "#7FB5D5"),
border = borde,
legend.text = rownames(table_4),
beside = TRUE) # Barras agrupadas
text(barp4, table_4-5, labels = table_4)##
## ESTADISTICAI PROBABILIDAD
## I 5 10
## II 7 18
## III 9 9
## IV 5 5
## V 0 5
barp3<-barplot(table_5,
main = "Gráfico de barras CURSO vs ESTRATO - Carolina Esalas",
xlab = "CURSO", ylab = "Frecuencia",
col = paleta,
border = borde,
legend.text = rownames(table_5),
beside = TRUE) # Barras agrupadas
text(barp3, table_5-1, labels = table_3)##
## Femenino Masculino
## I 8 7
## II 17 8
## III 10 8
## IV 4 6
## V 3 2
barp3<-barplot(table_6,
main = "Gráfico de barras SEXO vs ESTRATO - Carolina Esalas",
xlab = "SEXO", ylab = "Frecuencia",
col = paleta,
border = borde,
legend.text = rownames(table_6),
beside = TRUE) # Barras agrupadas
text(barp3, table_6-1, labels = table_6)Observamos ya una tabla más completa.
## Warning in fun(libname, pkgname): couldn't connect to display ":0"
## system might not have X11 capabilities; in case of errors when using dfSummary(), set st_options(use.x11 = FALSE)
## Frequencies
## DATOS2026$EDAD
## Type: Numeric
##
## Freq % Valid % Valid Cum. % Total % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
## 17 7 9.46 9.46 9.46 9.46
## 18 32 43.24 52.70 43.24 52.70
## 19 21 28.38 81.08 28.38 81.08
## 20 7 9.46 90.54 9.46 90.54
## 21 4 5.41 95.95 5.41 95.95
## 22 3 4.05 100.00 4.05 100.00
## <NA> 0 0.00 100.00
## Total 74 100.00 100.00 100.00 100.00
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 17.0 18.0 18.0 18.7 19.0 22.0
boxplot(DATOS2026$EDAD, horizontal = TRUE, col = paleta[1:3], border = borde,
main = "Diagrama de caja de EDAD - Carolina Esalas", xlab = "EDAD")x = DATOS2026$EDAD
boxplot(x, notch = TRUE, horizontal = TRUE, col = paleta[1:3], border = borde,
main = "Diagrama de caja de EDAD con mediana - Carolina Esalas", xlab = "EDAD")## Warning in (function (z, notch = FALSE, width = NULL, varwidth = FALSE, : some
## notches went outside hinges ('box'): maybe set notch=FALSE
x = DATOS2026$EDAD
y = DATOS2026$SEXO
boxplot(x~y, horizontal = TRUE, col = paleta[1:3], border = borde,
main = "EDAD vs SEXO - Carolina Esalas")library(ggplot2)
x = DATOS2026$EDAD
z = DATOS2026$ESTRATO
boxplot(x~z, horizontal = TRUE, col = paleta[1:3], border = borde,
main = "EDAD vs ESTRATO - Carolina Esalas")library(ggplot2)
ggplot(data= DATOS2026,mapping= aes(y=EDAD,x = ESTRATO, fill=SEXO))+geom_boxplot()+
scale_y_continuous(name = "EDAD") +
scale_x_discrete(labels = abbreviate, name = "ESTRATO") +
scale_fill_manual(values = c("#E8A0BF", "#7FB5D5")) +
labs(title = "EDAD vs ESTRATO vs SEXO - Carolina Esalas") +
theme_minimal(base_size = 13) +
theme(plot.title = element_text(face = "bold", color = "#5b3f8c"),
plot.caption = element_text(face = "italic", color = "#D6739F"),
panel.background = element_rect(fill = "#fff6fa", color = NA))## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 153.0 163.0 168.0 168.4 174.0 192.0
boxplot(DATOS2026$ESTATURA, horizontal = TRUE, col = paleta[1:3], border = borde,
main = "Diagrama de caja de ESTATURA - Carolina Esalas", xlab = "ESTATURA")x = DATOS2026$ESTATURA
boxplot(x, notch = TRUE, horizontal = TRUE, col = paleta[1:3], border = borde,
main = "Diagrama de caja de ESTATURA con mediana - Carolina Esalas", xlab = "ESTATURA")x = DATOS2026$ESTATURA
y = DATOS2026$SEXO
boxplot(x~y, horizontal = TRUE, col = paleta[1:3], border = borde,
main = "ESTATURA vs SEXO - Carolina Esalas")library(ggplot2)
x = DATOS2026$ESTATURA
z = DATOS2026$ESTRATO
boxplot(x~z, horizontal = TRUE, col = paleta[1:3], border = borde,
main = "ESTATURA vs ESTRATO - Carolina Esalas")library(ggplot2)
ggplot(data= DATOS2026,mapping= aes(y=ESTATURA,x = ESTRATO, fill=SEXO))+geom_boxplot()+
scale_y_continuous(name = "ESTATURA") +
scale_x_discrete(labels = abbreviate, name = "ESTRATO") +
scale_fill_manual(values = c("#E8A0BF", "#7FB5D5")) +
labs(title = "ESTATURA vs ESTRATO vs SEXO - Carolina Esalas") +
theme_minimal(base_size = 13) +
theme(plot.title = element_text(face = "bold", color = "#5b3f8c"),
plot.caption = element_text(face = "italic", color = "#D6739F"),
panel.background = element_rect(fill = "#fff6fa", color = NA))Usando la librería “agricolae”
library(agricolae)
h2<-graph.freq(DATOS2026$EDAD, col="#B39DDB",
main = "Histograma de EDAD - Carolina Esalas") #[86]Usando la librería “agricolae”
frequency : counts (1) and relative (2)
plot(h2, col="#7FB5D5", frequency = 1,
main = "Polígono de frecuencias absolutas - Carolina Esalas")
polygon.freq(h2, col = "#D6739F", frequency = 1, lwd = 2)frequency : counts (1) and relative (2)
plot(h2, col="#8FD1B5", frequency = 2,
main = "Polígono de frecuencias relativas - Carolina Esalas")
polygon.freq(h2, col = "#D6739F", frequency = 2, lwd = 2)## [1] 7 32 21 0 7 4 0 3
## [1] 74
## [1] 9.459459 43.243243 28.378378 0.000000 9.459459 5.405405 0.000000
## [8] 4.054054
## [1] 7 39 60 60 67 71 71 74
## [1] 0.09459459 0.52702703 0.81081081 0.81081081 0.90540541 0.95945946 0.95945946
## [8] 1.00000000
## [1] 9.459459 52.702703 81.081081 81.081081 90.540541 95.945946 95.945946
## [8] 100.000000
##
## ESTADISTICAI PROBABILIDAD
## Femenino 16 26
## Masculino 10 22
barp_bv1<-barplot(table_bv1,
main = "Gráfico de barras CURSO vs SEXO - Carolina Esalas",
xlab = "CURSO", ylab = "Frecuencia",
col = c("#E8A0BF", "#7FB5D5"),
border = borde,
legend.text = rownames(table_bv1),
beside = TRUE) # Barras agrupadas
text(barp_bv1, table_bv1-5, labels = table_bv1)##
## ESTADISTICAI PROBABILIDAD
## I 5 10
## II 7 18
## III 9 9
## IV 5 5
## V 0 5
barp_bv2<-barplot(table_bv2,
main = "Gráfico de barras CURSO vs ESTRATO - Carolina Esalas",
xlab = "CURSO", ylab = "Frecuencia",
col = paleta,
border = borde,
legend.text = rownames(table_bv2),
beside = TRUE) # Barras agrupadas
text(barp_bv2, table_bv2-1, labels = table_bv2)x = DATOS2026$EDAD
y = DATOS2026$SEXO
boxplot(x~y, horizontal = TRUE, col = paleta[1:3], border = borde,
main = "EDAD vs SEXO - Carolina Esalas")library(ggplot2)
x = DATOS2026$EDAD
z = DATOS2026$ESTRATO
boxplot(x~z, horizontal = TRUE, xlab = "EDAD", ylab = "ESTRATOS", col = paleta[1:3], border = borde,
main = "EDAD vs ESTRATOS - Carolina Esalas")library(ggplot2)
x = DATOS2026$ESTATURA
z = DATOS2026$SEXO
boxplot(x~z, horizontal = TRUE, xlab = "ESTATURA", ylab = "SEXO", col = paleta[1:3], border = borde,
main = "ESTATURA vs SEXO - Carolina Esalas")library(ggplot2)
x = DATOS2026$ESTATURA
y = DATOS2026$PESO
plot(x,y, xlab = "ESTATURA", ylab = "PESO", col = acento, pch = 19,
main = "Diagrama de dispersión ESTATURA vs PESO - Carolina Esalas")
#dibujar una línea punteada vertical en el valor medio
mean(x)## [1] 168.3919
## [1] 63.32432
abline (v = mean (x), lwd = 3, lty = 2, col = "#8E72C7")
#dibujar una línea punteada horizontal en el valor medio
abline (h = mean (y), lwd = 3, lty = 2, col = "#8E72C7")##
## Call:
## lm(formula = y ~ x, data = DATOS2026)
##
## Coefficients:
## (Intercept) x
## -84.1267 0.8756
##
## Call:
## lm(formula = x ~ y, data = DATOS2026)
##
## Coefficients:
## (Intercept) y
## 137.0763 0.4945
Haciendo uso de RStudio con la función summary.
##
## Call:
## lm(formula = x ~ y, data = DATOS2026)
##
## Residuals:
## Min 1Q Median 3Q Max
## -13.7479 -4.6462 -0.2041 4.1066 16.1973
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 137.07631 4.28941 31.957 < 2e-16 ***
## y 0.49453 0.06669 7.416 1.88e-10 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 6.47 on 72 degrees of freedom
## Multiple R-squared: 0.433, Adjusted R-squared: 0.4252
## F-statistic: 54.99 on 1 and 72 DF, p-value: 1.881e-10
library(ggplot2)
x = DATOS2026$ESTATURA
y = DATOS2026$PESO
plot(x,y, xlab = "ESTATURA", ylab = "PESO", col = acento, pch = 19,
main = "Regresión lineal de ESTATURA vs PESO - Carolina Esalas",
sub = "y_ajus= a + bx = -13.2018+0.4552x, r= 0.4352732")
#dibujar una línea punteada vertical en el valor medio
abline (v = mean (x), lwd = 3, lty = 2, col = "#8E72C7")
#dibujar una línea punteada horizontal en el valor medio
abline (h = mean (y), lwd = 3, lty = 2, col = "#8E72C7")
#ajustar un modelo de regresión lineal a los datos
regresion1 <- lm (y ~ x, data = DATOS2026)
#definir los valores de intersección y pendiente
a <- -13.20178 #Intercepto
b <- 0.4552 # pendiente
#agregue la línea de regresión ajustada al diagrama de dispersión
abline (a = a, b = b, col = "#5B9BBF", lwd = 2)En la siguiente base de datos se encuentran consignados los pesos y estaturas de 50 estudiantes seleccionados al azar de un grupo de Estudiantes de Estadística I de la UTB. Complete el siguiente formulario de preguntas:
plot(taller_rl$x,taller_rl$y, xlab = "PESO", ylab = "ESTATURA", col = acento, pch = 19,
main = "Diagrama de dispersión PESO vs ESTATURA - Carolina Esalas")
#dibujar una línea punteada vertical en el valor medio
mean(taller_rl$x)## [1] 69.88
## [1] 168.84
abline (v = mean (taller_rl$x), lwd = 3, lty = 2, col = "#8E72C7")
#dibujar una línea punteada horizontal en el valor medio
abline (h = mean (taller_rl$y), lwd = 3, lty = 2, col = "#8E72C7")## [1] 0.5133798
Se concluye que existe una cierta relación lineal entre la estatura y el peso.
##
## Call:
## lm(formula = taller_rl$y ~ taller_rl$x, data = taller_rl)
##
## Coefficients:
## (Intercept) taller_rl$x
## 143.9296 0.3565
Haciendo uso de RStudio con la función summary.
##
## Call:
## lm(formula = taller_rl$y ~ taller_rl$x, data = taller_rl)
##
## Residuals:
## Min 1Q Median 3Q Max
## -15.656 -6.614 1.404 6.247 13.335
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 143.9296 8.8404 16.281 4.06e-14 ***
## taller_rl$x 0.3565 0.1242 2.869 0.00867 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 8.315 on 23 degrees of freedom
## Multiple R-squared: 0.2636, Adjusted R-squared: 0.2315
## F-statistic: 8.231 on 1 and 23 DF, p-value: 0.008673
plot(taller_rl$x,taller_rl$y, xlab = "PESO", ylab = "ESTATURA", col = acento, pch = 19,
main = "Recta de regresión PESO vs ESTATURA - Carolina Esalas")
#dibujar una línea punteada vertical en el valor medio
mean(taller_rl$x)## [1] 69.88
## [1] 168.84
abline (v = mean (taller_rl$x), lwd = 3, lty = 2, col = "#8E72C7")
#dibujar una línea punteada horizontal en el valor medio
abline (h = mean (taller_rl$y), lwd = 3, lty = 2, col = "#8E72C7")
#ajustar un modelo de regresión lineal a los datos
regresion3 = lm(taller_rl$y~taller_rl$x, data=taller_rl)
#definir los valores de intersección y pendiente
a <- 143.9296 #Intercepto
b <- 0.3565 # pendiente
#agregue la línea de regresión ajustada al diagrama de dispersión
abline (a = a, b = b, col = "#5B9BBF", lwd = 2)Los datos del fichero EdadPesoGrasas.txt corresponden a tres variables medidas en 25 individuos: edad, peso y cantidad de grasas en sangre. Para leer el fichero de datos y saber los nombres de las variables:
grasas <- read.table('http://verso.mat.uam.es/~joser.berrendero/datos/EdadPesoGrasas.txt', header = TRUE)
names(grasas)## [1] "peso" "edad" "grasas"
## peso edad grasas
## peso 1.0000000 0.2400133 0.2652935
## edad 0.2400133 1.0000000 0.8373534
## grasas 0.2652935 0.8373534 1.0000000
##
## Call:
## lm(formula = grasas ~ edad, data = grasas)
##
## Residuals:
## Min 1Q Median 3Q Max
## -63.478 -26.816 -3.854 28.315 90.881
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 102.5751 29.6376 3.461 0.00212 **
## edad 5.3207 0.7243 7.346 1.79e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 43.46 on 23 degrees of freedom
## Multiple R-squared: 0.7012, Adjusted R-squared: 0.6882
## F-statistic: 53.96 on 1 and 23 DF, p-value: 1.794e-07
plot(grasas$edad, grasas$grasas, xlab='Edad', ylab='Grasas', col = acento, pch = 19,
main = "Recta de mínimos cuadrados: Grasas vs Edad - Carolina Esalas")
abline(regresion, col = "#5B9BBF", lwd = 2)Supongamos que queremos utilizar la recta de mínimos cuadrados para predecir la cantidad de grasas para individuos de edades 30, 31, 32, …, 50.
## 1 2 3 4 5 6 7 8
## 262.1954 267.5161 272.8368 278.1575 283.4781 288.7988 294.1195 299.4402
## 9 10 11 12 13 14 15 16
## 304.7608 310.0815 315.4022 320.7229 326.0435 331.3642 336.6849 342.0056
## 17 18 19 20 21
## 347.3263 352.6469 357.9676 363.2883 368.6090