En esta sección, se analizan las variables continuas del estudio a través de la estadística descriptiva. El objetivo es explorar su distribución, tendencia central y dispersión para comprender mejor su comportamiento.
Cargamos datos:
setwd("/cloud/project")
datos <- read.csv("MPG_consumo.csv", header = TRUE, sep = ",", dec = ".")
str(datos)
## 'data.frame': 38113 obs. of 81 variables:
## $ Vehicle.ID : int 26587 27705 26561 27681 27550 28426 27549 28425 27593 28455 ...
## $ Year : int 1984 1984 1984 1984 1984 1984 1984 1984 1984 1984 ...
## $ Make : chr "Alfa Romeo" "Alfa Romeo" "Alfa Romeo" "Alfa Romeo" ...
## $ Model : chr "GT V6 2.5" "GT V6 2.5" "Spider Veloce 2000" "Spider Veloce 2000" ...
## $ Class : chr "Minicompact Cars" "Minicompact Cars" "Two Seaters" "Two Seaters" ...
## $ Drive : chr "" "" "" "" ...
## $ Transmission : chr "Manual 5-Speed" "Manual 5-Speed" "Manual 5-Speed" "Manual 5-Speed" ...
## $ Transmission.Descriptor : chr "" "" "" "" ...
## $ Engine.Index : int 9001 9005 9002 9006 1830 1880 1831 1881 1524 1574 ...
## $ Engine.Descriptor : chr "(FFS)" "(FFS) CA model" "(FFS)" "(FFS) CA model" ...
## $ Engine.Cylinders : int 6 6 4 4 4 4 6 6 6 6 ...
## $ Engine.Displacement : num 2.5 2.5 2 2 2.5 2.5 4.2 4.2 4.2 4.2 ...
## $ Turbocharger : logi NA NA NA NA NA NA ...
## $ Supercharger : chr "" "" "" "" ...
## $ Fuel.Type : chr "Regular" "Regular" "Regular" "Regular" ...
## $ Fuel.Type.1 : chr "Regular Gasoline" "Regular Gasoline" "Regular Gasoline" "Regular Gasoline" ...
## $ Fuel.Type.2 : chr "" "" "" "" ...
## $ City.MPG..FT1. : int 17 17 18 18 18 18 13 13 15 15 ...
## $ Unrounded.City.MPG..FT1. : num 0 0 0 0 0 0 0 0 0 0 ...
## $ City.MPG..FT2. : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Unrounded.City.MPG..FT2. : num 0 0 0 0 0 0 0 0 0 0 ...
## $ City.Gasoline.Consumption..CD. : num 0 0 0 0 0 0 0 0 0 0 ...
## $ City.Electricity.Consumption : num 0 0 0 0 0 0 0 0 0 0 ...
## $ City.Utility.Factor : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Highway.MPG..FT1. : int 24 24 25 25 17 17 13 13 20 19 ...
## $ Unrounded.Highway.MPG..FT1. : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Highway.MPG..FT2. : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Unrounded.Highway.MPG..FT2. : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Highway.Gasoline.Consumption..CD. : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Highway.Electricity.Consumption : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Highway.Utility.Factor : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Unadjusted.City.MPG..FT1. : num 21 21 23 23 22 22 16 16 19 19 ...
## $ Unadjusted.Highway.MPG..FT1. : num 34 34 35 35 24 24 18 18 27 26 ...
## $ Unadjusted.City.MPG..FT2. : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Unadjusted.Highway.MPG..FT2. : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Combined.MPG..FT1. : int 20 20 21 21 17 17 13 13 17 17 ...
## $ Unrounded.Combined.MPG..FT1. : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Combined.MPG..FT2. : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Unrounded.Combined.MPG..FT2. : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Combined.Electricity.Consumption : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Combined.Gasoline.Consumption..CD. : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Combined.Utility.Factor : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Annual.Fuel.Cost..FT1. : int 1750 1750 1650 1650 2050 2050 2700 2700 2050 2050 ...
## $ Annual.Fuel.Cost..FT2. : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Gas.Guzzler.Tax : chr "" "" "" "" ...
## $ Save.or.Spend..5.Year. : int -2000 -2000 -1500 -1500 -3500 -3500 -6750 -6750 -3500 -3500 ...
## $ Annual.Consumption.in.Barrels..FT1.: num 16.5 16.5 15.7 15.7 19.4 ...
## $ Annual.Consumption.in.Barrels..FT2.: num 0 0 0 0 0 0 0 0 0 0 ...
## $ Tailpipe.CO2..FT1. : int -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ...
## $ Tailpipe.CO2.in.Grams.Mile..FT1. : num 444 444 423 423 523 ...
## $ Tailpipe.CO2..FT2. : int -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ...
## $ Tailpipe.CO2.in.Grams.Mile..FT2. : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Fuel.Economy.Score : int -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ...
## $ GHG.Score : int -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ...
## $ GHG.Score..Alt.Fuel. : int -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ...
## $ My.MPG.Data : chr "N" "N" "N" "N" ...
## $ X2D.Passenger.Volume : int 74 74 0 0 0 0 0 0 0 0 ...
## $ X2D.Luggage.Volume : int 7 7 0 0 0 0 0 0 0 0 ...
## $ X4D.Passenger.Volume : int 0 0 0 0 0 0 0 0 0 0 ...
## $ X4D.Luggage.Volume : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Hatchback.Passenger.Volume : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Hatchback.Luggage.Volume : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Start.Stop.Technology : chr "" "" "" "" ...
## $ Alternative.Fuel.Technology : chr "" "" "" "" ...
## $ Electric.Motor : chr "" "" "" "" ...
## $ Manufacturer.Code : chr "" "" "" "" ...
## $ Gasoline.Electricity.Blended..CD. : chr "False" "False" "False" "False" ...
## $ Vehicle.Charger : chr "" "" "" "" ...
## $ Alternate.Charger : chr "" "" "" "" ...
## $ Hours.to.Charge..120V. : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Hours.to.Charge..240V. : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Hours.to.Charge..AC.240V. : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Composite.City.MPG : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Composite.Highway.MPG : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Composite.Combined.MPG : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Range..FT1. : int 0 0 0 0 0 0 0 0 0 0 ...
## $ City.Range..FT1. : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Highway.Range..FT1. : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Range..FT2. : chr "" "" "" "" ...
## $ City.Range..FT2. : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Highway.Range..FT2. : num 0 0 0 0 0 0 0 0 0 0 ...
Empezamos el desarrollo para cada variable continuas:
variable <- na.omit(datos$Engine.Displacement)
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
R <- max(variable) - min(variable)
A <- ceiling(R / k)
lim_inf <- seq(from = floor(min(variable)), by = A, length.out = k)
lim_sup <- c(lim_inf[-1], max(variable) + 1e-6)
MC <- (lim_inf + lim_sup) / 2
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i])
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
hi <- round(ni / sum(ni), 4)
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 1 0.5 11 0.0003 37979 1.0000 11 0.0003
## 1 - 2 1.5 4949 0.1303 37968 0.9997 4960 0.1306
## 2 - 3 2.5 12517 0.3296 33019 0.8694 17477 0.4602
## 3 - 4 3.5 8880 0.2338 20502 0.5398 26357 0.6940
## 4 - 5 4.5 4962 0.1307 11622 0.3060 31319 0.8247
## 5 - 6 5.5 5086 0.1339 6660 0.1753 36405 0.9586
## 6 - 7 6.5 1517 0.0399 1574 0.0414 37922 0.9985
## 7 - 8 7.5 14 0.0004 57 0.0015 37936 0.9989
## 8 - 9 8.5 43 0.0011 43 0.0011 37979 1.0000
## 9 - 10 9.5 0 0.0000 0 0.0000 37979 1.0000
## 10 - 11 10.5 0 0.0000 0 0.0000 37979 1.0000
## 11 - 12 11.5 0 0.0000 0 0.0000 37979 1.0000
## 12 - 13 12.5 0 0.0000 0 0.0000 37979 1.0000
## 13 - 14 13.5 0 0.0000 0 0.0000 37979 1.0000
## 14 - 15 14.5 0 0.0000 0 0.0000 37979 1.0000
## 15 - 16 15.5 0 0.0000 0 0.0000 37979 1.0000
## 16 - 8.4 12.2 0 0.0000 0 0.0000 37979 1.0000
barplot(tabla_frecuencia$ni,
main = "Histograma: Distribución de Engine Displacement",
xlab = "Intervalos de Cilindrada",
ylab = "Frecuencia absoluta",
col = "skyblue",
names.arg = tabla_frecuencia$Intervalo,
las = 2,
cex.names = 0.7,
ylim = c(0, max(tabla_frecuencia$ni) + 5))
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green", pch = 16,
main = "Ojivas: Frecuencias Acumuladas de Engine Displacement",
xlab = "Cilindrada del motor (litros)",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5))
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja: Engine Displacement",
xlab = "Cilindrada del Motor (litros)")
variable <- na.omit(datos$City.MPG..FT1.)
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores y superiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
lim_sup <- lim_inf + A - 1
MC <- (lim_inf + lim_sup) / 2
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i])
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
hi <- round(ni / sum(ni), 4)
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 6 - 14 10 5897 0.1741 33880 1.0000 5897 0.1741
## 15 - 23 19 24319 0.7178 27983 0.8259 30216 0.8919
## 24 - 32 28 3128 0.0923 3664 0.1081 33344 0.9842
## 33 - 41 37 327 0.0097 536 0.0158 33671 0.9939
## 42 - 50 46 84 0.0025 209 0.0061 33755 0.9964
## 51 - 59 55 20 0.0006 125 0.0036 33775 0.9970
## 60 - 68 64 8 0.0002 105 0.0030 33783 0.9972
## 69 - 77 73 2 0.0001 97 0.0028 33785 0.9973
## 78 - 86 82 14 0.0004 95 0.0027 33799 0.9977
## 87 - 95 91 31 0.0009 81 0.0023 33830 0.9986
## 96 - 104 100 10 0.0003 50 0.0014 33840 0.9989
## 105 - 113 109 8 0.0002 40 0.0011 33848 0.9991
## 114 - 122 118 7 0.0002 32 0.0009 33855 0.9993
## 123 - 131 127 17 0.0005 25 0.0007 33872 0.9998
## 132 - 140 136 7 0.0002 8 0.0002 33879 1.0000
## 141 - 149 145 0 0.0000 1 0.0000 33879 1.0000
## 150 - 158 154 1 0.0000 1 0.0000 33880 1.0000
barplot(tabla_frecuencia$ni,
main = "Histograma: City MPG (FT1)",
xlab = "Intervalos de MPG",
ylab = "Frecuencia absoluta",
col = "skyblue",
names.arg = tabla_frecuencia$Intervalo,
las = 2,
cex.names = 0.7,
ylim = c(0, max(tabla_frecuencia$ni) + 5))
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "OjivasFrecuencias acumuladas de City MPG FT1",
xlab = "MPG en Ciudad FT1 ",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja: City MPG FT1",
xlab = "MPG en Ciudad FT1")
variable <- na.omit(datos$Unrounded.City.MPG..FT1.)
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
R <- max(variable) - min(variable)
A <- ceiling(R / k)
lim_inf <- seq(from = min(variable), by = A, length.out = k)
lim_sup <- lim_inf + A - 1
MC <- (lim_inf + lim_sup) / 2
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i])
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
hi <- round(ni / sum(ni), 4)
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 8 4 29662 0.7991 37119 0.9999 29662 0.7991
## 9 - 17 13 2803 0.0755 7457 0.2008 32465 0.8746
## 18 - 26 22 3870 0.1043 4654 0.1253 36335 0.9789
## 27 - 35 31 551 0.0148 784 0.0210 36886 0.9937
## 36 - 44 40 103 0.0028 233 0.0062 36989 0.9965
## 45 - 53 49 24 0.0006 130 0.0034 37013 0.9971
## 54 - 62 58 10 0.0003 106 0.0028 37023 0.9974
## 63 - 71 67 0 0.0000 96 0.0025 37023 0.9974
## 72 - 80 76 6 0.0002 96 0.0025 37029 0.9976
## 81 - 89 85 17 0.0005 90 0.0023 37046 0.9981
## 90 - 98 94 19 0.0005 73 0.0018 37065 0.9986
## 99 - 107 103 8 0.0002 54 0.0013 37073 0.9988
## 108 - 116 112 5 0.0001 46 0.0011 37078 0.9989
## 117 - 125 121 20 0.0005 41 0.0010 37098 0.9994
## 126 - 134 130 15 0.0004 21 0.0005 37113 0.9998
## 135 - 143 139 5 0.0001 6 0.0001 37118 0.9999
## 144 - 152 148 1 0.0000 1 0.0000 37119 0.9999
barplot(tabla_frecuencia$ni,
main = "Histograma: Unrounded City MPG FT1",
xlab = "Intervalos de MPG",
ylab = "Frecuencia absoluta",
col = "skyblue",
names.arg = tabla_frecuencia$Intervalo,
las = 2,
cex.names = 0.7,
ylim = c(0, max(tabla_frecuencia$ni) + 5))
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "OjivasFrecuencias acumuladas de Unrounded City MPG FT1",
xlab = "MPG en ciudad sin redondear FT1 ",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja: Unrounded City MPG FT1",
xlab = "MPG en ciudad sin redondear FT1")
variable <- na.omit(datos$City.MPG..FT2.)
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
R <- max(variable) - min(variable)
A <- ceiling(R / k)
lim_inf <- seq(from = min(variable), by = A, length.out = k)
lim_sup <- lim_inf + A - 1
MC <- (lim_inf + lim_sup) / 2
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i])
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 8 4 36677 0.9646 38022 1.0001 36677 0.9646
## 9 - 17 13 1263 0.0332 1345 0.0355 37940 0.9978
## 18 - 26 22 27 0.0007 82 0.0023 37967 0.9985
## 27 - 35 31 0 0.0000 55 0.0016 37967 0.9985
## 36 - 44 40 5 0.0001 55 0.0016 37972 0.9986
## 45 - 53 49 4 0.0001 50 0.0015 37976 0.9987
## 54 - 62 58 7 0.0002 46 0.0014 37983 0.9989
## 63 - 71 67 3 0.0001 39 0.0012 37986 0.9990
## 72 - 80 76 0 0.0000 36 0.0011 37986 0.9990
## 81 - 89 85 6 0.0002 36 0.0011 37992 0.9992
## 90 - 98 94 14 0.0004 30 0.0009 38006 0.9996
## 99 - 107 103 8 0.0002 16 0.0005 38014 0.9998
## 108 - 116 112 2 0.0001 8 0.0003 38016 0.9999
## 117 - 125 121 2 0.0001 6 0.0002 38018 1.0000
## 126 - 134 130 3 0.0001 4 0.0001 38021 1.0001
## 135 - 143 139 0 0.0000 1 0.0000 38021 1.0001
## 144 - 152 148 1 0.0000 1 0.0000 38022 1.0001
barplot(tabla_frecuencia$ni,
main = "Histograma: City MPG FT2",
xlab = "Intervalos de MPG",
ylab = "Frecuencia absoluta",
col = "skyblue",
names.arg = tabla_frecuencia$Intervalo,
las = 2,
cex.names = 0.7,
ylim = c(0, max(tabla_frecuencia$ni) + 5))
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "OjivasFrecuencias acumuladas de City MPG FT2",
xlab = "MPG en Ciudad FT2 ",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja: City MPG FT2",
xlab = "MPG en Ciudad FT2")
variable <- na.omit(datos$Unrounded.City.MPG..FT2.)
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
R <- max(variable) - min(variable)
A <- ceiling(R / k)
lim_inf <- seq(from = min(variable), by = A, length.out = k)
lim_sup <- lim_inf + A - 1
MC <- (lim_inf + lim_sup) / 2
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i])
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
hi <- round(ni / sum(ni), 4)
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 8 4 37269 0.9793 38057 1.0002 37269 0.9793
## 9 - 17 13 710 0.0187 788 0.0209 37979 0.9980
## 18 - 26 22 21 0.0006 78 0.0022 38000 0.9986
## 27 - 35 31 0 0.0000 57 0.0016 38000 0.9986
## 36 - 44 40 6 0.0002 57 0.0016 38006 0.9988
## 45 - 53 49 4 0.0001 51 0.0014 38010 0.9989
## 54 - 62 58 6 0.0002 47 0.0013 38016 0.9991
## 63 - 71 67 3 0.0001 41 0.0011 38019 0.9992
## 72 - 80 76 4 0.0001 38 0.0010 38023 0.9993
## 81 - 89 85 5 0.0001 34 0.0009 38028 0.9994
## 90 - 98 94 13 0.0003 29 0.0008 38041 0.9997
## 99 - 107 103 8 0.0002 16 0.0005 38049 0.9999
## 108 - 116 112 2 0.0001 8 0.0003 38051 1.0000
## 117 - 125 121 2 0.0001 6 0.0002 38053 1.0001
## 126 - 134 130 3 0.0001 4 0.0001 38056 1.0002
## 135 - 143 139 0 0.0000 1 0.0000 38056 1.0002
## 144 - 152 148 1 0.0000 1 0.0000 38057 1.0002
barplot(tabla_frecuencia$ni,
main = "Histograma: Unrounded City MPG FT1",
xlab = "Intervalos de MPG",
ylab = "Frecuencia absoluta",
col = "skyblue",
names.arg = tabla_frecuencia$Intervalo,
las = 2,
cex.names = 0.7,
ylim = c(0, max(tabla_frecuencia$ni) + 5))
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "OjivasFrecuencias acumuladas de Unrounded City MPG FT2",
xlab = "MPG en ciudad sin redondear FT2",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja: Unrounded City MPG FT2",
xlab = "MPG en ciudad sin redondear FT2")
variable <- na.omit(datos$City.Gasoline.Consumption..CD.)
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
R <- max(variable) - min(variable)
A <- ceiling(R / k)
lim_inf <- seq(from = min(variable), by = A, length.out = k)
lim_sup <- c(lim_inf[-1] - 0.0001, max(variable))
MC <- (lim_inf + lim_sup) / 2
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i])
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
hi <- round(ni / sum(ni), 4)
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 1 0.50 38111 0.9999 38113 1e+00 38111 0.9999
## 1 - 2 1.50 0 0.0000 2 1e-04 38111 0.9999
## 2 - 3 2.50 0 0.0000 2 1e-04 38111 0.9999
## 3 - 4 3.50 0 0.0000 2 1e-04 38111 0.9999
## 4 - 5 4.50 0 0.0000 2 1e-04 38111 0.9999
## 5 - 6 5.50 2 0.0001 2 1e-04 38113 1.0000
## 6 - 7 6.50 0 0.0000 0 0e+00 38113 1.0000
## 7 - 8 7.50 0 0.0000 0 0e+00 38113 1.0000
## 8 - 9 8.50 0 0.0000 0 0e+00 38113 1.0000
## 9 - 10 9.50 0 0.0000 0 0e+00 38113 1.0000
## 10 - 11 10.50 0 0.0000 0 0e+00 38113 1.0000
## 11 - 12 11.50 0 0.0000 0 0e+00 38113 1.0000
## 12 - 13 12.50 0 0.0000 0 0e+00 38113 1.0000
## 13 - 14 13.50 0 0.0000 0 0e+00 38113 1.0000
## 14 - 15 14.50 0 0.0000 0 0e+00 38113 1.0000
## 15 - 16 15.50 0 0.0000 0 0e+00 38113 1.0000
## 16 - 5.35 10.68 0 0.0000 0 0e+00 38113 1.0000
barplot(tabla_frecuencia$ni,
main = "Histograma: City Gasoline Consumption CD",
xlab = "Intervalos de Combustion CD",
ylab = "Frecuencia absoluta",
col = "skyblue",
names.arg = tabla_frecuencia$Intervalo,
las = 2,
ylim = c(0, max(tabla_frecuencia$ni) + 5),
cex.names = 0.7)
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "Ojivas: Frecuencias acumuladas de City Gasoline Consumption CD",
xlab = "Combustion de Gasolina en Ciudad (CD)",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja: City Gasoline Consumption CD",
xlab = "Combustion de Gasolina en ciudad CD")
variable <- na.omit(datos$City.Electricity.Consumption)
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
R <- max(variable) - min(variable)
A <- ceiling(R / k)
lim_inf <- seq(from = min(variable), by = A, length.out = k)
lim_sup <- lim_inf + A - 1
MC <- (lim_inf + lim_sup) / 2
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i])
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
hi <- round(ni / sum(ni), 4)
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 7 3.5 37915 0.9954 38090 1.0000 37915 0.9954
## 8 - 15 11.5 0 0.0000 175 0.0046 37915 0.9954
## 16 - 23 19.5 1 0.0000 175 0.0046 37916 0.9954
## 24 - 31 27.5 55 0.0014 174 0.0046 37971 0.9968
## 32 - 39 35.5 65 0.0017 119 0.0032 38036 0.9985
## 40 - 47 43.5 22 0.0006 54 0.0015 38058 0.9991
## 48 - 55 51.5 10 0.0003 32 0.0009 38068 0.9994
## 56 - 63 59.5 8 0.0002 22 0.0006 38076 0.9996
## 64 - 71 67.5 8 0.0002 14 0.0004 38084 0.9998
## 72 - 79 75.5 2 0.0001 6 0.0002 38086 0.9999
## 80 - 87 83.5 0 0.0000 4 0.0001 38086 0.9999
## 88 - 95 91.5 2 0.0001 4 0.0001 38088 1.0000
## 96 - 103 99.5 1 0.0000 2 0.0000 38089 1.0000
## 104 - 111 107.5 0 0.0000 1 0.0000 38089 1.0000
## 112 - 119 115.5 0 0.0000 1 0.0000 38089 1.0000
## 120 - 127 123.5 1 0.0000 1 0.0000 38090 1.0000
## 128 - 135 131.5 0 0.0000 0 0.0000 38090 1.0000
barplot(tabla_frecuencia$ni,
main = "Histograma: City Electricity Consumption",
xlab = "Intervalos de Consumo",
ylab = "Frecuencia absoluta",
col = "skyblue",
names.arg = tabla_frecuencia$Intervalo,
las = 2,
cex.names = 0.7,
ylim = c(0, max(tabla_frecuencia$ni) + 5))
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "Ojivas Frecuencias acumuladas de City Electricity Consumption",
xlab = "Marca de clase (Consumo)",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja: City Electricity Consumption",
xlab = "Consumo de electricidad de la ciudad")
variable <- na.omit(datos$City.Utility.Factor)
# Número de intervalos fijo
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores y superiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
lim_sup <- lim_inf + A - 1
# Marcas de clase
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i])
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 0 0 0 NaN 0 NaN 0 NaN
## 1 - 1 1 0 NaN 0 NaN 0 NaN
## 2 - 2 2 0 NaN 0 NaN 0 NaN
## 3 - 3 3 0 NaN 0 NaN 0 NaN
## 4 - 4 4 0 NaN 0 NaN 0 NaN
## 5 - 5 5 0 NaN 0 NaN 0 NaN
## 6 - 6 6 0 NaN 0 NaN 0 NaN
## 7 - 7 7 0 NaN 0 NaN 0 NaN
## 8 - 8 8 0 NaN 0 NaN 0 NaN
## 9 - 9 9 0 NaN 0 NaN 0 NaN
## 10 - 10 10 0 NaN 0 NaN 0 NaN
## 11 - 11 11 0 NaN 0 NaN 0 NaN
## 12 - 12 12 0 NaN 0 NaN 0 NaN
## 13 - 13 13 0 NaN 0 NaN 0 NaN
## 14 - 14 14 0 NaN 0 NaN 0 NaN
## 15 - 15 15 0 NaN 0 NaN 0 NaN
## 16 - 16 16 0 NaN 0 NaN 0 NaN
barplot(tabla_frecuencia$ni,
main = "Histograma: City Utility Factor",
xlab = "Utilidad Urbana",
ylab = "Frecuencia absoluta",
col = "skyblue",
names.arg = tabla_frecuencia$Intervalo,
las = 2,
cex.names = 0.7,
ylim = c(0, max(tabla_frecuencia$ni) + 5))
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "Ojivas Frecuencias acumuladas de City Utility Factor",
xlab = "Marca de clase (Consumo)",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja: City Utility Factor",
xlab = "Utilidad Urbana")
# Seleccionar la variable continua
variable <- na.omit(datos$Highway.MPG..FT1.)
# Número de intervalos fijo
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores y superiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
lim_sup <- lim_inf + A - 1 # corregido para evitar superposición
# Marcas de clase
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i])
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 9 - 15 12 1192 0.0370 32251 0.9998 1192 0.0370
## 16 - 22 19 10920 0.3386 31059 0.9628 12112 0.3756
## 23 - 29 26 14733 0.4568 20139 0.6242 26845 0.8324
## 30 - 36 33 4384 0.1359 5406 0.1674 31229 0.9683
## 37 - 43 40 740 0.0229 1022 0.0315 31969 0.9912
## 44 - 50 47 159 0.0049 282 0.0086 32128 0.9961
## 51 - 57 54 19 0.0006 123 0.0037 32147 0.9967
## 58 - 64 61 12 0.0004 104 0.0031 32159 0.9971
## 65 - 71 68 7 0.0002 92 0.0027 32166 0.9973
## 72 - 78 75 3 0.0001 85 0.0025 32169 0.9974
## 79 - 85 82 6 0.0002 82 0.0024 32175 0.9976
## 86 - 92 89 11 0.0003 76 0.0022 32186 0.9979
## 93 - 99 96 26 0.0008 65 0.0019 32212 0.9987
## 100 - 106 103 24 0.0007 39 0.0011 32236 0.9994
## 107 - 113 110 14 0.0004 15 0.0004 32250 0.9998
## 114 - 120 117 0 0.0000 1 0.0000 32250 0.9998
## 121 - 127 124 1 0.0000 1 0.0000 32251 0.9998
barplot(tabla_frecuencia$ni,
main = "Histograma: Highway MPG FT1",
xlab = "MPG en Carretera",
ylab = "Frecuencia absoluta",
col = "skyblue",
names.arg = tabla_frecuencia$Intervalo,
las = 2,
cex.names = 0.7,
ylim = c(0, max(tabla_frecuencia$ni) + 5))
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "OjivasFrecuencias acumuladas de Highway MPG FT1",
xlab = "MPG en Carretera",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja: Highway MPG FT1",
xlab = "MPG en Carretera")
# Seleccionar la variable continua
variable <- na.omit(datos$Unrounded.Highway.MPG..FT1.)
# Número de intervalos fijo
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores y superiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
lim_sup <- lim_inf + A - 1 # corregido para evitar superposición
# Marcas de clase
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i])
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 7 3.5 29662 0.7992 37114 1.0000 29662 0.7992
## 8 - 15 11.5 42 0.0011 7452 0.2008 29704 0.8003
## 16 - 23 19.5 2107 0.0568 7410 0.1997 31811 0.8571
## 24 - 31 27.5 3675 0.0990 5303 0.1429 35486 0.9561
## 32 - 39 35.5 1399 0.0377 1628 0.0439 36885 0.9938
## 40 - 47 43.5 118 0.0032 229 0.0062 37003 0.9970
## 48 - 55 51.5 15 0.0004 111 0.0030 37018 0.9974
## 56 - 63 59.5 3 0.0001 96 0.0026 37021 0.9975
## 64 - 71 67.5 5 0.0001 93 0.0025 37026 0.9976
## 72 - 79 75.5 3 0.0001 88 0.0024 37029 0.9977
## 80 - 87 83.5 4 0.0001 85 0.0023 37033 0.9978
## 88 - 95 91.5 28 0.0008 81 0.0022 37061 0.9986
## 96 - 103 99.5 29 0.0008 53 0.0014 37090 0.9994
## 104 - 111 107.5 23 0.0006 24 0.0006 37113 1.0000
## 112 - 119 115.5 0 0.0000 1 0.0000 37113 1.0000
## 120 - 127 123.5 1 0.0000 1 0.0000 37114 1.0000
## 128 - 135 131.5 0 0.0000 0 0.0000 37114 1.0000
# Histograma manual con las frecuencias absolutas
barplot(tabla_frecuencia$ni,
main = "Histograma: Unrounded Highway MPG FT1",
xlab = "MPG en Carretera",
ylab = "Frecuencia absoluta",
col = "skyblue",
names.arg = tabla_frecuencia$Intervalo,
las = 2,
cex.names = 0.7,
ylim = c(0, max(tabla_frecuencia$ni) + 5))
# Ojivas (ascendente y descendente) con líneas conectadas
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "OjivasFrecuencias acumuladas de Unrounded Highway MPG FT1",
xlab = "MPG en Carretera",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja (boxplot)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja: Unrounded Highway MPG FT1",
xlab = "MPG en Carretera")
# Seleccionar la variable continua
variable <- na.omit(datos$Highway.MPG..FT2.)
# Número de intervalos fijo
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores y superiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
lim_sup <- lim_inf + A - 1 # corregido para evitar superposición
# Marcas de clase
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i])
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 7 3.5 36675 0.9660 37967 0.9999 36675 0.9660
## 8 - 15 11.5 575 0.0151 1292 0.0339 37250 0.9811
## 16 - 23 19.5 626 0.0165 717 0.0188 37876 0.9976
## 24 - 31 27.5 35 0.0009 91 0.0023 37911 0.9985
## 32 - 39 35.5 0 0.0000 56 0.0014 37911 0.9985
## 40 - 47 43.5 3 0.0001 56 0.0014 37914 0.9986
## 48 - 55 51.5 4 0.0001 53 0.0013 37918 0.9987
## 56 - 63 59.5 4 0.0001 49 0.0012 37922 0.9988
## 64 - 71 67.5 5 0.0001 45 0.0011 37927 0.9989
## 72 - 79 75.5 7 0.0002 40 0.0010 37934 0.9991
## 80 - 87 83.5 13 0.0003 33 0.0008 37947 0.9994
## 88 - 95 91.5 6 0.0002 20 0.0005 37953 0.9996
## 96 - 103 99.5 8 0.0002 14 0.0003 37961 0.9998
## 104 - 111 107.5 5 0.0001 6 0.0001 37966 0.9999
## 112 - 119 115.5 0 0.0000 1 0.0000 37966 0.9999
## 120 - 127 123.5 1 0.0000 1 0.0000 37967 0.9999
## 128 - 135 131.5 0 0.0000 0 0.0000 37967 0.9999
# Histograma manual con las frecuencias absolutas
barplot(tabla_frecuencia$ni,
main = "Histograma: Highway MPG FT2",
xlab = "MPG en Carretera FT2",
ylab = "Frecuencia absoluta",
col = "skyblue",
names.arg = tabla_frecuencia$Intervalo,
las = 2,
cex.names = 0.7,
ylim = c(0, max(tabla_frecuencia$ni) + 5))
# Ojivas (ascendente y descendente) con líneas conectadas
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "OjivasFrecuencias acumuladas de Highway MPG FT2",
xlab = "MPG en Carretera FT2",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja (boxplot)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja: Highway MPG FT2",
xlab = "MPG en Carretera FT2")
# Seleccionar la variable continua
variable <- na.omit(datos$Unrounded.Highway.MPG..FT2.)
# Número de intervalos (regla de Sturges)
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites de clase (asegura no solapamiento)
lim_inf <- seq(from = min(variable), by = A, length.out = k)
lim_sup <- c(lim_inf[-1], max(variable) + 1e-4)
# Marcas de clase
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas por intervalo
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i])
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla de frecuencia
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 8 4.0 37225 0.9767 38113 0.9999 37225 0.9767
## 8 - 16 12.0 393 0.0103 888 0.0232 37618 0.9870
## 16 - 24 20.0 407 0.0107 495 0.0129 38025 0.9977
## 24 - 32 28.0 26 0.0007 88 0.0022 38051 0.9984
## 32 - 40 36.0 0 0.0000 62 0.0015 38051 0.9984
## 40 - 48 44.0 4 0.0001 62 0.0015 38055 0.9985
## 48 - 56 52.0 4 0.0001 58 0.0014 38059 0.9986
## 56 - 64 60.0 7 0.0002 54 0.0013 38066 0.9988
## 64 - 72 68.0 5 0.0001 47 0.0011 38071 0.9989
## 72 - 80 76.0 6 0.0002 42 0.0010 38077 0.9991
## 80 - 88 84.0 16 0.0004 36 0.0008 38093 0.9995
## 88 - 96 92.0 5 0.0001 20 0.0004 38098 0.9996
## 96 - 104 100.0 9 0.0002 15 0.0003 38107 0.9998
## 104 - 112 108.0 5 0.0001 6 0.0001 38112 0.9999
## 112 - 120 116.0 0 0.0000 1 0.0000 38112 0.9999
## 120 - 128 124.0 1 0.0000 1 0.0000 38113 0.9999
## 128 - 121.2 124.6 0 0.0000 0 0.0000 38113 0.9999
# Histograma ajustado a los datos (manual)
barplot(height = ni,
names.arg = paste0(round(lim_inf, 2), "-", round(lim_sup, 2)),
main = "Histograma: Unrounded Highway MPG FT2",
xlab = "MPG en Carretera FT2",
ylab = "Frecuencia absoluta",
col = "skyblue",
las = 2,
cex.names = 0.7,
ylim = c(0, max(ni) + 5))
# Ojivas (ascendente y descendente)
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "Ojivas: Frecuencias acumuladas de Unrounded Highway MPG FT2",
xlab = "Marca de clase (MPG)",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja: Unrounded Highway MPG FT2",
xlab = "MPG en Carretera FT2")
# Seleccionar la variable continua y eliminar NAs
variable <- na.omit(datos$Highway.Gasoline.Consumption..CD.)
# Número de datos y número de intervalos (Regla de Sturges)
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud del intervalo
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
# Límites superiores (el último incluye el máximo real)
lim_sup <- c(lim_inf[-1] - 0.0001, max(variable))
# Marcas de clase
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i]) # incluye el último límite
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla de frecuencias
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 1 0.50 38111 0.9999 38113 1e+00 38111 0.9999
## 1 - 2 1.50 0 0.0000 2 1e-04 38111 0.9999
## 2 - 3 2.50 0 0.0000 2 1e-04 38111 0.9999
## 3 - 4 3.50 0 0.0000 2 1e-04 38111 0.9999
## 4 - 5 4.50 2 0.0001 2 1e-04 38113 1.0000
## 5 - 6 5.50 0 0.0000 0 0e+00 38113 1.0000
## 6 - 7 6.50 0 0.0000 0 0e+00 38113 1.0000
## 7 - 8 7.50 0 0.0000 0 0e+00 38113 1.0000
## 8 - 9 8.50 0 0.0000 0 0e+00 38113 1.0000
## 9 - 10 9.50 0 0.0000 0 0e+00 38113 1.0000
## 10 - 11 10.50 0 0.0000 0 0e+00 38113 1.0000
## 11 - 12 11.50 0 0.0000 0 0e+00 38113 1.0000
## 12 - 13 12.50 0 0.0000 0 0e+00 38113 1.0000
## 13 - 14 13.50 0 0.0000 0 0e+00 38113 1.0000
## 14 - 15 14.50 0 0.0000 0 0e+00 38113 1.0000
## 15 - 16 15.50 0 0.0000 0 0e+00 38113 1.0000
## 16 - 4.06 10.03 0 0.0000 0 0e+00 38113 1.0000
# Histograma manual
barplot(tabla_frecuencia$ni,
main = "Histograma: Highway Gasoline Consumption CD",
xlab = "Intervalos de Combustion CD",
ylab = "Frecuencia absoluta",
col = "skyblue",
names.arg = tabla_frecuencia$Intervalo,
las = 2,
ylim = c(0, max(tabla_frecuencia$ni) + 5),
cex.names = 0.7)
# Ojivas ascendente y descendente
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "Ojivas: Frecuencias acumuladas de Highway Gasoline Consumption CD",
xlab = "Consumo de Gasolina (gal)",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja: Highway Gasoline Consumption CD",
xlab = "Consumo de Combustible (gal)")
# Seleccionar la variable continua y eliminar NAs
variable <- na.omit(datos$Highway.Electricity.Consumption)
# Número de datos y número de intervalos (Regla de Sturges)
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud del intervalo
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
# Límites superiores (el último incluye el máximo real)
lim_sup <- c(lim_inf[-1] - 0.0001, max(variable))
# Marcas de clase
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i]) # incluye el último límite
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla de frecuencias
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 8 4 37915 0.9948 38113 1.0001 37915 0.9948
## 8 - 16 12 0 0.0000 198 0.0053 37915 0.9948
## 16 - 24 20 0 0.0000 198 0.0053 37915 0.9948
## 24 - 32 28 15 0.0004 198 0.0053 37930 0.9952
## 32 - 40 36 108 0.0028 183 0.0049 38038 0.9980
## 40 - 48 44 29 0.0008 75 0.0021 38067 0.9988
## 48 - 56 52 21 0.0006 46 0.0013 38088 0.9994
## 56 - 64 60 10 0.0003 25 0.0007 38098 0.9997
## 64 - 72 68 6 0.0002 15 0.0004 38104 0.9999
## 72 - 80 76 3 0.0001 9 0.0002 38107 1.0000
## 80 - 88 84 1 0.0000 6 0.0001 38108 1.0000
## 88 - 96 92 0 0.0000 5 0.0001 38108 1.0000
## 96 - 104 100 4 0.0001 5 0.0001 38112 1.0001
## 104 - 112 108 0 0.0000 1 0.0000 38112 1.0001
## 112 - 120 116 0 0.0000 1 0.0000 38112 1.0001
## 120 - 128 124 1 0.0000 1 0.0000 38113 1.0001
## 128 - 120 124 0 0.0000 0 0.0000 38113 1.0001
# Histograma manual
barplot(tabla_frecuencia$ni,
main = "Histograma: Highway Electricity Consumption CD",
xlab = "Consumo Eléctrico (kWh)",
ylab = "Frecuencia absoluta",
col = "skyblue",
names.arg = tabla_frecuencia$Intervalo,
las = 2,
ylim = c(0, max(tabla_frecuencia$ni) + 5),
cex.names = 0.7)
# Ojivas ascendente y descendente
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "Ojivas: Frecuencias acumuladas de Highway Electricity Consumption CD",
xlab = "Consumo Eléctrico (kWh)",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja: Highway Electricity Consumption CD",
xlab = "Consumo Eléctrico (kWh)")
# Seleccionar la variable continua
variable <- na.omit(datos$Highway.Utility.Factor)
# Número de intervalos fijo
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores y superiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
lim_sup <- lim_inf + A - 1
# Marcas de clase
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i])
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 0 0 0 NaN 0 NaN 0 NaN
## 1 - 1 1 0 NaN 0 NaN 0 NaN
## 2 - 2 2 0 NaN 0 NaN 0 NaN
## 3 - 3 3 0 NaN 0 NaN 0 NaN
## 4 - 4 4 0 NaN 0 NaN 0 NaN
## 5 - 5 5 0 NaN 0 NaN 0 NaN
## 6 - 6 6 0 NaN 0 NaN 0 NaN
## 7 - 7 7 0 NaN 0 NaN 0 NaN
## 8 - 8 8 0 NaN 0 NaN 0 NaN
## 9 - 9 9 0 NaN 0 NaN 0 NaN
## 10 - 10 10 0 NaN 0 NaN 0 NaN
## 11 - 11 11 0 NaN 0 NaN 0 NaN
## 12 - 12 12 0 NaN 0 NaN 0 NaN
## 13 - 13 13 0 NaN 0 NaN 0 NaN
## 14 - 14 14 0 NaN 0 NaN 0 NaN
## 15 - 15 15 0 NaN 0 NaN 0 NaN
## 16 - 16 16 0 NaN 0 NaN 0 NaN
# Histograma manual con las frecuencias absolutas
barplot(tabla_frecuencia$ni,
main = "Histograma: Highway Utility Factor",
xlab = "Factor Utilidad en Carretera",
ylab = "Frecuencia absoluta",
col = "skyblue",
names.arg = tabla_frecuencia$Intervalo,
las = 2,
cex.names = 0.7,
ylim = c(0, max(tabla_frecuencia$ni) + 5))
# Ojivas (ascendente y descendente) con líneas conectadas
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "Ojivas Frecuencias acumuladas de Highway Utility Factor",
xlab = "Factor Utilidad en Carretera",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja (boxplot)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja: Highway Utility Factor",
xlab = "Factor Utilidad en Carretera")
# Seleccionar la variable continua
variable <- na.omit(datos$Unadjusted.Highway.MPG..FT1.)
# Número de intervalos fijo
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores y superiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
lim_sup <- lim_inf + A - 1 # corregido para evitar superposición
# Marcas de clase
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i])
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 10 5 25 0.0007 34332 0.9999 25 0.0007
## 11 - 21 16 1658 0.0483 34307 0.9992 1683 0.0490
## 22 - 32 27 14262 0.4154 32649 0.9509 15945 0.4644
## 33 - 43 38 14430 0.4203 18387 0.5355 30375 0.8847
## 44 - 54 49 3148 0.0917 3957 0.1152 33523 0.9764
## 55 - 65 60 616 0.0179 809 0.0235 34139 0.9943
## 66 - 76 71 74 0.0022 193 0.0056 34213 0.9965
## 77 - 87 82 8 0.0002 119 0.0034 34221 0.9967
## 88 - 98 93 11 0.0003 111 0.0032 34232 0.9970
## 99 - 109 104 6 0.0002 100 0.0029 34238 0.9972
## 110 - 120 115 14 0.0004 94 0.0027 34252 0.9976
## 121 - 131 126 14 0.0004 80 0.0023 34266 0.9980
## 132 - 142 137 37 0.0011 66 0.0019 34303 0.9991
## 143 - 153 148 17 0.0005 29 0.0008 34320 0.9996
## 154 - 164 159 11 0.0003 12 0.0003 34331 0.9999
## 165 - 175 170 0 0.0000 1 0.0000 34331 0.9999
## 176 - 186 181 1 0.0000 1 0.0000 34332 0.9999
# Histograma manual con las frecuencias absolutas
barplot(tabla_frecuencia$ni,
main = "Histograma: Unadjusted Highway MPG (FT1)",
xlab = "MPG sin ajustar FT1",
ylab = "Frecuencia absoluta",
col = "skyblue",
names.arg = tabla_frecuencia$Intervalo,
las = 2,
cex.names = 0.7,
ylim = c(0, max(tabla_frecuencia$ni) + 5))
# Ojivas (ascendente y descendente) con líneas conectadas
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "OjivasFrecuencias acumuladas de Unadajusted Highway MPG FT1",
xlab = "MPG sin ajustar en Carretera FT1 ",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja (boxplot)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja:Unadjusted Highway MPG FT1",
xlab = "MPG sin ajustar en Carretera FT1")
# Seleccionar la variable continua
variable <- na.omit(datos$Unadjusted.City.MPG..FT2.)
# Número de intervalos fijo
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores y superiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
lim_sup <- lim_inf + A - 1 # corregido para evitar superposición
# Marcas de clase
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i])
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 12 6 37121 0.9793 37906 1.0001 37121 0.9793
## 13 - 25 19 727 0.0192 785 0.0208 37848 0.9985
## 26 - 38 32 0 0.0000 58 0.0016 37848 0.9985
## 39 - 51 45 1 0.0000 58 0.0016 37849 0.9985
## 52 - 64 58 6 0.0002 57 0.0016 37855 0.9987
## 65 - 77 71 5 0.0001 51 0.0014 37860 0.9988
## 78 - 90 84 6 0.0002 46 0.0013 37866 0.9990
## 91 - 103 97 3 0.0001 40 0.0011 37869 0.9991
## 104 - 116 110 6 0.0002 37 0.0010 37875 0.9993
## 117 - 129 123 8 0.0002 31 0.0008 37883 0.9995
## 130 - 142 136 12 0.0003 23 0.0006 37895 0.9998
## 143 - 155 149 8 0.0002 11 0.0003 37903 1.0000
## 156 - 168 162 2 0.0001 3 0.0001 37905 1.0001
## 169 - 181 175 1 0.0000 1 0.0000 37906 1.0001
## 182 - 194 188 0 0.0000 0 0.0000 37906 1.0001
## 195 - 207 201 0 0.0000 0 0.0000 37906 1.0001
## 208 - 220 214 0 0.0000 0 0.0000 37906 1.0001
# Histograma manual con las frecuencias absolutas
barplot(tabla_frecuencia$ni,
main = "Histograma: Unadjusted City MPG (FT2)",
xlab = "MPG sin ajustar FT2",
ylab = "Frecuencia absoluta",
col = "skyblue",
names.arg = tabla_frecuencia$Intervalo,
las = 2,
cex.names = 0.7,
ylim = c(0, max(tabla_frecuencia$ni) + 5))
# Ojivas (ascendente y descendente) con líneas conectadas
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "OjivasFrecuencias acumuladas de Unadjusted City MPG FT2",
xlab = "MPG sin ajustar en Ciudad FT2 ",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja (boxplot)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja:Unadjusted City MPG FT2",
xlab = "MPG sin ajustar en Ciudad FT2")
# Seleccionar la variable continua
variable <- na.omit(datos$Unadjusted.Highway.MPG..FT2.)
# Número de intervalos fijo
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores y superiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
lim_sup <- lim_inf + A - 1 # corregido para evitar superposición
# Marcas de clase
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i])
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 10 5 36721 0.9661 38008 0.9998 36721 0.9661
## 11 - 21 16 621 0.0163 1287 0.0337 37342 0.9824
## 22 - 32 27 561 0.0148 666 0.0174 37903 0.9972
## 33 - 43 38 43 0.0011 105 0.0026 37946 0.9983
## 44 - 54 49 1 0.0000 62 0.0015 37947 0.9983
## 55 - 65 60 0 0.0000 61 0.0015 37947 0.9983
## 66 - 76 71 4 0.0001 61 0.0015 37951 0.9984
## 77 - 87 82 5 0.0001 57 0.0014 37956 0.9985
## 88 - 98 93 8 0.0002 52 0.0013 37964 0.9987
## 99 - 109 104 4 0.0001 44 0.0011 37968 0.9988
## 110 - 120 115 13 0.0003 40 0.0010 37981 0.9991
## 121 - 131 126 5 0.0001 27 0.0007 37986 0.9992
## 132 - 142 137 11 0.0003 22 0.0006 37997 0.9995
## 143 - 153 148 10 0.0003 11 0.0003 38007 0.9998
## 154 - 164 159 0 0.0000 1 0.0000 38007 0.9998
## 165 - 175 170 1 0.0000 1 0.0000 38008 0.9998
## 176 - 186 181 0 0.0000 0 0.0000 38008 0.9998
# Histograma manual con las frecuencias absolutas
barplot(tabla_frecuencia$ni,
main = "Histograma: Unadjusted Highway MPG (FT2)",
xlab = "MPG sin ajustar FT2",
ylab = "Frecuencia absoluta",
col = "skyblue",
names.arg = tabla_frecuencia$Intervalo,
las = 2,
cex.names = 0.7,
ylim = c(0, max(tabla_frecuencia$ni) + 5))
# Ojivas (ascendente y descendente) con líneas conectadas
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "OjivasFrecuencias acumuladas de Unadajusted Highway MPG FT2",
xlab = "MPG sin ajustar en Carretera FT2 ",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja (boxplot)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja:Unadjusted Highway MPG FT2",
xlab = "MPG sin ajustar en Carretera FT2")
# Seleccionar la variable continua
variable <- na.omit(datos$Combined.MPG..FT1.)
# Número de intervalos fijo
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores y superiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
lim_sup <- lim_inf + A - 1 # corregido para evitar superposición
# Marcas de clase
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i])
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 7 - 14 10.5 2742 0.0824 33291 1.0002 2742 0.0824
## 15 - 22 18.5 21203 0.6369 30549 0.9178 23945 0.7193
## 23 - 30 26.5 8079 0.2427 9346 0.2809 32024 0.9620
## 31 - 38 34.5 914 0.0275 1267 0.0382 32938 0.9895
## 39 - 46 42.5 189 0.0057 353 0.0107 33127 0.9952
## 47 - 54 50.5 48 0.0014 164 0.0050 33175 0.9966
## 55 - 62 58.5 9 0.0003 116 0.0036 33184 0.9969
## 63 - 70 66.5 3 0.0001 107 0.0033 33187 0.9970
## 71 - 78 74.5 9 0.0003 104 0.0032 33196 0.9973
## 79 - 86 82.5 6 0.0002 95 0.0029 33202 0.9975
## 87 - 94 90.5 22 0.0007 89 0.0027 33224 0.9982
## 95 - 102 98.5 17 0.0005 67 0.0020 33241 0.9987
## 103 - 110 106.5 22 0.0007 50 0.0015 33263 0.9994
## 111 - 118 114.5 18 0.0005 28 0.0008 33281 0.9999
## 119 - 126 122.5 9 0.0003 10 0.0003 33290 1.0002
## 127 - 134 130.5 0 0.0000 1 0.0000 33290 1.0002
## 135 - 142 138.5 1 0.0000 1 0.0000 33291 1.0002
# Histograma manual con las frecuencias absolutas
barplot(tabla_frecuencia$ni,
main = "Histograma: Combined MPG (FT1)",
xlab = "MPG Combinado FT1",
ylab = "Frecuencia absoluta",
col = "skyblue",
names.arg = tabla_frecuencia$Intervalo,
las = 2,
cex.names = 0.7,
ylim = c(0, max(tabla_frecuencia$ni) + 5))
# Ojivas (ascendente y descendente) con líneas conectadas
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "OjivasFrecuencias acumuladas de Combined MPG FT1",
xlab = "MPG Combinado FT1 ",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja (boxplot)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja: Combined MPG FT1",
xlab = "MPG Combinado FT1")
# Seleccionar la variable continua
variable <- na.omit(datos$Unrounded.Combined.MPG..FT1.)
# Número de intervalos fijo
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores y superiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
lim_sup <- lim_inf + A - 1 # corregido para evitar superposición
# Marcas de clase
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i])
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 7 3.5 29662 0.7998 37085 1.0001 29662 0.7998
## 8 - 15 11.5 628 0.0169 7423 0.2003 30290 0.8167
## 16 - 23 19.5 4089 0.1103 6795 0.1834 34379 0.9270
## 24 - 31 27.5 2235 0.0603 2706 0.0731 36614 0.9873
## 32 - 39 35.5 302 0.0081 471 0.0128 36916 0.9954
## 40 - 47 43.5 59 0.0016 169 0.0047 36975 0.9970
## 48 - 55 51.5 15 0.0004 110 0.0031 36990 0.9974
## 56 - 63 59.5 6 0.0002 95 0.0027 36996 0.9976
## 64 - 71 67.5 0 0.0000 89 0.0025 36996 0.9976
## 72 - 79 75.5 6 0.0002 89 0.0025 37002 0.9978
## 80 - 87 83.5 6 0.0002 83 0.0023 37008 0.9980
## 88 - 95 91.5 22 0.0006 77 0.0021 37030 0.9986
## 96 - 103 99.5 10 0.0003 55 0.0015 37040 0.9989
## 104 - 111 107.5 17 0.0005 45 0.0012 37057 0.9994
## 112 - 119 115.5 23 0.0006 28 0.0007 37080 1.0000
## 120 - 127 123.5 5 0.0001 5 0.0001 37085 1.0001
## 128 - 135 131.5 0 0.0000 0 0.0000 37085 1.0001
# Histograma manual con las frecuencias absolutas
barplot(tabla_frecuencia$ni,
main = "Histograma: Unrounded Combined MPG FT1",
xlab = "MPG Combinado sin ajustar FT1",
ylab = "Frecuencia absoluta",
col = "skyblue",
names.arg = tabla_frecuencia$Intervalo,
las = 2,
cex.names = 0.7,
ylim = c(0, max(tabla_frecuencia$ni) + 5))
# Ojivas (ascendente y descendente) con líneas conectadas
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "OjivasFrecuencias acumuladas de Unrounded Combined MPG FT1",
xlab = "MPG Combinado sin ajustar FT1",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja (boxplot)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja: Unrounded Combined MPG FT1",
xlab = "MPG Combinado sin ajustar FT1")
# Seleccionar la variable continua
variable <- na.omit(datos$Combined.MPG..FT2.)
# Número de intervalos fijo
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores y superiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
lim_sup <- lim_inf + A - 1 # corregido para evitar superposición
# Marcas de clase
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i])
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 7 3.5 36675 0.9648 38015 1.0001 36675 0.9648
## 8 - 15 11.5 1001 0.0263 1340 0.0353 37676 0.9911
## 16 - 23 19.5 286 0.0075 339 0.0090 37962 0.9986
## 24 - 31 27.5 0 0.0000 53 0.0015 37962 0.9986
## 32 - 39 35.5 0 0.0000 53 0.0015 37962 0.9986
## 40 - 47 43.5 3 0.0001 53 0.0015 37965 0.9987
## 48 - 55 51.5 7 0.0002 50 0.0014 37972 0.9989
## 56 - 63 59.5 5 0.0001 43 0.0012 37977 0.9990
## 64 - 71 67.5 2 0.0001 38 0.0011 37979 0.9991
## 72 - 79 75.5 5 0.0001 36 0.0010 37984 0.9992
## 80 - 87 83.5 8 0.0002 31 0.0009 37992 0.9994
## 88 - 95 91.5 10 0.0003 23 0.0007 38002 0.9997
## 96 - 103 99.5 6 0.0002 13 0.0004 38008 0.9999
## 104 - 111 107.5 2 0.0001 7 0.0002 38010 1.0000
## 112 - 119 115.5 4 0.0001 5 0.0001 38014 1.0001
## 120 - 127 123.5 0 0.0000 1 0.0000 38014 1.0001
## 128 - 135 131.5 1 0.0000 1 0.0000 38015 1.0001
# Histograma manual con las frecuencias absolutas
barplot(tabla_frecuencia$ni,
main = "Histograma: Combined MPG (FT2)",
xlab = "MPG Combinado FT2",
ylab = "Frecuencia absoluta",
col = "skyblue",
names.arg = tabla_frecuencia$Intervalo,
las = 2,
cex.names = 0.7,
ylim = c(0, max(tabla_frecuencia$ni) + 5))
# Ojivas (ascendente y descendente) con líneas conectadas
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "OjivasFrecuencias acumuladas de Combined MPG FT2",
xlab = "MPG Combinado FT2",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja (boxplot)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja: Combined MPG FT2",
xlab = "MPG Combinado FT2")
# Seleccionar la variable continua
variable <- na.omit(datos$Unrounded.Combined.MPG..FT2.)
# Número de intervalos fijo
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores y superiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
lim_sup <- lim_inf + A - 1 # corregido para evitar superposición
# Marcas de clase
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i])
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 7 3.5 37225 0.9783 38050 1.0001 37225 0.9783
## 8 - 15 11.5 595 0.0156 825 0.0218 37820 0.9939
## 16 - 23 19.5 185 0.0049 230 0.0062 38005 0.9988
## 24 - 31 27.5 0 0.0000 45 0.0013 38005 0.9988
## 32 - 39 35.5 0 0.0000 45 0.0013 38005 0.9988
## 40 - 47 43.5 4 0.0001 45 0.0013 38009 0.9989
## 48 - 55 51.5 6 0.0002 41 0.0012 38015 0.9991
## 56 - 63 59.5 6 0.0002 35 0.0010 38021 0.9993
## 64 - 71 67.5 3 0.0001 29 0.0008 38024 0.9994
## 72 - 79 75.5 4 0.0001 26 0.0007 38028 0.9995
## 80 - 87 83.5 7 0.0002 22 0.0006 38035 0.9997
## 88 - 95 91.5 1 0.0000 15 0.0004 38036 0.9997
## 96 - 103 99.5 6 0.0002 14 0.0004 38042 0.9999
## 104 - 111 107.5 3 0.0001 8 0.0002 38045 1.0000
## 112 - 119 115.5 4 0.0001 5 0.0001 38049 1.0001
## 120 - 127 123.5 0 0.0000 1 0.0000 38049 1.0001
## 128 - 135 131.5 1 0.0000 1 0.0000 38050 1.0001
# Histograma manual con las frecuencias absolutas
barplot(tabla_frecuencia$ni,
main = "Histograma: Unrounded Combined MPG FT2",
xlab = "MPG Combinado sin ajustar FT2",
ylab = "Frecuencia absoluta",
col = "skyblue",
names.arg = tabla_frecuencia$Intervalo,
las = 2,
cex.names = 0.7,
ylim = c(0, max(tabla_frecuencia$ni) + 5))
# Ojivas (ascendente y descendente) con líneas conectadas
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "OjivasFrecuencias acumuladas de Unrounded Combined MPG FT2",
xlab = "MPG Combinado sin ajustar FT2",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja (boxplot)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja: Unrounded Combined MPG FT2",
xlab = "MPG Combinado sin ajustar FT2")
# Seleccionar la variable continua
variable <- na.omit(datos$Combined.Electricity.Consumption)
# Número de intervalos fijo
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores y superiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
lim_sup <- lim_inf + A - 1 # corregido para evitar superposición
# Marcas de clase
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i])
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 7 3.5 37915 0.9955 38088 1.0000 37915 0.9955
## 8 - 15 11.5 0 0.0000 173 0.0045 37915 0.9955
## 16 - 23 19.5 0 0.0000 173 0.0045 37915 0.9955
## 24 - 31 27.5 43 0.0011 173 0.0045 37958 0.9966
## 32 - 39 35.5 72 0.0019 130 0.0034 38030 0.9985
## 40 - 47 43.5 24 0.0006 58 0.0015 38054 0.9991
## 48 - 55 51.5 11 0.0003 34 0.0009 38065 0.9994
## 56 - 63 59.5 14 0.0004 23 0.0006 38079 0.9998
## 64 - 71 67.5 4 0.0001 9 0.0002 38083 0.9999
## 72 - 79 75.5 1 0.0000 5 0.0001 38084 0.9999
## 80 - 87 83.5 0 0.0000 4 0.0001 38084 0.9999
## 88 - 95 91.5 1 0.0000 4 0.0001 38085 0.9999
## 96 - 103 99.5 2 0.0001 3 0.0001 38087 1.0000
## 104 - 111 107.5 0 0.0000 1 0.0000 38087 1.0000
## 112 - 119 115.5 0 0.0000 1 0.0000 38087 1.0000
## 120 - 127 123.5 1 0.0000 1 0.0000 38088 1.0000
## 128 - 135 131.5 0 0.0000 0 0.0000 38088 1.0000
# Histograma manual con las frecuencias absolutas
barplot(tabla_frecuencia$ni,
main = "Histograma: Combined Electricity Combustion",
xlab = "Combustion Elecrica Combinada",
ylab = "Frecuencia absoluta",
col = "skyblue",
names.arg = tabla_frecuencia$Intervalo,
las = 2,
cex.names = 0.7,
ylim = c(0, max(tabla_frecuencia$ni) + 5))
# Ojivas (ascendente y descendente) con líneas conectadas
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "OjivasFrecuencias acumuladas de Combined Electricity Combustion",
xlab = "Combustion Elecrica Combinada",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja (boxplot)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja: Combined Electricity Combustion",
xlab = "Combustion Elecrica Combinada")
# Seleccionar la variable continua
variable <- na.omit(datos$Combined.Gasoline.Consumption..CD.)
# Número de intervalos fijo
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores y superiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
lim_sup <- lim_inf + A - 1 # corregido para evitar superposición
# Marcas de clase
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i])
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 0 0 0 NaN 0 NaN 0 NaN
## 1 - 1 1 0 NaN 0 NaN 0 NaN
## 2 - 2 2 0 NaN 0 NaN 0 NaN
## 3 - 3 3 0 NaN 0 NaN 0 NaN
## 4 - 4 4 0 NaN 0 NaN 0 NaN
## 5 - 5 5 0 NaN 0 NaN 0 NaN
## 6 - 6 6 0 NaN 0 NaN 0 NaN
## 7 - 7 7 0 NaN 0 NaN 0 NaN
## 8 - 8 8 0 NaN 0 NaN 0 NaN
## 9 - 9 9 0 NaN 0 NaN 0 NaN
## 10 - 10 10 0 NaN 0 NaN 0 NaN
## 11 - 11 11 0 NaN 0 NaN 0 NaN
## 12 - 12 12 0 NaN 0 NaN 0 NaN
## 13 - 13 13 0 NaN 0 NaN 0 NaN
## 14 - 14 14 0 NaN 0 NaN 0 NaN
## 15 - 15 15 0 NaN 0 NaN 0 NaN
## 16 - 16 16 0 NaN 0 NaN 0 NaN
# Histograma manual con las frecuencias absolutas
barplot(tabla_frecuencia$ni,
main = "Histograma: Combined Gasoline Combustion",
xlab = "Combustion de Gasolina Combinada",
ylab = "Frecuencia absoluta",
col = "skyblue",
names.arg = tabla_frecuencia$Intervalo,
las = 2,
cex.names = 0.7,
ylim = c(0, max(tabla_frecuencia$ni) + 5))
# Ojivas (ascendente y descendente) con líneas conectadas
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "OjivasFrecuencias acumuladas de Combined Gasoline Combustion",
xlab = "Combustion de Gasolina Combinada",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja (boxplot)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja: Combined Gasoline Combustion",
xlab = "Combustion de Gasolina Combinada")
# Seleccionar la variable continua
variable <- na.omit(datos$Combined.Utility.Factor)
# Número de datos y número de intervalos (regla de Sturges)
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud del intervalo
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
# Límites superiores (el último se ajusta al máximo real)
lim_sup <- c(lim_inf[-1], max(variable) + 1e-4)
# Marcas de clase (punto medio)
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i]) # Incluye el último valor
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla de frecuencia
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 1 0.50 38113 1 38113 1 38113 1
## 1 - 2 1.50 0 0 0 0 38113 1
## 2 - 3 2.50 0 0 0 0 38113 1
## 3 - 4 3.50 0 0 0 0 38113 1
## 4 - 5 4.50 0 0 0 0 38113 1
## 5 - 6 5.50 0 0 0 0 38113 1
## 6 - 7 6.50 0 0 0 0 38113 1
## 7 - 8 7.50 0 0 0 0 38113 1
## 8 - 9 8.50 0 0 0 0 38113 1
## 9 - 10 9.50 0 0 0 0 38113 1
## 10 - 11 10.50 0 0 0 0 38113 1
## 11 - 12 11.50 0 0 0 0 38113 1
## 12 - 13 12.50 0 0 0 0 38113 1
## 13 - 14 13.50 0 0 0 0 38113 1
## 14 - 15 14.50 0 0 0 0 38113 1
## 15 - 16 15.50 0 0 0 0 38113 1
## 16 - 0.89 8.44 0 0 0 0 38113 1
# Histograma manual con las frecuencias absolutas
barplot(height = ni,
names.arg = tabla_frecuencia$Intervalo,
main = "Histograma: Combined Utility Factor",
xlab = "Factor Utilidad Combinada",
ylab = "Frecuencia absoluta",
col = "skyblue",
las = 2,
cex.names = 0.7,
ylim = c(0, max(ni) + 5))
# Ojivas (ascendente y descendente)
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "Ojivas: Frecuencias acumuladas de Combined Utility Factor",
xlab = "Factor Utilidad Combinada",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja (boxplot)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja: Combined Utility Factor",
xlab = "Factor Utilidad Combinada")
# Seleccionar la variable continua
variable <- na.omit(datos$Annual.Fuel.Cost..FT1.)
# Número de datos y número de intervalos (regla de Sturges)
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud del intervalo
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
# Límites superiores (el último se ajusta al máximo real)
lim_sup <- c(lim_inf[-1], max(variable) + 1e-4)
# Marcas de clase (punto medio)
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i]) # Incluye el último valor
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla de frecuencia
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 500 - 827 663.5 178 0.0047 38113 1.0001 178 0.0047
## 827 - 1154 990.5 1361 0.0357 37935 0.9954 1539 0.0404
## 1154 - 1481 1317.5 5137 0.1348 36574 0.9597 6676 0.1752
## 1481 - 1808 1644.5 8655 0.2271 31437 0.8249 15331 0.4023
## 1808 - 2135 1971.5 9834 0.2580 22782 0.5978 25165 0.6603
## 2135 - 2462 2298.5 6604 0.1733 12948 0.3398 31769 0.8336
## 2462 - 2789 2625.5 3700 0.0971 6344 0.1665 35469 0.9307
## 2789 - 3116 2952.5 1379 0.0362 2644 0.0694 36848 0.9669
## 3116 - 3443 3279.5 658 0.0173 1265 0.0332 37506 0.9842
## 3443 - 3770 3606.5 318 0.0083 607 0.0159 37824 0.9925
## 3770 - 4097 3933.5 189 0.0050 289 0.0076 38013 0.9975
## 4097 - 4424 4260.5 85 0.0022 100 0.0026 38098 0.9997
## 4424 - 4751 4587.5 6 0.0002 15 0.0004 38104 0.9999
## 4751 - 5078 4914.5 0 0.0000 9 0.0002 38104 0.9999
## 5078 - 5405 5241.5 4 0.0001 9 0.0002 38108 1.0000
## 5405 - 5732 5568.5 0 0.0000 5 0.0001 38108 1.0000
## 5732 - 6050 5891.0 5 0.0001 5 0.0001 38113 1.0001
# Histograma manual con las frecuencias absolutas
barplot(height = ni,
names.arg = tabla_frecuencia$Intervalo,
main = "Histograma: Annual Fuel Cost FT1",
xlab = "Costo Anual del Combustible FT1",
ylab = "Frecuencia absoluta",
col = "skyblue",
las = 2,
cex.names = 0.7,
ylim = c(0, max(ni) + 5))
# Ojivas (ascendente y descendente)
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "Ojivas: Frecuencias acumuladas de Annual Fuel Cost FT1",
xlab = "Costo Anual del Combustible FT1",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja (boxplot)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja: Annual Fuel Cost FT1",
xlab = "Costo Anual del Combustible FT1")
# Seleccionar la variable continua
variable <- na.omit(datos$Annual.Fuel.Cost..FT2.)
# Número de datos y número de intervalos (regla de Sturges)
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud del intervalo
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
# Límites superiores (el último se ajusta al máximo real)
lim_sup <- c(lim_inf[-1], max(variable) + 1e-4)
# Marcas de clase (punto medio)
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i]) # Incluye el último valor
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla de frecuencia
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 215 107.5 36720 0.9635 38113 1.0000 36720 0.9635
## 215 - 430 322.5 0 0.0000 1393 0.0365 36720 0.9635
## 430 - 645 537.5 6 0.0002 1393 0.0365 36726 0.9637
## 645 - 860 752.5 9 0.0002 1387 0.0363 36735 0.9639
## 860 - 1075 967.5 1 0.0000 1378 0.0361 36736 0.9639
## 1075 - 1290 1182.5 6 0.0002 1377 0.0361 36742 0.9641
## 1290 - 1505 1397.5 51 0.0013 1371 0.0359 36793 0.9654
## 1505 - 1720 1612.5 116 0.0030 1320 0.0346 36909 0.9684
## 1720 - 1935 1827.5 122 0.0032 1204 0.0316 37031 0.9716
## 1935 - 2150 2042.5 240 0.0063 1082 0.0284 37271 0.9779
## 2150 - 2365 2257.5 187 0.0049 842 0.0221 37458 0.9828
## 2365 - 2580 2472.5 144 0.0038 655 0.0172 37602 0.9866
## 2580 - 2795 2687.5 265 0.0070 511 0.0134 37867 0.9936
## 2795 - 3010 2902.5 187 0.0049 246 0.0064 38054 0.9985
## 3010 - 3225 3117.5 51 0.0013 59 0.0015 38105 0.9998
## 3225 - 3440 3332.5 0 0.0000 8 0.0002 38105 0.9998
## 3440 - 3650 3545.0 8 0.0002 8 0.0002 38113 1.0000
# Histograma manual con las frecuencias absolutas
barplot(height = ni,
names.arg = tabla_frecuencia$Intervalo,
main = "Histograma: Annual Fuel Cost FT2",
xlab = "Costo Anual del Combustible FT2",
ylab = "Frecuencia absoluta",
col = "skyblue",
las = 2,
cex.names = 0.7,
ylim = c(0, max(ni) + 5))
# Ojivas (ascendente y descendente)
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "Ojivas: Frecuencias acumuladas de Annual Fuel Cost FT2",
xlab = "Costo Anual del Combustible FT2",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja (boxplot)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja: Annual Fuel Cost FT2",
xlab = "Costo Anual del Combustible FT2")
#Save or Spend 5 Year
# Seleccionar la variable continua
variable <- na.omit(datos$Save.or.Spend..5.Year.)
# Número de datos y número de intervalos (regla de Sturges)
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud del intervalo
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
# Límites superiores (el último se ajusta al máximo real)
lim_sup <- c(lim_inf[-1], max(variable) + 1e-4)
# Marcas de clase (punto medio)
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i]) # Incluye el último valor
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla de frecuencia
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## -23500 - -21867 -22683.5 5 0.0001 38113 1.0000 5 0.0001
## -21867 - -20234 -21050.5 0 0.0000 38108 0.9999 5 0.0001
## -20234 - -18601 -19417.5 4 0.0001 38108 0.9999 9 0.0002
## -18601 - -16968 -17784.5 0 0.0000 38104 0.9998 9 0.0002
## -16968 - -15335 -16151.5 6 0.0002 38104 0.9998 15 0.0004
## -15335 - -13702 -14518.5 85 0.0022 38098 0.9996 100 0.0026
## -13702 - -12069 -12885.5 189 0.0050 38013 0.9974 289 0.0076
## -12069 - -10436 -11252.5 318 0.0083 37824 0.9924 607 0.0159
## -10436 - -8803 -9619.5 658 0.0173 37506 0.9841 1265 0.0332
## -8803 - -7170 -7986.5 1379 0.0362 36848 0.9668 2644 0.0694
## -7170 - -5537 -6353.5 3698 0.0970 35469 0.9306 6342 0.1664
## -5537 - -3904 -4720.5 6606 0.1733 31771 0.8336 12948 0.3397
## -3904 - -2271 -3087.5 9829 0.2579 25165 0.6603 22777 0.5976
## -2271 - -638 -1454.5 8652 0.2270 15336 0.4024 31429 0.8246
## -638 - 995 178.5 5137 0.1348 6684 0.1754 36566 0.9594
## 995 - 2628 1811.5 1358 0.0356 1547 0.0406 37924 0.9950
## 2628 - 4250 3439.0 189 0.0050 189 0.0050 38113 1.0000
# Histograma manual con las frecuencias absolutas
barplot(height = ni,
names.arg = tabla_frecuencia$Intervalo,
main = "Histograma: Save or Spend 5 Year",
xlab = "Ahorrar o gastar 5 años",
ylab = "Frecuencia absoluta",
col = "skyblue",
las = 2,
cex.names = 0.7,
ylim = c(0, max(ni) + 5))
# Ojivas (ascendente y descendente)
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "Ojivas: Frecuencias acumuladas de Save or Spend 5 Year",
xlab = "Ahorrar o gastar 5 años",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja (boxplot)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja: Save or Spend 5 Year",
xlab = "Ahorrar o gastar 5 años")
# Seleccionar la variable continua
variable <- na.omit(datos$Annual.Consumption.in.Barrels..FT1.)
# Número de datos y número de intervalos (regla de Sturges)
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud del intervalo
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
# Límites superiores (el último se ajusta al máximo real)
lim_sup <- c(lim_inf[-1], max(variable) + 1e-4)
# Marcas de clase (punto medio)
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i]) # Incluye el último valor
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla de frecuencia
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0.06 - 3.06 1.56 200 0.0052 38113 0.9997 200 0.0052
## 3.06 - 6.06 4.56 36 0.0009 37913 0.9945 236 0.0061
## 6.06 - 9.06 7.56 268 0.0070 37877 0.9936 504 0.0131
## 9.06 - 12.06 10.56 2417 0.0634 37609 0.9866 2921 0.0765
## 12.06 - 15.06 13.56 9167 0.2405 35192 0.9232 12088 0.3170
## 15.06 - 18.06 16.56 10129 0.2658 26025 0.6827 22217 0.5828
## 18.06 - 21.06 19.56 8591 0.2254 15896 0.4169 30808 0.8082
## 21.06 - 24.06 22.56 4556 0.1195 7305 0.1915 35364 0.9277
## 24.06 - 27.06 25.56 1308 0.0343 2749 0.0720 36672 0.9620
## 27.06 - 30.06 28.56 1219 0.0320 1441 0.0377 37891 0.9940
## 30.06 - 33.06 31.56 135 0.0035 222 0.0057 38026 0.9975
## 33.06 - 36.06 34.56 0 0.0000 87 0.0022 38026 0.9975
## 36.06 - 39.06 37.56 47 0.0012 87 0.0022 38073 0.9987
## 39.06 - 42.06 40.56 35 0.0009 40 0.0010 38108 0.9996
## 42.06 - 45.06 43.56 0 0.0000 5 0.0001 38108 0.9996
## 45.06 - 48.06 46.56 5 0.0001 5 0.0001 38113 0.9997
## 48.06 - 47.09 47.57 0 0.0000 0 0.0000 38113 0.9997
# Histograma manual con las frecuencias absolutas
barplot(height = ni,
names.arg = tabla_frecuencia$Intervalo,
main = "Histograma: Annual Consumption in Barrels FT1",
xlab = "Consumo anual en barriles FT1",
ylab = "Frecuencia absoluta",
col = "skyblue",
las = 2,
cex.names = 0.7,
ylim = c(0, max(ni) + 5))
# Ojivas (ascendente y descendente)
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "Ojivas: Frecuencias acumuladas de Annual Consumption in Barrels FT1",
xlab = "Consumo anual en barriles FT1",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja (boxplot)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja: Annual Consumption in Barrels FT1",
xlab = "Consumo anual en barriles FT1")
# Seleccionar la variable continua
variable <- na.omit(datos$Annual.Consumption.in.Barrels..FT2.)
# Número de datos y número de intervalos (regla de Sturges)
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud del intervalo
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
# Límites superiores (el último se ajusta al máximo real)
lim_sup <- c(lim_inf[-1], max(variable) + 1e-4)
# Marcas de clase (punto medio)
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i]) # Incluye el último valor
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla de frecuencia
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 2 1.00 36715 0.9633 38113 1.0000 36715 0.9633
## 2 - 4 3.00 72 0.0019 1398 0.0367 36787 0.9652
## 4 - 6 5.00 674 0.0177 1326 0.0348 37461 0.9829
## 6 - 8 7.00 592 0.0155 652 0.0171 38053 0.9984
## 8 - 10 9.00 58 0.0015 60 0.0016 38111 0.9999
## 10 - 12 11.00 0 0.0000 2 0.0001 38111 0.9999
## 12 - 14 13.00 0 0.0000 2 0.0001 38111 0.9999
## 14 - 16 15.00 0 0.0000 2 0.0001 38111 0.9999
## 16 - 18 17.00 0 0.0000 2 0.0001 38111 0.9999
## 18 - 20 19.00 2 0.0001 2 0.0001 38113 1.0000
## 20 - 22 21.00 0 0.0000 0 0.0000 38113 1.0000
## 22 - 24 23.00 0 0.0000 0 0.0000 38113 1.0000
## 24 - 26 25.00 0 0.0000 0 0.0000 38113 1.0000
## 26 - 28 27.00 0 0.0000 0 0.0000 38113 1.0000
## 28 - 30 29.00 0 0.0000 0 0.0000 38113 1.0000
## 30 - 32 31.00 0 0.0000 0 0.0000 38113 1.0000
## 32 - 18.31 25.16 0 0.0000 0 0.0000 38113 1.0000
# Histograma manual con las frecuencias absolutas
barplot(height = ni,
names.arg = tabla_frecuencia$Intervalo,
main = "Histograma: Annual Consumption in Barrels FT2",
xlab = "Consumo anual en barriles FT2",
ylab = "Frecuencia absoluta",
col = "skyblue",
las = 2,
cex.names = 0.7,
ylim = c(0, max(ni) + 5))
# Ojivas (ascendente y descendente)
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "Ojivas: Frecuencias acumuladas de Annual Consumption in Barrels FT2",
xlab = "Consumo anual en barriles FT2",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja (boxplot)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja: Annual Consumption in Barrels FT2",
xlab = "Consumo anual en barriles FT2")
# Seleccionar la variable continua
variable <- na.omit(datos$Tailpipe.CO2..FT1.)
# Número de datos y número de intervalos (regla de Sturges)
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud del intervalo
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
# Límites superiores (el último se ajusta al máximo real)
lim_sup <- c(lim_inf[-1], max(variable) + 1e-4)
# Marcas de clase (punto medio)
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i]) # Incluye el último valor
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla de frecuencia
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## -1 - 49 24 32090 0.8420 38113 1.0000 32090 0.8420
## 49 - 99 74 12 0.0003 6023 0.1580 32102 0.8423
## 99 - 149 124 20 0.0005 6011 0.1577 32122 0.8428
## 149 - 199 174 30 0.0008 5991 0.1572 32152 0.8436
## 199 - 249 224 118 0.0031 5961 0.1564 32270 0.8467
## 249 - 299 274 470 0.0123 5843 0.1533 32740 0.8590
## 299 - 349 324 1119 0.0294 5373 0.1410 33859 0.8884
## 349 - 399 374 1159 0.0304 4254 0.1116 35018 0.9188
## 399 - 449 424 1131 0.0297 3095 0.0812 36149 0.9485
## 449 - 499 474 894 0.0235 1964 0.0515 37043 0.9720
## 499 - 549 524 439 0.0115 1070 0.0280 37482 0.9835
## 549 - 599 574 290 0.0076 631 0.0165 37772 0.9911
## 599 - 649 624 206 0.0054 341 0.0089 37978 0.9965
## 649 - 699 674 76 0.0020 135 0.0035 38054 0.9985
## 699 - 749 724 46 0.0012 59 0.0015 38100 0.9997
## 749 - 799 774 9 0.0002 13 0.0003 38109 0.9999
## 799 - 847 823 4 0.0001 4 0.0001 38113 1.0000
# Histograma manual con las frecuencias absolutas
barplot(height = ni,
names.arg = tabla_frecuencia$Intervalo,
main = "Histograma: Tailpipe CO2 FT1",
xlab = "Tubo de escape CO2 FT1",
ylab = "Frecuencia absoluta",
col = "skyblue",
las = 2,
cex.names = 0.7,
ylim = c(0, max(ni) + 5))
# Ojivas (ascendente y descendente)
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "Ojivas: Frecuencias acumuladas de Tailpipe CO2 FT1",
xlab = "Tubo de escape CO2 FT1",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja (boxplot)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja:Tailpipe CO2 FT1",
xlab = "Tubo de escape CO2 FT1")
# Seleccionar la variable continua
variable <- na.omit(datos$Tailpipe.CO2.in.Grams.Mile..FT1.)
# Número de intervalos fijo
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores y superiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
lim_sup <- lim_inf + A - 1 # corregido para evitar superposición
# Marcas de clase
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i])
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 74 37 139 0.0037 37984 1.0001 139 0.0037
## 75 - 149 112 30 0.0008 37845 0.9964 169 0.0045
## 150 - 224 187 208 0.0055 37815 0.9956 377 0.0100
## 225 - 299 262 1242 0.0327 37607 0.9901 1619 0.0427
## 300 - 374 337 5928 0.1561 36365 0.9574 7547 0.1988
## 375 - 449 412 10961 0.2886 30437 0.8013 18508 0.4874
## 450 - 524 487 9623 0.2533 19476 0.5127 28131 0.7407
## 525 - 599 562 4983 0.1312 9853 0.2594 33114 0.8719
## 600 - 674 637 2152 0.0567 4870 0.1282 35266 0.9286
## 675 - 749 712 2025 0.0533 2718 0.0715 37291 0.9819
## 750 - 824 787 470 0.0124 693 0.0182 37761 0.9943
## 825 - 899 862 136 0.0036 223 0.0058 37897 0.9979
## 900 - 974 937 0 0.0000 87 0.0022 37897 0.9979
## 975 - 1049 1012 47 0.0012 87 0.0022 37944 0.9991
## 1050 - 1124 1087 35 0.0009 40 0.0010 37979 1.0000
## 1125 - 1199 1162 0 0.0000 5 0.0001 37979 1.0000
## 1200 - 1274 1237 5 0.0001 5 0.0001 37984 1.0001
# Histograma manual con las frecuencias absolutas
barplot(height = ni,
names.arg = tabla_frecuencia$Intervalo,
main = "Histograma: Tailpipe CO2 (g/mi) FT1",
xlab = "Emisión de CO2 (g/mi)FT1",
ylab = "Frecuencia absoluta",
col = "skyblue",
las = 2,
cex.names = 0.7,
ylim = c(0, max(ni) + 5))
# Ojivas (ascendente y descendente) con líneas conectadas
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "OjivasFrecuencias acumuladas de Tailpipe CO2 (g/mi) FT1",
xlab = "Emisión de CO2 (g/mi)FT1",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja (boxplot)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja: Tailpipe CO2 (g/mi) FT1",
xlab = "Emisión de CO2 (g/mi)FT1")
# Seleccionar la variable continua
variable <- na.omit(datos$Tailpipe.CO2..FT2.)
# Número de datos y número de intervalos (regla de Sturges)
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud del intervalo
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
# Límites superiores (el último se ajusta al máximo real)
lim_sup <- c(lim_inf[-1], max(variable) + 1e-4)
# Marcas de clase (punto medio)
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i]) # Incluye el último valor
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla de frecuencia
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## -1 - 41 20 37601 0.9866 38113 1.0001 37601 0.9866
## 41 - 83 62 0 0.0000 512 0.0135 37601 0.9866
## 83 - 125 104 0 0.0000 512 0.0135 37601 0.9866
## 125 - 167 146 0 0.0000 512 0.0135 37601 0.9866
## 167 - 209 188 0 0.0000 512 0.0135 37601 0.9866
## 209 - 251 230 0 0.0000 512 0.0135 37601 0.9866
## 251 - 293 272 16 0.0004 512 0.0135 37617 0.9870
## 293 - 335 314 17 0.0004 496 0.0131 37634 0.9874
## 335 - 377 356 60 0.0016 479 0.0127 37694 0.9890
## 377 - 419 398 84 0.0022 419 0.0111 37778 0.9912
## 419 - 461 440 97 0.0025 335 0.0089 37875 0.9937
## 461 - 503 482 87 0.0023 238 0.0064 37962 0.9960
## 503 - 545 524 31 0.0008 151 0.0041 37993 0.9968
## 545 - 587 566 48 0.0013 120 0.0033 38041 0.9981
## 587 - 629 608 44 0.0012 72 0.0020 38085 0.9993
## 629 - 671 650 10 0.0003 28 0.0008 38095 0.9996
## 671 - 713 692 18 0.0005 18 0.0005 38113 1.0001
# Histograma manual con las frecuencias absolutas
barplot(height = ni,
names.arg = tabla_frecuencia$Intervalo,
main = "Histograma: Tailpipe CO2 FT2",
xlab = "Tubo de escape CO2 FT2",
ylab = "Frecuencia absoluta",
col = "skyblue",
las = 2,
cex.names = 0.7,
ylim = c(0, max(ni) + 5))
# Ojivas (ascendente y descendente)
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "Ojivas: Frecuencias acumuladas de Tailpipe CO2 FT2",
xlab = "Tubo de escape CO2 FT2",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja (boxplot)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja:Tailpipe CO2 FT2",
xlab = "Tubo de escape CO2 FT2")
# Seleccionar la variable continua
variable <- na.omit(datos$Tailpipe.CO2.in.Grams.Mile..FT2.)
# Número de intervalos fijo
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores y superiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
lim_sup <- lim_inf + A - 1 # corregido para evitar superposición
# Marcas de clase
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i])
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 41 20.5 36740 0.9643 38099 0.9999 36740 0.9643
## 42 - 83 62.5 0 0.0000 1359 0.0356 36740 0.9643
## 84 - 125 104.5 0 0.0000 1359 0.0356 36740 0.9643
## 126 - 167 146.5 0 0.0000 1359 0.0356 36740 0.9643
## 168 - 209 188.5 0 0.0000 1359 0.0356 36740 0.9643
## 210 - 251 230.5 0 0.0000 1359 0.0356 36740 0.9643
## 252 - 293 272.5 20 0.0005 1359 0.0356 36760 0.9648
## 294 - 335 314.5 31 0.0008 1339 0.0351 36791 0.9656
## 336 - 377 356.5 113 0.0030 1308 0.0343 36904 0.9686
## 378 - 419 398.5 183 0.0048 1195 0.0313 37087 0.9734
## 420 - 461 440.5 172 0.0045 1012 0.0265 37259 0.9779
## 462 - 503 482.5 183 0.0048 840 0.0220 37442 0.9827
## 504 - 545 524.5 154 0.0040 657 0.0172 37596 0.9867
## 546 - 587 566.5 242 0.0064 503 0.0132 37838 0.9931
## 588 - 629 608.5 194 0.0051 261 0.0068 38032 0.9982
## 630 - 671 650.5 16 0.0004 67 0.0017 38048 0.9986
## 672 - 713 692.5 51 0.0013 51 0.0013 38099 0.9999
# Histograma manual con las frecuencias absolutas
barplot(height = ni,
names.arg = tabla_frecuencia$Intervalo,
main = "Histograma: Tailpipe CO2 (g/mi) FT2",
xlab = "Emisión de CO2 (g/mi)FT2",
ylab = "Frecuencia absoluta",
col = "skyblue",
las = 2,
cex.names = 0.7,
ylim = c(0, max(ni) + 5))
# Ojivas (ascendente y descendente) con líneas conectadas
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "OjivasFrecuencias acumuladas de Tailpipe CO2 (g/mi) FT2",
xlab = "Emisión de CO2 (g/mi)FT2",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja (boxplot)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja: Tailpipe CO2 (g/mi) FT2",
xlab = "Emisión de CO2 (g/mi)FT2")
# Seleccionar la variable continua
variable <- na.omit(datos$X2D.Passenger.Volume)
# Número de datos y número de intervalos (regla de Sturges)
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud del intervalo
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
# Límites superiores (el último se ajusta al máximo real)
lim_sup <- c(lim_inf[-1], max(variable) + 1e-4)
# Marcas de clase (punto medio)
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i]) # Incluye el último valor
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla de frecuencia
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 12 6 31881 0.8365 38113 1.0000 31881 0.8365
## 12 - 24 18 0 0.0000 6232 0.1635 31881 0.8365
## 24 - 36 30 1 0.0000 6232 0.1635 31882 0.8365
## 36 - 48 42 22 0.0006 6231 0.1635 31904 0.8371
## 48 - 60 54 183 0.0048 6209 0.1629 32087 0.8419
## 60 - 72 66 552 0.0145 6026 0.1581 32639 0.8564
## 72 - 84 78 2048 0.0537 5474 0.1436 34687 0.9101
## 84 - 96 90 2714 0.0712 3426 0.0899 37401 0.9813
## 96 - 108 102 668 0.0175 712 0.0187 38069 0.9988
## 108 - 120 114 37 0.0010 44 0.0012 38106 0.9998
## 120 - 132 126 0 0.0000 7 0.0002 38106 0.9998
## 132 - 144 138 0 0.0000 7 0.0002 38106 0.9998
## 144 - 156 150 0 0.0000 7 0.0002 38106 0.9998
## 156 - 168 162 0 0.0000 7 0.0002 38106 0.9998
## 168 - 180 174 0 0.0000 7 0.0002 38106 0.9998
## 180 - 192 186 0 0.0000 7 0.0002 38106 0.9998
## 192 - 194 193 7 0.0002 7 0.0002 38113 1.0000
# Histograma manual con las frecuencias absolutas
barplot(height = ni,
names.arg = tabla_frecuencia$Intervalo,
main = "Histograma: 2D Passenger Volumen",
xlab = "Volumen de pasajeros 2D",
ylab = "Frecuencia absoluta",
col = "skyblue",
las = 2,
cex.names = 0.7,
ylim = c(0, max(ni) + 5))
# Ojivas (ascendente y descendente)
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "Ojivas: Frecuencias acumuladas de 2D Passenger Volumen",
xlab = "Volumen de pasajeros 2D",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja (boxplot)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja:2D Passenger Volumen",
xlab = "Volumen de pasajeros 2D")
# Seleccionar la variable continua
variable <- na.omit(datos$X2D.Luggage.Volume)
# Número de datos y número de intervalos (regla de Sturges)
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud del intervalo
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
# Límites superiores (el último se ajusta al máximo real)
lim_sup <- c(lim_inf[-1], max(variable) + 1e-4)
# Marcas de clase (punto medio)
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i]) # Incluye el último valor
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla de frecuencia
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 3 1.5 31851 0.8357 38113 1.0001 31851 0.8357
## 3 - 6 4.5 678 0.0178 6262 0.1644 32529 0.8535
## 6 - 9 7.5 698 0.0183 5584 0.1466 33227 0.8718
## 9 - 12 10.5 1745 0.0458 4886 0.1283 34972 0.9176
## 12 - 15 13.5 2064 0.0542 3141 0.0825 37036 0.9718
## 15 - 18 16.5 955 0.0251 1077 0.0283 37991 0.9969
## 18 - 21 19.5 23 0.0006 122 0.0032 38014 0.9975
## 21 - 24 22.5 78 0.0020 99 0.0026 38092 0.9995
## 24 - 27 25.5 3 0.0001 21 0.0006 38095 0.9996
## 27 - 30 28.5 0 0.0000 18 0.0005 38095 0.9996
## 30 - 33 31.5 11 0.0003 18 0.0005 38106 0.9999
## 33 - 36 34.5 4 0.0001 7 0.0002 38110 1.0000
## 36 - 39 37.5 2 0.0001 3 0.0001 38112 1.0001
## 39 - 42 40.5 1 0.0000 1 0.0000 38113 1.0001
## 42 - 45 43.5 0 0.0000 0 0.0000 38113 1.0001
## 45 - 48 46.5 0 0.0000 0 0.0000 38113 1.0001
## 48 - 41 44.5 0 0.0000 0 0.0000 38113 1.0001
# Histograma manual con las frecuencias absolutas
barplot(height = ni,
names.arg = tabla_frecuencia$Intervalo,
main = "Histograma:2D Luggage Volumen",
xlab = "Volumen de equipaje 2D",
ylab = "Frecuencia absoluta",
col = "skyblue",
las = 2,
cex.names = 0.7,
ylim = c(0, max(ni) + 5))
# Ojivas (ascendente y descendente)
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "Ojivas: Frecuencias acumuladas de 2D Luggage Volumen",
xlab = "Volumen de equipaje 2D",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja (boxplot)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja:2D Luggage Volumen",
xlab = "Volumen de equipaje 2D")
# Seleccionar la variable continua
variable <- na.omit(datos$X4D.Passenger.Volume)
# Número de datos y número de intervalos (regla de Sturges)
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud del intervalo
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
# Límites superiores (el último se ajusta al máximo real)
lim_sup <- c(lim_inf[-1], max(variable) + 1e-4)
# Marcas de clase (punto medio)
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i]) # Incluye el último valor
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla de frecuencia
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 12 6 24632 0.6463 38113 1.0000 24632 0.6463
## 12 - 24 18 0 0.0000 13481 0.3537 24632 0.6463
## 24 - 36 30 0 0.0000 13481 0.3537 24632 0.6463
## 36 - 48 42 0 0.0000 13481 0.3537 24632 0.6463
## 48 - 60 54 18 0.0005 13481 0.3537 24650 0.6468
## 60 - 72 66 16 0.0004 13463 0.3532 24666 0.6472
## 72 - 84 78 522 0.0137 13447 0.3528 25188 0.6609
## 84 - 96 90 6555 0.1720 12925 0.3391 31743 0.8329
## 96 - 108 102 5348 0.1403 6370 0.1671 37091 0.9732
## 108 - 120 114 922 0.0242 1022 0.0268 38013 0.9974
## 120 - 132 126 58 0.0015 100 0.0026 38071 0.9989
## 132 - 144 138 19 0.0005 42 0.0011 38090 0.9994
## 144 - 156 150 17 0.0004 23 0.0006 38107 0.9998
## 156 - 168 162 2 0.0001 6 0.0002 38109 0.9999
## 168 - 180 174 1 0.0000 4 0.0001 38110 0.9999
## 180 - 192 186 2 0.0001 3 0.0001 38112 1.0000
## 192 - 192 192 1 0.0000 1 0.0000 38113 1.0000
# Histograma manual con las frecuencias absolutas
barplot(height = ni,
names.arg = tabla_frecuencia$Intervalo,
main = "Histograma: 4D Passenger Volumen",
xlab = "Volumen de pasajeros 4D",
ylab = "Frecuencia absoluta",
col = "skyblue",
las = 2,
cex.names = 0.7,
ylim = c(0, max(ni) + 5))
# Ojivas (ascendente y descendente)
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "Ojivas: Frecuencias acumuladas de 4D Passenger Volumen",
xlab = "Volumen de pasajeros 4D",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja (boxplot)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja:4D Passenger Volumen",
xlab = "Volumen de pasajeros 4D")
# Filtrar los NA desde el origen: solo filas con dato válido en la variable
datos_limpios <- datos[!is.na(datos$X4D.Luggage.Volume), ]
# Seleccionar la variable continua limpia
variable <- datos_limpios$X4D.Luggage.Volume
# Número de datos y número de intervalos (regla de Sturges)
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud del intervalo
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
# Límites superiores
lim_sup <- c(lim_inf[-1], max(variable) + 1e-4)
# Marcas de clase
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i])
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla de frecuencia SIN NA
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc,
stringsAsFactors = FALSE
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 4 2.0 24645 0.6466 38113 1.0002 24645 0.6466
## 4 - 8 6.0 79 0.0021 13468 0.3536 24724 0.6487
## 8 - 12 10.0 1670 0.0438 13389 0.3515 26394 0.6925
## 12 - 16 14.0 6333 0.1662 11719 0.3077 32727 0.8587
## 16 - 20 18.0 2716 0.0713 5386 0.1415 35443 0.9300
## 20 - 24 22.0 576 0.0151 2670 0.0702 36019 0.9451
## 24 - 28 26.0 258 0.0068 2094 0.0551 36277 0.9519
## 28 - 32 30.0 448 0.0118 1836 0.0483 36725 0.9637
## 32 - 36 34.0 508 0.0133 1388 0.0365 37233 0.9770
## 36 - 40 38.0 392 0.0103 880 0.0232 37625 0.9873
## 40 - 44 42.0 296 0.0078 488 0.0129 37921 0.9951
## 44 - 48 46.0 68 0.0018 192 0.0051 37989 0.9969
## 48 - 52 50.0 57 0.0015 124 0.0033 38046 0.9984
## 52 - 56 54.0 67 0.0018 67 0.0018 38113 1.0002
## 56 - 60 58.0 0 0.0000 0 0.0000 38113 1.0002
## 60 - 64 62.0 0 0.0000 0 0.0000 38113 1.0002
## 64 - 55 59.5 0 0.0000 0 0.0000 38113 1.0002
# Histograma manual con las frecuencias absolutas
barplot(height = ni,
names.arg = tabla_frecuencia$Intervalo,
main = "Histograma: 4D Luggage Volume",
xlab = "Volumen de equipaje 4D",
ylab = "Frecuencia absoluta",
col = "skyblue",
las = 2,
cex.names = 0.7,
ylim = c(0, max(ni) + 5))
# Ojivas (ascendente y descendente)
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "Ojivas: Frecuencias acumuladas de 4D Luggage Volume",
xlab = "Volumen de equipaje 4D",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja (boxplot)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja: 4D Luggage Volume",
xlab = "Volumen de equipaje 4D")
# Seleccionar la variable continua
variable <- na.omit(datos$Hatchback.Passenger.Volume)
# Número de datos y número de intervalos (regla de Sturges)
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud del intervalo
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
# Límites superiores (el último se ajusta al máximo real)
lim_sup <- c(lim_inf[-1], max(variable) + 1e-4)
# Marcas de clase (punto medio)
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i]) # Incluye el último valor
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla de frecuencia
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 12 6.0 33473 0.8783 38113 1.0001 33473 0.8783
## 12 - 24 18.0 0 0.0000 4640 0.1218 33473 0.8783
## 24 - 36 30.0 0 0.0000 4640 0.1218 33473 0.8783
## 36 - 48 42.0 0 0.0000 4640 0.1218 33473 0.8783
## 48 - 60 54.0 48 0.0013 4640 0.1218 33521 0.8796
## 60 - 72 66.0 100 0.0026 4592 0.1205 33621 0.8822
## 72 - 84 78.0 1608 0.0422 4492 0.1179 35229 0.9244
## 84 - 96 90.0 2347 0.0616 2884 0.0757 37576 0.9860
## 96 - 108 102.0 515 0.0135 537 0.0141 38091 0.9995
## 108 - 120 114.0 14 0.0004 22 0.0006 38105 0.9999
## 120 - 132 126.0 4 0.0001 8 0.0002 38109 1.0000
## 132 - 144 138.0 0 0.0000 4 0.0001 38109 1.0000
## 144 - 156 150.0 0 0.0000 4 0.0001 38109 1.0000
## 156 - 168 162.0 0 0.0000 4 0.0001 38109 1.0000
## 168 - 180 174.0 0 0.0000 4 0.0001 38109 1.0000
## 180 - 192 186.0 0 0.0000 4 0.0001 38109 1.0000
## 192 - 195 193.5 4 0.0001 4 0.0001 38113 1.0001
# Histograma manual con las frecuencias absolutas
barplot(height = ni,
names.arg = tabla_frecuencia$Intervalo,
main = "Histograma:Hatchback Passenger Volumen",
xlab = "Volumen de pasajeros del hatchback",
ylab = "Frecuencia absoluta",
col = "skyblue",
las = 2,
cex.names = 0.7,
ylim = c(0, max(ni) + 5))
# Ojivas (ascendente y descendente)
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "Ojivas: Frecuencias acumuladas de Hatchback Passenger Volumen",
xlab = "Volumen de pasajeros del hatchback",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja (boxplot)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja:Hatchback Passenger Volumen",
xlab = "Volumen de pasajeros del hatchback")
# Seleccionar la variable continua
variable <- na.omit(datos$Hatchback.Luggage.Volume)
# Número de datos y número de intervalos (regla de Sturges)
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud del intervalo
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
# Límites superiores (el último se ajusta al máximo real)
lim_sup <- c(lim_inf[-1], max(variable) + 1e-4)
# Marcas de clase (punto medio)
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i]) # Incluye el último valor
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla de frecuencia
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 3 1.5 33472 0.8782 38113 1.0000 33472 0.8782
## 3 - 6 4.5 30 0.0008 4641 0.1218 33502 0.8790
## 6 - 9 7.5 226 0.0059 4611 0.1210 33728 0.8849
## 9 - 12 10.5 537 0.0141 4385 0.1151 34265 0.8990
## 12 - 15 13.5 1086 0.0285 3848 0.1010 35351 0.9275
## 15 - 18 16.5 1350 0.0354 2762 0.0725 36701 0.9629
## 18 - 21 19.5 549 0.0144 1412 0.0371 37250 0.9773
## 21 - 24 22.5 339 0.0089 863 0.0227 37589 0.9862
## 24 - 27 25.5 183 0.0048 524 0.0138 37772 0.9910
## 27 - 30 28.5 10 0.0003 341 0.0090 37782 0.9913
## 30 - 33 31.5 54 0.0014 331 0.0087 37836 0.9927
## 33 - 36 34.5 109 0.0029 277 0.0073 37945 0.9956
## 36 - 39 37.5 76 0.0020 168 0.0044 38021 0.9976
## 39 - 42 40.5 54 0.0014 92 0.0024 38075 0.9990
## 42 - 45 43.5 28 0.0007 38 0.0010 38103 0.9997
## 45 - 48 46.5 8 0.0002 10 0.0003 38111 0.9999
## 48 - 49 48.5 2 0.0001 2 0.0001 38113 1.0000
# Histograma manual con las frecuencias absolutas
barplot(height = ni,
names.arg = tabla_frecuencia$Intervalo,
main = "Histograma:Hatchback Luggage Volumen",
xlab = "Volumen de equipaje del hatchback",
ylab = "Frecuencia absoluta",
col = "skyblue",
las = 2,
cex.names = 0.7,
ylim = c(0, max(ni) + 5))
# Ojivas (ascendente y descendente)
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "Ojivas: Frecuencias acumuladas de Hatchback Luggage Volumen",
xlab = "Volumen de equipaje del hatchback",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja (boxplot)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja:Hatchback Luggage Volumen",
xlab = "Volumen de equipaje del hatchback")
# Seleccionar la variable continua
variable <- na.omit(datos$Composite.City.MPG)
# Número de intervalos fijo
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores y superiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
lim_sup <- lim_inf + A - 1 # corregido para evitar superposición
# Marcas de clase
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i])
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 5 2.5 38048 0.9985 38104 1.0002 38048 0.9985
## 6 - 11 8.5 0 0.0000 56 0.0017 38048 0.9985
## 12 - 17 14.5 2 0.0001 56 0.0017 38050 0.9986
## 18 - 23 20.5 0 0.0000 54 0.0016 38050 0.9986
## 24 - 29 26.5 15 0.0004 54 0.0016 38065 0.9990
## 30 - 35 32.5 4 0.0001 39 0.0012 38069 0.9991
## 36 - 41 38.5 4 0.0001 35 0.0011 38073 0.9992
## 42 - 47 44.5 2 0.0001 31 0.0010 38075 0.9993
## 48 - 53 50.5 2 0.0001 29 0.0009 38077 0.9994
## 54 - 59 56.5 18 0.0005 27 0.0008 38095 0.9999
## 60 - 65 62.5 4 0.0001 9 0.0003 38099 1.0000
## 66 - 71 68.5 0 0.0000 5 0.0002 38099 1.0000
## 72 - 77 74.5 0 0.0000 5 0.0002 38099 1.0000
## 78 - 83 80.5 2 0.0001 5 0.0002 38101 1.0001
## 84 - 89 86.5 0 0.0000 3 0.0001 38101 1.0001
## 90 - 95 92.5 0 0.0000 3 0.0001 38101 1.0001
## 96 - 101 98.5 3 0.0001 3 0.0001 38104 1.0002
# Histograma manual con las frecuencias absolutas
barplot(tabla_frecuencia$ni,
main = "Histograma: Composite City MPG",
xlab = "MPG urbano compuesto",
ylab = "Frecuencia absoluta",
col = "skyblue",
names.arg = tabla_frecuencia$Intervalo,
las = 2,
cex.names = 0.7,
ylim = c(0, max(tabla_frecuencia$ni) + 5))
# Ojivas (ascendente y descendente) con líneas conectadas
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "OjivasFrecuencias acumuladas de Composite City MPG",
xlab = "MPG urbano compuesto ",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja (boxplot)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja:Composite City MPG",
xlab = "MPG urbano compuesto")
# Seleccionar la variable continua
variable <- na.omit(datos$Composite.Highway.MPG)
# Número de intervalos fijo
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores y superiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
lim_sup <- lim_inf + A - 1 # corregido para evitar superposición
# Marcas de clase
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i])
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 4 2 38048 0.9986 38102 1.0001 38048 0.9986
## 5 - 9 7 0 0.0000 54 0.0015 38048 0.9986
## 10 - 14 12 0 0.0000 54 0.0015 38048 0.9986
## 15 - 19 17 0 0.0000 54 0.0015 38048 0.9986
## 20 - 24 22 2 0.0001 54 0.0015 38050 0.9987
## 25 - 29 27 4 0.0001 52 0.0014 38054 0.9988
## 30 - 34 32 4 0.0001 48 0.0013 38058 0.9989
## 35 - 39 37 12 0.0003 44 0.0012 38070 0.9992
## 40 - 44 42 1 0.0000 32 0.0009 38071 0.9992
## 45 - 49 47 10 0.0003 31 0.0009 38081 0.9995
## 50 - 54 52 3 0.0001 21 0.0006 38084 0.9996
## 55 - 59 57 7 0.0002 18 0.0005 38091 0.9998
## 60 - 64 62 6 0.0002 11 0.0003 38097 1.0000
## 65 - 69 67 1 0.0000 5 0.0001 38098 1.0000
## 70 - 74 72 3 0.0001 4 0.0001 38101 1.0001
## 75 - 79 77 0 0.0000 1 0.0000 38101 1.0001
## 80 - 84 82 1 0.0000 1 0.0000 38102 1.0001
# Histograma manual con las frecuencias absolutas
barplot(tabla_frecuencia$ni,
main = "Histograma: Composite Highway MPG",
xlab = "MPG compuesto en carretera",
ylab = "Frecuencia absoluta",
col = "skyblue",
names.arg = tabla_frecuencia$Intervalo,
las = 2,
cex.names = 0.7,
ylim = c(0, max(tabla_frecuencia$ni) + 5))
# Ojivas (ascendente y descendente) con líneas conectadas
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "OjivasFrecuencias acumuladas de Composite Highway MPG",
xlab = "MPG compuesto en carretera",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja (boxplot)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja:Composite Highway MPG",
xlab = "MPG compuesto en carretera")
# Seleccionar la variable continua
variable <- na.omit(datos$Composite.Combined.MPG)
# Número de intervalos fijo
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores y superiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
lim_sup <- lim_inf + A - 1 # corregido para evitar superposición
# Marcas de clase
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i])
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 5 2.5 38048 0.9985 38106 1.0002 38048 0.9985
## 6 - 11 8.5 0 0.0000 58 0.0017 38048 0.9985
## 12 - 17 14.5 0 0.0000 58 0.0017 38048 0.9985
## 18 - 23 20.5 0 0.0000 58 0.0017 38048 0.9985
## 24 - 29 26.5 6 0.0002 58 0.0017 38054 0.9987
## 30 - 35 32.5 11 0.0003 52 0.0015 38065 0.9990
## 36 - 41 38.5 6 0.0002 41 0.0012 38071 0.9992
## 42 - 47 44.5 2 0.0001 35 0.0010 38073 0.9993
## 48 - 53 50.5 11 0.0003 33 0.0009 38084 0.9996
## 54 - 59 56.5 11 0.0003 22 0.0006 38095 0.9999
## 60 - 65 62.5 6 0.0002 11 0.0003 38101 1.0001
## 66 - 71 68.5 0 0.0000 5 0.0001 38101 1.0001
## 72 - 77 74.5 0 0.0000 5 0.0001 38101 1.0001
## 78 - 83 80.5 1 0.0000 5 0.0001 38102 1.0001
## 84 - 89 86.5 4 0.0001 4 0.0001 38106 1.0002
## 90 - 95 92.5 0 0.0000 0 0.0000 38106 1.0002
## 96 - 101 98.5 0 0.0000 0 0.0000 38106 1.0002
# Histograma manual con las frecuencias absolutas
barplot(tabla_frecuencia$ni,
main = "Histograma:Composite Combined MPG",
xlab = "MPG combinado compuesto",
ylab = "Frecuencia absoluta",
col = "skyblue",
names.arg = tabla_frecuencia$Intervalo,
las = 2,
cex.names = 0.7,
ylim = c(0, max(tabla_frecuencia$ni) + 5))
# Ojivas (ascendente y descendente) con líneas conectadas
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "OjivasFrecuencias acumuladas de Composite Combined MPG",
xlab = "MPG combinado compuesto",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja (boxplot)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja:Composite Combined MPG",
xlab = "MPG combinado compuesto")
# Seleccionar la variable continua
variable <- na.omit(datos$Range..FT1.)
# Número de intervalos fijo
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores y superiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
lim_sup <- lim_inf + A - 1 # corregido para evitar superposición
# Marcas de clase
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i])
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 18 9 37980 0.9969 38099 1.0002 37980 0.9969
## 19 - 37 28 3 0.0001 119 0.0033 37983 0.9970
## 38 - 56 47 8 0.0002 116 0.0032 37991 0.9972
## 57 - 75 66 21 0.0006 108 0.0030 38012 0.9978
## 76 - 94 85 38 0.0010 87 0.0024 38050 0.9988
## 95 - 113 104 9 0.0002 49 0.0014 38059 0.9990
## 114 - 132 123 6 0.0002 40 0.0012 38065 0.9992
## 133 - 151 142 1 0.0000 34 0.0010 38066 0.9992
## 152 - 170 161 0 0.0000 33 0.0010 38066 0.9992
## 171 - 189 180 1 0.0000 33 0.0010 38067 0.9992
## 190 - 208 199 2 0.0001 32 0.0010 38069 0.9993
## 209 - 227 218 3 0.0001 30 0.0009 38072 0.9994
## 228 - 246 237 7 0.0002 27 0.0008 38079 0.9996
## 247 - 265 256 10 0.0003 20 0.0006 38089 0.9999
## 266 - 284 275 5 0.0001 10 0.0003 38094 1.0000
## 285 - 303 294 3 0.0001 5 0.0002 38097 1.0001
## 304 - 322 313 2 0.0001 2 0.0001 38099 1.0002
# Histograma manual con las frecuencias absolutas
barplot(tabla_frecuencia$ni,
main = "Histograma: Range FT1",
xlab = "Rango FT1",
ylab = "Frecuencia absoluta",
col = "skyblue",
names.arg = tabla_frecuencia$Intervalo,
las = 2,
cex.names = 0.7,
ylim = c(0, max(tabla_frecuencia$ni) + 5))
# Ojivas (ascendente y descendente) con líneas conectadas
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "OjivasFrecuencias acumuladas de Range FT1",
xlab = "Rango FT1 ",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja (boxplot)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja: Range FT1",
xlab = "Rango FT1")
# Seleccionar la variable continua
variable <- na.omit(datos$City.Range..FT1.)
# Número de intervalos fijo
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores y superiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
lim_sup <- lim_inf + A - 1 # corregido para evitar superposición
# Marcas de clase
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i])
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 17 8.5 38007 0.9977 38095 1.0001 38007 0.9977
## 18 - 35 26.5 0 0.0000 88 0.0024 38007 0.9977
## 36 - 53 44.5 1 0.0000 88 0.0024 38008 0.9977
## 54 - 71 62.5 7 0.0002 87 0.0024 38015 0.9979
## 72 - 89 80.5 21 0.0006 80 0.0022 38036 0.9985
## 90 - 107 98.5 13 0.0003 59 0.0016 38049 0.9988
## 108 - 125 116.5 6 0.0002 46 0.0013 38055 0.9990
## 126 - 143 134.5 2 0.0001 40 0.0011 38057 0.9991
## 144 - 161 152.5 0 0.0000 38 0.0010 38057 0.9991
## 162 - 179 170.5 0 0.0000 38 0.0010 38057 0.9991
## 180 - 197 188.5 3 0.0001 38 0.0010 38060 0.9992
## 198 - 215 206.5 4 0.0001 35 0.0009 38064 0.9993
## 216 - 233 224.5 2 0.0001 31 0.0008 38066 0.9994
## 234 - 251 242.5 9 0.0002 29 0.0007 38075 0.9996
## 252 - 269 260.5 17 0.0004 20 0.0005 38092 1.0000
## 270 - 287 278.5 3 0.0001 3 0.0001 38095 1.0001
## 288 - 305 296.5 0 0.0000 0 0.0000 38095 1.0001
# Histograma manual con las frecuencias absolutas
barplot(tabla_frecuencia$ni,
main = "Histograma: City Range FT1",
xlab = "Rango de la ciudad FT1",
ylab = "Frecuencia absoluta",
col = "skyblue",
names.arg = tabla_frecuencia$Intervalo,
las = 2,
cex.names = 0.7,
ylim = c(0, max(tabla_frecuencia$ni) + 5))
# Ojivas (ascendente y descendente) con líneas conectadas
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "OjivasFrecuencias acumuladas de City Range FT1",
xlab = "Rango de ciudad FT1 ",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja (boxplot)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja:City Range FT1",
xlab = "Rango de ciudad FT1")
# Seleccionar la variable continua
variable <- na.omit(datos$Highway.Range..FT1.)
# Número de intervalos fijo
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores y superiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
lim_sup <- lim_inf + A - 1 # corregido para evitar superposición
# Marcas de clase
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i])
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 20 10 38007 0.9972 38113 1.0001 38007 0.9972
## 21 - 41 31 1 0.0000 106 0.0029 38008 0.9972
## 42 - 62 52 15 0.0004 105 0.0029 38023 0.9976
## 63 - 83 73 30 0.0008 90 0.0025 38053 0.9984
## 84 - 104 94 12 0.0003 60 0.0017 38065 0.9987
## 105 - 125 115 2 0.0001 48 0.0014 38067 0.9988
## 126 - 146 136 3 0.0001 46 0.0013 38070 0.9989
## 147 - 167 157 0 0.0000 43 0.0012 38070 0.9989
## 168 - 188 178 1 0.0000 43 0.0012 38071 0.9989
## 189 - 209 199 2 0.0001 42 0.0012 38073 0.9990
## 210 - 230 220 7 0.0002 40 0.0011 38080 0.9992
## 231 - 251 241 5 0.0001 33 0.0009 38085 0.9993
## 252 - 272 262 18 0.0005 28 0.0008 38103 0.9998
## 273 - 293 283 5 0.0001 10 0.0003 38108 0.9999
## 294 - 314 304 3 0.0001 5 0.0002 38111 1.0000
## 315 - 335 325 0 0.0000 2 0.0001 38111 1.0000
## 336 - 356 346 2 0.0001 2 0.0001 38113 1.0001
# Histograma manual con las frecuencias absolutas
barplot(tabla_frecuencia$ni,
main = "Histograma: Highway Range FT1",
xlab = "Rango de carretera FT1",
ylab = "Frecuencia absoluta",
col = "skyblue",
names.arg = tabla_frecuencia$Intervalo,
las = 2,
cex.names = 0.7,
ylim = c(0, max(tabla_frecuencia$ni) + 5))
# Ojivas (ascendente y descendente) con líneas conectadas
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "OjivasFrecuencias acumuladas de Highway Range FT1",
xlab = "Rango de carretera FT1 ",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja (boxplot)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja:Highway Range FT1",
xlab = "Rango de carretera FT1")
# Seleccionar la variable continua
variable <- na.omit(datos$City.Range..FT2.)
# Número de intervalos fijo
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores y superiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
lim_sup <- lim_inf + A - 1 # corregido para evitar superposición
# Marcas de clase
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i])
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 6 3 38048 0.9987 38099 1.0001 38048 0.9987
## 7 - 13 10 8 0.0002 51 0.0014 38056 0.9989
## 14 - 20 17 16 0.0004 43 0.0012 38072 0.9993
## 21 - 27 24 10 0.0003 27 0.0008 38082 0.9996
## 28 - 34 31 2 0.0001 17 0.0005 38084 0.9997
## 35 - 41 38 9 0.0002 15 0.0004 38093 0.9999
## 42 - 48 45 0 0.0000 6 0.0002 38093 0.9999
## 49 - 55 52 0 0.0000 6 0.0002 38093 0.9999
## 56 - 62 59 2 0.0001 6 0.0002 38095 1.0000
## 63 - 69 66 0 0.0000 4 0.0001 38095 1.0000
## 70 - 76 73 0 0.0000 4 0.0001 38095 1.0000
## 77 - 83 80 3 0.0001 4 0.0001 38098 1.0001
## 84 - 90 87 0 0.0000 1 0.0000 38098 1.0001
## 91 - 97 94 0 0.0000 1 0.0000 38098 1.0001
## 98 - 104 101 1 0.0000 1 0.0000 38099 1.0001
## 105 - 111 108 0 0.0000 0 0.0000 38099 1.0001
## 112 - 118 115 0 0.0000 0 0.0000 38099 1.0001
# Histograma manual con las frecuencias absolutas
barplot(tabla_frecuencia$ni,
main = "Histograma: City Range FT2",
xlab = "Rango de la ciudad FT2",
ylab = "Frecuencia absoluta",
col = "skyblue",
names.arg = tabla_frecuencia$Intervalo,
las = 2,
cex.names = 0.7,
ylim = c(0, max(tabla_frecuencia$ni) + 5))
# Ojivas (ascendente y descendente) con líneas conectadas
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "OjivasFrecuencias acumuladas de City Range FT2",
xlab = "Rango de ciudad FT2",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja (boxplot)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja:City Range FT2",
xlab = "Rango de ciudad FT2")
# Seleccionar la variable continua
variable <- na.omit(datos$Highway.Range..FT2.)
# Número de intervalos fijo
n <- length(variable)
k <- ceiling(1 + 3.322 * log10(n))
# Calcular rango y amplitud
R <- max(variable) - min(variable)
A <- ceiling(R / k)
# Límites inferiores y superiores
lim_inf <- seq(from = min(variable), by = A, length.out = k)
lim_sup <- lim_inf + A - 1 # corregido para evitar superposición
# Marcas de clase
MC <- (lim_inf + lim_sup) / 2
# Frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
if (i == k) {
ni[i] <- sum(variable >= lim_inf[i] & variable <= lim_sup[i])
} else {
ni[i] <- sum(variable >= lim_inf[i] & variable < lim_sup[i])
}
}
# Frecuencia relativa
hi <- round(ni / sum(ni), 4)
# Frecuencias acumuladas
Ni_asc <- cumsum(ni)
Fi_asc <- round(cumsum(hi), 4)
Ni_desc <- rev(cumsum(rev(ni)))
Fi_desc <- round(rev(cumsum(rev(hi))), 4)
# Crear tabla
tabla_frecuencia <- data.frame(
Intervalo = paste0(round(lim_inf, 2), " - ", round(lim_sup, 2)),
MC = round(MC, 2),
ni = ni,
hi = hi,
Ni_desc = Ni_desc,
Fi_desc = Fi_desc,
Ni_asc = Ni_asc,
Fi_asc = Fi_asc
)
# Mostrar tabla
print(tabla_frecuencia, row.names = FALSE)
## Intervalo MC ni hi Ni_desc Fi_desc Ni_asc Fi_asc
## 0 - 5 2.5 38048 0.9989 38091 1.0001 38048 0.9989
## 6 - 11 8.5 4 0.0001 43 0.0012 38052 0.9990
## 12 - 17 14.5 23 0.0006 39 0.0011 38075 0.9996
## 18 - 23 20.5 5 0.0001 16 0.0005 38080 0.9997
## 24 - 29 26.5 2 0.0001 11 0.0004 38082 0.9998
## 30 - 35 32.5 2 0.0001 9 0.0003 38084 0.9999
## 36 - 41 38.5 4 0.0001 7 0.0002 38088 1.0000
## 42 - 47 44.5 0 0.0000 3 0.0001 38088 1.0000
## 48 - 53 50.5 2 0.0001 3 0.0001 38090 1.0001
## 54 - 59 56.5 0 0.0000 1 0.0000 38090 1.0001
## 60 - 65 62.5 0 0.0000 1 0.0000 38090 1.0001
## 66 - 71 68.5 0 0.0000 1 0.0000 38090 1.0001
## 72 - 77 74.5 0 0.0000 1 0.0000 38090 1.0001
## 78 - 83 80.5 0 0.0000 1 0.0000 38090 1.0001
## 84 - 89 86.5 0 0.0000 1 0.0000 38090 1.0001
## 90 - 95 92.5 1 0.0000 1 0.0000 38091 1.0001
## 96 - 101 98.5 0 0.0000 0 0.0000 38091 1.0001
# Histograma manual con las frecuencias absolutas
barplot(tabla_frecuencia$ni,
main = "Histograma: Highway Range FT2",
xlab = "Rango de carretera FT2",
ylab = "Frecuencia absoluta",
col = "skyblue",
names.arg = tabla_frecuencia$Intervalo,
las = 2,
cex.names = 0.7,
ylim = c(0, max(tabla_frecuencia$ni) + 5))
# Ojivas (ascendente y descendente) con líneas conectadas
plot(tabla_frecuencia$MC, tabla_frecuencia$Ni_asc,
type = "o", col = "green",
main = "OjivasFrecuencias acumuladas de Highway Range FT2",
xlab = "Rango de carretera FT2",
ylab = "Frecuencia acumulada",
ylim = c(0, max(tabla_frecuencia$Ni_asc) + 5),
pch = 16)
lines(tabla_frecuencia$MC, tabla_frecuencia$Ni_desc,
type = "o", col = "red", pch = 17)
legend("bottomright",
legend = c("Ojiva Ascendente", "Ojiva Descendente"),
col = c("green", "red"),
pch = c(16, 17),
lty = 1)
# Diagrama de caja (boxplot)
boxplot(variable,
horizontal = TRUE,
col = "orange",
main = "Diagrama de Caja:Highway Range FT2",
xlab = "Rango de carretera FT2")