0.1 Todas las Variables Continuas

En esta sección se analizan las variables continuas del estudio a través del ajuste a diferentes modelos de distribuciones probabilísticas. El objetivo es identificar la distribución teórica que mejor representa el comportamiento de cada variable, permitiendo realizar inferencias estadísticas con mayor precisión. Se incluyen análisis exploratorios, representaciones gráficas y los test. Este enfoque proporciona una base sólida para la formulación de hipótesis, la estimación de parámetros y la predicción de comportamientos futuros.

Cargamos los datos:

setwd("C:/Users/Usuario/Documents/Trabajo Estadistica/PROYECTO/")
datos<-read.csv("database.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 continua:

1 Engine Displacement

Desmotor <- datos$Engine.Index
Desmotor <- as.numeric(datos$Engine.Index)
Desmotor <- Desmotor[!is.na(Desmotor) & Desmotor != -1]
Desmotor <- Desmotor[Desmotor > 0]
hist(Desmotor)

# Media y desviación estándar
u <- mean(Desmotor)
u
## [1] 13143.05
sigma <- sd(Desmotor)
sigma
## [1] 20375.25
HistogramaDesmotor <- hist(Desmotor, freq=FALSE, 
                           main="Gráfica No.1: Histograma 
                           de Desplazamiento Motor con Curva Normal",
                           xlab="Desplazamiento Motor",
                           ylab="Densidad",
                           col="lightgreen")
x <- seq(min(Desmotor), max(Desmotor), 0.01)
curve(dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2, add = TRUE)

# Área bajo la curva del histograma
Altura <- HistogramaDesmotor$density
Area <- sum(Altura * diff(HistogramaDesmotor$breaks))
Area
## [1] 1
FO <- HistogramaDesmotor$counts
sum(FO)
## [1] 25517
FO
##  [1] 18747    73   288   249   311   892   108   655   354  1022   302  1647
## [13]   454   415

Test:

FOr <- (FO / length(Desmotor)) * 100
sum(FOr)
## [1] 100
liminf <- HistogramaDesmotor$breaks[-length(HistogramaDesmotor$breaks)]
liminf
##  [1]     0  5000 10000 15000 20000 25000 30000 35000 40000 45000 50000 55000
## [13] 60000 65000
limsup <- HistogramaDesmotor$breaks[-1]
limsup
##  [1]  5000 10000 15000 20000 25000 30000 35000 40000 45000 50000 55000 60000
## [13] 65000 70000
# Frecuencias esperadas bajo normal
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], u, sigma) - pnorm(liminf[i], u, sigma)
}
FE <- P * length(Desmotor)
FE
##  [1] 2175.53458 2398.53164 2490.59453 2435.78390 2243.63709 1946.45573
##  [7] 1590.42943 1223.94547  887.13012  605.60564  389.37633  235.79026
## [13]  134.48025   72.23821
X2 <- sum(((FO - FE)^2) / FE)
X2
## [1] 147734.1
Vc <- qchisq(0.95, df = length(FO) - 1 - 2)
Vc
## [1] 19.67514
# ¿Se ajusta a una distribución exponencial?
X2 < Vc
## [1] FALSE

Modelo Exponencial:

lambda <- 1 / mean(Desmotor)
lambda
## [1] 7.608586e-05
# Histograma con curva exponencial
HistExp <- hist(Desmotor, freq=FALSE,
                main="Gráfica No.2: Histograma 
          de Desplazamiento Motor con Curva Exponencial",
                xlab="Desplazamiento Motor",
                ylab="Densidad",
                col="lightgreen")

# Añadimos curva exponencial
x <- seq(min(Desmotor), max(Desmotor), 0.01)
curve(dexp(x, rate = lambda), col = "red", lwd = 2, add = TRUE)

Test:

FO <- HistExp$counts
liminf <- HistExp$breaks[-length(HistExp$breaks)]
liminf
##  [1]     0  5000 10000 15000 20000 25000 30000 35000 40000 45000 50000 55000
## [13] 60000 65000
limsup <- HistExp$breaks[-1]
limsup
##  [1]  5000 10000 15000 20000 25000 30000 35000 40000 45000 50000 55000 60000
## [13] 65000 70000
# Frecuencias esperadas bajo la exponencial
Pexp <- numeric(length(FO))
for (k in 1:length(FO)) {
  Pexp[k] <- pexp(limsup[k], rate = lambda) - pexp(liminf[k], rate = lambda)
}
FEexp <- Pexp * length(Desmotor)

X2_exp <- sum((FO - FEexp)^2 / FEexp)
X2_exp
## [1] 51740.14
Vc_exp <- qchisq(0.95, df = length(FO) - 1 - 1)
Vc_exp
## [1] 21.02607
# ¿Se ajusta a una distribución exponencial?
X2_exp < Vc_exp
## [1] FALSE

2 City MPG (FT1)

mpg_ciudad <- as.numeric(datos$City.MPG..FT1.)  # Asegúrate de que esta sea la columna correcta
mpg_ciudad <- mpg_ciudad[!is.na(mpg_ciudad) & mpg_ciudad != -1]  # Limpieza de valores
hist(mpg_ciudad)

u <- mean(mpg_ciudad)
u
## [1] 17.98111
sigma <- sd(mpg_ciudad)
sigma
## [1] 6.849728
# Histograma con densidad
HistogramaMpg_ciudad <- hist(mpg_ciudad, freq = FALSE, 
                             main = "Gráfica No.3: Histograma 
                             de City MPG con Curva Normal",
                             xlab = "City MPG",
                             ylab = "Densidad",
                             col = "#FAEBD7")
x <- seq(min(mpg_ciudad), max(mpg_ciudad), 0.01)
curve(dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2, add = TRUE)

Altura <- HistogramaMpg_ciudad$density
Area <- sum(Altura * diff(HistogramaMpg_ciudad$breaks))
Area
## [1] 1
FO <- HistogramaMpg_ciudad$counts
sum(FO)
## [1] 38113
FO
##  [1]   870 28465  7959   568   108    22     7     8    28    19    16     4
## [13]    31     7     1

Test:

FOr <- (FO / length(mpg_ciudad)) * 100
sum(FOr)
## [1] 100
liminf <- HistogramaMpg_ciudad$breaks[-length(HistogramaMpg_ciudad$breaks)]
liminf
##  [1]   0  10  20  30  40  50  60  70  80  90 100 110 120 130 140
limsup <- HistogramaMpg_ciudad$breaks[-1]
limsup
##  [1]  10  20  30  40  50  60  70  80  90 100 110 120 130 140 150
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], u, sigma) - pnorm(liminf[i], u, sigma)
}
FE <- P * length(mpg_ciudad)
FE
##  [1] 4.483742e+03 1.882512e+04 1.312752e+04 1.486643e+03 2.483976e+01
##  [6] 5.614414e-02 1.629035e-05 5.881636e-10 0.000000e+00 0.000000e+00
## [11] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
X2 <- sum(((FO - FE)^2) / FE)
X2
## [1] Inf
Vc <- qchisq(0.95, df = length(FO) - 1 - 2)
Vc
## [1] 21.02607
# ¿Se ajusta a una distribución normal?
X2 < Vc
## [1] FALSE

Modelo Log-Normal:

mpg_ciudad <- as.numeric(datos$City.MPG..FT1.)  # Ya está limpio
mpg_ciudad <- mpg_ciudad[!is.na(mpg_ciudad) & mpg_ciudad > 0]
log_mpg <- log(mpg_ciudad)
ulog <- mean(log_mpg)
ulog
## [1] 2.846708
sigmalog <- sd(log_mpg)
sigmalog
## [1] 0.2732083
# Histograma log-normal
HistogramaLogNormal <- hist(mpg_ciudad, freq = FALSE, 
                            main = "Gráfica No.4: Histograma 
                           de City MPG con curva Log-Normal",
                            xlab = "City MPG",
                            ylab = "Densidad",
                            col = "#FAEBD7")
x <- seq(min(mpg_ciudad), max(mpg_ciudad), 0.01)
curve(dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2, add = TRUE)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
##  [1]   0  10  20  30  40  50  60  70  80  90 100 110 120 130 140
limsup <- HistogramaLogNormal$breaks[-1]
limsup
##  [1]  10  20  30  40  50  60  70  80  90 100 110 120 130 140 150
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) - 
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(mpg_ciudad)

X2_log <- sum((FO - FElog)^2 / FElog)
X2_log
## [1] 71653593361
Vc_log <- qchisq(0.95, df = length(FO) - 1 - 2)
Vc_log
## [1] 21.02607
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log
## [1] FALSE

3 Unrounded City MPG (FT1)

# Limpieza de datos
MPGcity <- datos$Unrounded.City.MPG..FT1.
MPGcity <- MPGcity[!is.na(MPGcity) & MPGcity != "" & MPGcity != -1]
MPGcity <- as.numeric(MPGcity)
MPGcity <- MPGcity[MPGcity > 0]
u <- mean(MPGcity)
u
## [1] 20.77443
sigma <- sd(MPGcity)
sigma
## [1] 11.20033
# Histograma con densidad
HistogramaNormal <- hist(MPGcity, freq = FALSE,
                         main = "Gráfica No.5: Histograma 
                      de MPG Ciudad (FT1) con Curva Normal",
                         xlab = "MPG en Ciudad",
                         ylab = "Densidad",
                         col = "aquamarine")
x <- seq(min(MPGcity), max(MPGcity), 0.01)
curve(dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2, add = TRUE)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
##  [1]   0  10  20  30  40  50  60  70  80  90 100 110 120 130 140
limsup <- HistogramaNormal$breaks[-1]
limsup
##  [1]  10  20  30  40  50  60  70  80  90 100 110 120 130 140 150
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], u, sigma) - pnorm(liminf[i], u, sigma)
}
FE <- P * length(MPGcity)

valores_validos <- FE > 0
X2_normal <- sum(((FO[valores_validos] - FE[valores_validos])^2) / FE[valores_validos])
X2_normal
## [1] 1.234317e+13
df_normal <- sum(valores_validos) - 1 - 2
df_normal
## [1] 9
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 16.91898
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal  
## [1] FALSE

Modelo Log-Normal:

log_MPG <- log(MPGcity)
ulog <- mean(log_MPG)
ulog
## [1] 2.966193
sigmalog <- sd(log_MPG)
sigmalog
## [1] 0.3237831
HistogramaLogNormal <- hist(MPGcity, freq = FALSE,
                            main = "Gráfica No.6: Histograma 
                          de MPG Ciudad (FT1) con Curva Log-Normal",
                            xlab = "MPG en Ciudad",
                            ylab = "Densidad",
                            col = "aquamarine")
x <- seq(min(MPGcity), max(MPGcity), 0.01)
curve(dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2, add = TRUE)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
##  [1]   0  10  20  30  40  50  60  70  80  90 100 110 120 130 140
limsup <- HistogramaLogNormal$breaks[-1]
limsup
##  [1]  10  20  30  40  50  60  70  80  90 100 110 120 130 140 150
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(MPGcity)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 20233304
df_log <- sum(valores_validos_log) - 1 - 2
df_log
## [1] 12
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 21.02607
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log  
## [1] FALSE

Modelo Exponencial:

lambda <- 1 / mean(MPGcity)
lambda
## [1] 0.0481361
HistExp <- hist(MPGcity, freq=FALSE,
                main="Gráfica No.7: Histograma 
            de MPG Ciudad (FT1) con Curva Exponencial",
                xlab="MPG en Ciudad",
                ylab="Densidad",
                col="aquamarine")
x <- seq(min(MPGcity), max(MPGcity), 0.01)
curve(dexp(x, rate = lambda), col = "red", lwd = 2, add = TRUE)

Test:

FO <- HistExp$counts
liminf <- HistExp$breaks[-length(HistExp$breaks)]
liminf
##  [1]   0  10  20  30  40  50  60  70  80  90 100 110 120 130 140
limsup <- HistExp$breaks[-1]
limsup
##  [1]  10  20  30  40  50  60  70  80  90 100 110 120 130 140 150
Pexp <- numeric(length(FO))
for (k in 1:length(FO)) {
  Pexp[k] <- pexp(limsup[k], rate = lambda) - pexp(liminf[k], rate = lambda)
}
FEexp <- Pexp * length(MPGcity)

valores_validos_exp <- FEexp > 0
X2_exp <- sum((FO[valores_validos_exp] - FEexp[valores_validos_exp])^2 / FEexp[valores_validos_exp])
X2_exp
## [1] 11626.9
df_exp <- sum(valores_validos_exp) - 1 - 1
df_exp
## [1] 13
Vc_exp <- qchisq(0.95, df = df_exp)
Vc_exp
## [1] 22.36203
# ¿Se ajusta a distribución exponencial?
X2_exp < Vc_exp  
## [1] FALSE

4 City MPG (FT2)

# Limpieza de datos
mpg_ciudad2 <- datos$City.MPG..FT2.
mpg_ciudad2 <- mpg_ciudad2[!is.na(mpg_ciudad2) & mpg_ciudad2 != "" & mpg_ciudad2 != -1]
mpg_ciudad2 <- as.numeric(mpg_ciudad2)
mpg_ciudad2 <- mpg_ciudad2[mpg_ciudad2 > 0]
u <- mean(mpg_ciudad2)
u
## [1] 14.47705
sigma <- sd(mpg_ciudad2)
sigma
## [1] 15.68556
# Histograma con densidad
HistogramaNormal <- hist(mpg_ciudad2, freq = FALSE,
                         main = "Gráfica No.8: Histograma 
                      de MPG Ciudad (FT2) con Curva Normal",
                         xlab = "MPG en Ciudad (FT2)",
                         ylab = "Densidad",
                         col = "#F0FFFF")
x <- seq(min(mpg_ciudad2), max(mpg_ciudad2), 0.01)
curve(dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2, add = TRUE)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
##  [1]   0  10  20  30  40  50  60  70  80  90 100 110 120 130 140
limsup <- HistogramaNormal$breaks[-1]
limsup
##  [1]  10  20  30  40  50  60  70  80  90 100 110 120 130 140 150
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], u, sigma) - pnorm(liminf[i], u, sigma)
}
FE <- P * length(mpg_ciudad2)

valores_validos <- FE > 0
X2_normal <- sum(((FO[valores_validos] - FE[valores_validos])^2) / FE[valores_validos])
X2_normal
## [1] 1.254054e+12
df_normal <- sum(valores_validos) - 1 - 2
df_normal
## [1] 12
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 21.02607
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal  
## [1] FALSE

Modelo Log-Normal:

log_mpg2 <- log(mpg_ciudad2)
ulog <- mean(log_mpg2)
ulog
## [1] 2.49527
sigmalog <- sd(log_mpg2)
sigmalog
## [1] 0.4494793
HistogramaLogNormal <- hist(mpg_ciudad2, freq = FALSE,
                            main = "Gráfica No.9: Histograma 
                      de MPG Ciudad (FT2) con Curva Log-Normal",
                            xlab = "MPG en Ciudad (FT2)",
                            ylab = "Densidad",
                            col = "#F0FFFF")
x <- seq(min(mpg_ciudad2), max(mpg_ciudad2), 0.01)
curve(dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2, add = TRUE)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
##  [1]   0  10  20  30  40  50  60  70  80  90 100 110 120 130 140
limsup <- HistogramaLogNormal$breaks[-1]
limsup
##  [1]  10  20  30  40  50  60  70  80  90 100 110 120 130 140 150
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(mpg_ciudad2)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 247602
df_log <- sum(valores_validos_log) - 1 - 2
df_log
## [1] 12
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 21.02607
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log  
## [1] FALSE

Modelo Exponencial:

lambda <- 1 / mean(mpg_ciudad2)
lambda
## [1] 0.06907484
HistExp <- hist(mpg_ciudad2, freq=FALSE,
                main="Gráfica No.10: Histograma 
          de MPG Ciudad (FT2) con Curva Exponencial",
                xlab="MPG en Ciudad (FT2)",
                ylab="Densidad",
                col="#F0FFFF")
x <- seq(min(mpg_ciudad2), max(mpg_ciudad2), 0.01)
curve(dexp(x, rate = lambda), col = "red", lwd = 2, add = TRUE)

Test:

FO <- HistExp$counts
liminf <- HistExp$breaks[-length(HistExp$breaks)]
liminf
##  [1]   0  10  20  30  40  50  60  70  80  90 100 110 120 130 140
limsup <- HistExp$breaks[-1]
limsup
##  [1]  10  20  30  40  50  60  70  80  90 100 110 120 130 140 150
Pexp <- numeric(length(FO))
for (k in 1:length(FO)) {
  Pexp[k] <- pexp(limsup[k], rate = lambda) - pexp(liminf[k], rate = lambda)
}
FEexp <- Pexp * length(mpg_ciudad2)

valores_validos_exp <- FEexp > 0
X2_exp <- sum(((FO[valores_validos_exp] - FEexp[valores_validos_exp])^2) / FEexp[valores_validos_exp])
X2_exp
## [1] 1076
df_exp <- sum(valores_validos_exp) - 1 - 1
df_exp
## [1] 13
Vc_exp <- qchisq(0.95, df = df_exp)
Vc_exp
## [1] 22.36203
# ¿Se ajusta a distribución exponencial?
X2_exp < Vc_exp  
## [1] FALSE

5 Unrounded City MPG (FT2)

# Limpieza de datos
MPGcity2 <- datos$Unrounded.City.MPG..FT2.
MPGcity2 <- MPGcity2[!is.na(MPGcity2) & MPGcity2 != "" & MPGcity2 != -1]
MPGcity2 <- as.numeric(MPGcity2)
MPGcity2 <- MPGcity2[MPGcity2 > 0]
u <- mean(MPGcity2)
u
## [1] 16.59429
sigma <- sd(MPGcity2)
sigma
## [1] 19.2699
# Histograma con densidad
HistogramaNormal <- hist(MPGcity2, freq = FALSE,
                         main = "Gráfica No.11: Histograma 
                   de MPG Ciudad (FT2) con Curva Normal",
                         xlab = "MPG en Ciudad (FT2)",
                         ylab = "Densidad",
                         col = "#FFE4C4")
x <- seq(min(MPGcity2), max(MPGcity2), 0.01)
curve(dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2, add = TRUE)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
##  [1]   0  10  20  30  40  50  60  70  80  90 100 110 120 130 140
limsup <- HistogramaNormal$breaks[-1]
limsup
##  [1]  10  20  30  40  50  60  70  80  90 100 110 120 130 140 150
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], u, sigma) - pnorm(liminf[i], u, sigma)
}
FE <- P * length(MPGcity2)

valores_validos <- FE > 0
X2_normal <- sum(((FO[valores_validos] - FE[valores_validos])^2) / FE[valores_validos])
X2_normal
## [1] 15834894
df_normal <- sum(valores_validos) - 1 - 2
df_normal
## [1] 12
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 21.02607
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal  
## [1] FALSE

Modelo Log-Normal:

log_MPG <- log(MPGcity2)
ulog <- mean(log_MPG)
ulog
## [1] 2.571681
sigmalog <- sd(log_MPG)
sigmalog
## [1] 0.5345132
HistogramaLogNormal <- hist(MPGcity2, freq = FALSE,
                            main = "Gráfica No.12: Histograma 
                          de MPG Ciudad (FT2) con Curva Log-Normal",
                            xlab = "MPG en Ciudad (FT2)",
                            ylab = "Densidad",
                            col = "#FFE4C4")
x <- seq(min(MPGcity2), max(MPGcity2), 0.01)
curve(dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2, add = TRUE)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
##  [1]   0  10  20  30  40  50  60  70  80  90 100 110 120 130 140
limsup <- HistogramaLogNormal$breaks[-1]
limsup
##  [1]  10  20  30  40  50  60  70  80  90 100 110 120 130 140 150
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(MPGcity2)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 7913.653
df_log <- sum(valores_validos_log) - 1 - 2
df_log
## [1] 12
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 21.02607
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log  
## [1] FALSE

Modelo Exponencial:

lambda <- 1 / mean(MPGcity2)
lambda
## [1] 0.06026171
HistExp <- hist(MPGcity2, freq=FALSE,
                main="Gráfica No.13: Histograma 
            de MPG Ciudad (FT2) con Curva Exponencial",
                xlab="MPG en Ciudad (FT2)",
                ylab="Densidad",
                col="#F0FFFF")
x <- seq(min(MPGcity2), max(MPGcity2), 0.01)
curve(dexp(x, rate = lambda), col = "blue", lwd = 2, add = TRUE)

Test:

FO <- HistExp$counts
liminf <- HistExp$breaks[-length(HistExp$breaks)]
liminf
##  [1]   0  10  20  30  40  50  60  70  80  90 100 110 120 130 140
limsup <- HistExp$breaks[-1]
limsup
##  [1]  10  20  30  40  50  60  70  80  90 100 110 120 130 140 150
Pexp <- numeric(length(FO))
for (k in 1:length(FO)) {
  Pexp[k] <- pexp(limsup[k], rate = lambda) - pexp(liminf[k], rate = lambda)
}
FEexp <- Pexp * length(MPGcity2)

valores_validos_exp <- FEexp > 0
X2_exp <- sum(((FO[valores_validos_exp] - FEexp[valores_validos_exp])^2) / FEexp[valores_validos_exp])
X2_exp
## [1] 1050.895
df_exp <- sum(valores_validos_exp) - 1 - 1
df_exp
## [1] 13
Vc_exp <- qchisq(0.95, df = df_exp)
Vc_exp
## [1] 22.36203
# ¿Se ajusta a distribución exponencial?
X2_exp < Vc_exp   
## [1] FALSE

6 City Gasoline Consumption (CD)

consumoMPG <- datos$City.Gasoline.Consumption..CD.
consumoMPG <- consumoMPG[!is.na(consumoMPG) & consumoMPG != "" & consumoMPG != -1]
consumoMPG <- as.numeric(consumoMPG)
consumoMPG <- consumoMPG[consumoMPG > 0]
lambda <- 1 / mean(consumoMPG)
lambda
## [1] 0.8495764
# Histograma con curva exponencial
HistExp <- hist(consumoMPG, freq=FALSE,
                main="Gráfica No.8: Histograma 
            de Consumo de Gasolina en Ciudad con Curva Exponencial",
                xlab="Consumo de Gasolina (CD)",
                ylab="Densidad",
                col="#0000FF")
x <- seq(min(consumoMPG), max(consumoMPG), 0.01)
curve(dexp(x, rate = lambda), col = "red", lwd = 2, add = TRUE)

Test:

FO <- HistExp$counts
liminf <- HistExp$breaks[-length(HistExp$breaks)]
liminf
## [1] 0 1 2 3 4 5
limsup <- HistExp$breaks[-1]
limsup
## [1] 1 2 3 4 5 6
Pexp <- numeric(length(FO))
for (k in 1:length(FO)) {
  Pexp[k] <- pexp(limsup[k], rate = lambda) - pexp(liminf[k], rate = lambda)
}
FEexp <- Pexp * length(consumoMPG)
valores_validos <- FEexp > 0
X2_exp <- sum(((FO[valores_validos] - FEexp[valores_validos])^2) / FEexp[valores_validos])
X2_exp
## [1] 38.8027
df_exp <- sum(valores_validos) - 1 - 1
df_exp
## [1] 4
Vc_exp <- qchisq(0.95, df = df_exp)
Vc_exp
## [1] 9.487729
# ¿Se ajusta a la distribución exponencial?
X2_exp < Vc_exp
## [1] FALSE

7 City Electricity Consumption

# Limpieza de datos
consumoelec <- datos$City.Electricity.Consumption
consumoelec <- consumoelec[!is.na(consumoelec) & consumoelec != "" & consumoelec != -1]
consumoelec <- as.numeric(consumoelec)
consumoelec <- consumoelec[consumoelec > 0]
u <- mean(consumoelec)
u
## [1] 39.61481
sigma <- sd(consumoelec)
sigma
## [1] 14.94801
# Histograma con densidad
HistogramaNormal <- hist(consumoelec, freq = FALSE,
                         main = "Gráfica No.9: Histograma 
                    de Consumo de Energía con Curva Normal",
                         xlab = "Consumo de Energía (kWh)",
                         ylab = "Densidad",
                         col = "#A52A2A")
x <- seq(min(consumoelec), max(consumoelec), 0.01)
curve(dnorm(x, mean = u, sd = sigma), col = "blue", lwd = 2, add = TRUE)

Altura <- HistogramaNormal$density
Area <- sum(Altura * diff(HistogramaNormal$breaks))
Area
## [1] 1

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
##  [1]  20  30  40  50  60  70  80  90 100 110 120
limsup <- HistogramaNormal$breaks[-1]
limsup
##  [1]  30  40  50  60  70  80  90 100 110 120 130
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], u, sigma) - pnorm(liminf[i], u, sigma)
}
FE <- P * length(consumoelec)
FE
##  [1] 3.273252e+01 4.954700e+01 4.873102e+01 3.114142e+01 1.292635e+01
##  [6] 3.483008e+00 6.087099e-01 6.892975e-02 5.051996e-03 2.393769e-04
## [11] 7.324411e-06
valores_validos <- FE > 0
X2_normal <- sum(((FO[valores_validos] - FE[valores_validos])^2) / FE[valores_validos])
X2_normal
## [1] 136602.7
df_normal <- sum(valores_validos) - 1 - 2
df_normal
## [1] 8
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 15.50731
#¿Se ajusta a distribución normal?
X2_normal < Vc_normal  
## [1] FALSE

Modelo Log-Normal:

log_consumo <- log(consumoelec)
ulog <- mean(log_consumo)
ulog
## [1] 3.623627
sigmalog <- sd(log_consumo)
sigmalog
## [1] 0.3183241
HistogramaLogNormal <- hist(consumoelec, freq = FALSE,
                            main = "Gráfica No.10: Histograma 
                        de Consumo de Energía con Curva Log-Normal",
                            xlab = "Consumo de Energía (kWh)",
                            ylab = "Densidad",
                            col = "#A52A2A")
x <- seq(min(consumoelec), max(consumoelec), 0.01)
curve(dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "blue", lwd = 2, add = TRUE)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
##  [1]  20  30  40  50  60  70  80  90 100 110 120
limsup <- HistogramaLogNormal$breaks[-1]
limsup
##  [1]  30  40  50  60  70  80  90 100 110 120 130
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(consumoelec)
FElog 
##  [1] 43.17932136 67.09340271 46.79102490 22.34771140  8.86680961  3.21257310
##  [7]  1.11693419  0.38297680  0.13154305  0.04567205  0.01611401
valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 86.64989
df_log <- sum(valores_validos_log) - 1 - 2
df_log
## [1] 8
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 15.50731
#¿Se ajusta a distribución log-normal?
X2_log < Vc_log  
## [1] FALSE

Modelo Exponencial:

lambda <- 1 / mean(consumoelec)
lambda
## [1] 0.02524309
HistExp <- hist(consumoelec, freq = FALSE,
                main = "Gráfica No.11: Histograma 
          de Consumo de Energía con Curva Exponencial",
                xlab = "Consumo de Energía (kWh)",
                ylab = "Densidad",
                col = "#A52A2A")
x <- seq(min(consumoelec), max(consumoelec), 0.01)
curve(dexp(x, rate = lambda), col = "blue", lwd = 2, add = TRUE)

Test:

FO <- HistExp$counts
liminf <- HistExp$breaks[-length(HistExp$breaks)]
liminf
##  [1]  20  30  40  50  60  70  80  90 100 110 120
limsup <- HistExp$breaks[-1]
limsup
##  [1]  30  40  50  60  70  80  90 100 110 120 130
Pexp <- numeric(length(FO))
for (k in 1:length(FO)) {
  Pexp[k] <- pexp(limsup[k], rate = lambda) - pexp(liminf[k], rate = lambda)
}
FEexp <- Pexp * length(consumoelec)

valores_validos_exp <- FEexp > 0
X2_exp <- sum(((FO[valores_validos_exp] - FEexp[valores_validos_exp])^2) / FEexp[valores_validos_exp])
X2_exp
## [1] 230.6118
df_exp <- sum(valores_validos_exp) - 1 - 1
df_exp
## [1] 9
Vc_exp <- qchisq(0.95, df = df_exp)
Vc_exp
## [1] 16.91898
#¿Se ajusta a distribución exponencial?
X2_exp < Vc_exp  
## [1] FALSE

8 City Utility Factor

utilidad <- datos$City.Utility.Factor
utilidad <- as.numeric(utilidad)
utilidad <- utilidad[!is.na(utilidad) & utilidad > 0]
u <- mean(utilidad)
u
## [1] 0.4857585
sigma <- sd(utilidad)
sigma
## [1] 0.1618752
HistogramaNormal <- hist(utilidad, freq = FALSE,
                         main = "Gráfica No.12: Histograma 
                         de Utilidad Urbana con Curva Normal",
                         xlab = "Utilidad Urbana",
                         ylab = "Densidad",
                         col = "#CDAA7D")
x <- seq(min(utilidad), max(utilidad), 0.01)
curve(dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2, add = TRUE)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
## [1] 0.3 0.4 0.5 0.6 0.7 0.8
limsup <- HistogramaNormal$breaks[-1]
limsup
## [1] 0.4 0.5 0.6 0.7 0.8 0.9
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], u, sigma) - pnorm(liminf[i], u, sigma)
}
FE <- P * length(utilidad)

valores_validos <- FE > 0
X2_normal <- sum(((FO[valores_validos] - FE[valores_validos])^2) / FE[valores_validos])
X2_normal
## [1] 42.53847
df_normal <- sum(valores_validos) - 1 - 2
df_normal
## [1] 3
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 7.814728
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal  
## [1] FALSE

Modelo Log-Normal:

log_utilidad <- log(utilidad)
ulog <- mean(log_utilidad)
sigmalog <- sd(log_utilidad)
HistogramaLogNormal <- hist(utilidad, freq = FALSE,
                            main = "Gráfica No.13: Histograma 
                          de Utilidad Urbana con Curva Log-Normal",
                            xlab = "Utilidad Urbana",
                            ylab = "Densidad",
                            col = "#CDAA7D")
x <- seq(min(utilidad), max(utilidad), 0.01)
curve(dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2, add = TRUE)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
## [1] 0.3 0.4 0.5 0.6 0.7 0.8
limsup <- HistogramaLogNormal$breaks[-1]
limsup
## [1] 0.4 0.5 0.6 0.7 0.8 0.9
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(utilidad)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 25.40164
df_log <- sum(valores_validos_log) - 1 - 2
df_log
## [1] 3
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 7.814728
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log 
## [1] FALSE

Modelo Exponencial:

lambda <- 1 / mean(utilidad)
lambda
## [1] 2.058636
HistExp <- hist(utilidad, freq = FALSE,
                main = "Gráfica No.14: Histograma 
            de Utilidad Urbana con Curva Exponencial",
                xlab = "Utilidad Urbana",
                ylab = "Densidad",
                col = "#CDAA7D")

x <- seq(min(utilidad), max(utilidad), 0.01)
curve(dexp(x, rate = lambda), col = "red", lwd = 2, add = TRUE)

Test:

FO <- HistExp$counts
liminf <- HistExp$breaks[-length(HistExp$breaks)]
limsup <- HistExp$breaks[-1]
Pexp <- numeric(length(FO))
for (k in 1:length(FO)) {
  Pexp[k] <- pexp(limsup[k], rate = lambda) - pexp(liminf[k], rate = lambda)
}
FEexp <- Pexp * length(utilidad)

valores_validos_exp <- FEexp > 0
X2_exp <- sum(((FO[valores_validos_exp] - FEexp[valores_validos_exp])^2) / FEexp[valores_validos_exp])
X2_exp
## [1] 112.5837
df_exp <- sum(valores_validos_exp) - 1 - 1
df_exp
## [1] 4
Vc_exp <- qchisq(0.95, df = df_exp)
Vc_exp
## [1] 9.487729
# ¿Se ajusta a distribución exponencial?
X2_exp < Vc_exp   
## [1] FALSE

9 Highway MPG (FT1)

# Limpieza de datos
carretera <- datos$Highway.MPG..FT1.
carretera <- as.numeric(carretera)
carretera <- carretera[!is.na(carretera) & carretera > 0]
u <- mean(carretera)
sigma <- sd(carretera)
# Histograma y curva normal
HistogramaNormal <- hist(carretera, freq = FALSE,
                         main = "Gráfica No.15: Histograma 
                        de MPG Carretera con Curva Normal",
                         xlab = "MPG Carretera",
                         ylab = "Densidad",
                         col = "#0000EE")
x <- seq(min(carretera), max(carretera), 0.01)
lines(x, dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
##  [1]   5  10  15  20  25  30  35  40  45  50  55  60  65  70  75  80  85  90  95
## [20] 100 105 110 115 120
limsup <- HistogramaNormal$breaks[-1]
limsup
##  [1]  10  15  20  25  30  35  40  45  50  55  60  65  70  75  80  85  90  95 100
## [20] 105 110 115 120 125
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], mean = u, sd = sigma) - pnorm(liminf[i], mean = u, sd = sigma)
}
FE <- P * length(carretera)

valores_validos <- FE > 0
X2_normal <- sum((FO[valores_validos] - FE[valores_validos])^2 / FE[valores_validos])
X2_normal
## [1] 473164240605
df_normal <- sum(valores_validos) - 1 - 2  # -2 por estimar media y sd
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 22.36203
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal
## [1] FALSE

Modelo Log-Normal:

log_carretera <- log(carretera)
ulog <- mean(log_carretera)
sigmalog <- sd(log_carretera)
# Histograma y curva log-normal
HistogramaLogNormal <- hist(carretera, freq = FALSE,
                            main = "Gráfica No.16: Histograma 
                          de MPG Carretera con Curva Log-Normal",
                            xlab = "MPG Carretera",
                            ylab = "Densidad",
                            col = "#0000EE")
x <- seq(min(carretera), max(carretera), 0.01)
lines(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
##  [1]   5  10  15  20  25  30  35  40  45  50  55  60  65  70  75  80  85  90  95
## [20] 100 105 110 115 120
limsup <- HistogramaLogNormal$breaks[-1]
limsup
##  [1]  10  15  20  25  30  35  40  45  50  55  60  65  70  75  80  85  90  95 100
## [20] 105 110 115 120 125
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(carretera)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 7691938
df_log <- sum(valores_validos_log) - 1 - 2  # -2 por media y sd log
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 32.67057
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log
## [1] FALSE

10 Unrounded Highway MPG (FT1)

# Limpieza de datos
Mpgcarretera <- datos$Unrounded.Highway.MPG..FT1.
Mpgcarretera <- as.numeric(Mpgcarretera)
Mpgcarretera <- Mpgcarretera[!is.na(Mpgcarretera) & Mpgcarretera > 0]
u <- mean(Mpgcarretera)
u
## [1] 27.6541
sigma <- sd(Mpgcarretera)
sigma
## [1] 9.710954
# Histograma y curva normal
HistogramaNormal <- hist(Mpgcarretera, freq = FALSE,
                         main = "Gráfica No.17: 
                        Histograma de MPG Carretera con Curva Normal",
                         xlab = "MPG Carretera",
                         ylab = "Densidad",
                         col = "#A52A2A")
x <- seq(min(Mpgcarretera), max(Mpgcarretera), 0.01)
lines(x, dnorm(x, mean = u, sd = sigma), col = "blue", lwd = 2)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
##  [1]  10  20  30  40  50  60  70  80  90 100 110 120
limsup <- HistogramaNormal$breaks[-1]
limsup
##  [1]  20  30  40  50  60  70  80  90 100 110 120 130
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], mean = u, sd = sigma) - pnorm(liminf[i], mean = u, sd = sigma)
}
FE <- P * length(Mpgcarretera)

valores_validos <- FE > 0
X2_normal <- sum((FO[valores_validos] - FE[valores_validos])^2 / FE[valores_validos])
X2_normal
## [1] 3.10525e+12
df_normal <- sum(valores_validos) - 1 - 2  # 2 parámetros estimados: media y desviación estándar
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 14.06714
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal
## [1] FALSE

Modelo Log-Normal:

log_mpg <- log(Mpgcarretera)
ulog <- mean(log_mpg)
sigmalog <- sd(log_mpg)
# Histograma y curva log-normal
HistogramaLogNormal <- hist(Mpgcarretera, freq = FALSE,
                            main = "Gráfica No.18: 
                            Histograma de MPG Carretera con Curva Log-Normal",
                            xlab = "MPG Carretera",
                            ylab = "Densidad",
                            col = "#A52A2A")
x <- seq(min(Mpgcarretera), max(Mpgcarretera), 0.01)
lines(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "blue", lwd = 2)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
##  [1]  10  20  30  40  50  60  70  80  90 100 110 120
limsup <- HistogramaLogNormal$breaks[-1]
limsup
##  [1]  20  30  40  50  60  70  80  90 100 110 120 130
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(Mpgcarretera)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 1090253
df_log <- sum(valores_validos_log) - 1 - 2
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 16.91898
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log
## [1] FALSE

11 Highway MPG (FT2)

# Limpieza de datos
Mpgcarretera2 <- datos$Highway.MPG..FT2.
Mpgcarretera2 <- as.numeric(Mpgcarretera2)
Mpgcarretera2 <- Mpgcarretera2[!is.na(Mpgcarretera2) & Mpgcarretera2 > 0]
u <- mean(Mpgcarretera2)
u
## [1] 18.85605
sigma <- sd(Mpgcarretera2)
sigma
## [1] 14.08596
HistogramaNormal <- hist(Mpgcarretera2, freq = FALSE,
                         main = "Gráfica No.19: Histograma 
            de MPG Carretera (FT2) con Curva Normal",
                         xlab = "MPG Carretera (FT2)",
                         ylab = "Densidad",
                         col = "cadetblue1")
x <- seq(min(Mpgcarretera2), max(Mpgcarretera2), 0.01)
lines(x, dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
##  [1]  10  20  30  40  50  60  70  80  90 100 110 120
limsup <- HistogramaNormal$breaks[-1]
limsup
##  [1]  20  30  40  50  60  70  80  90 100 110 120 130
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], mean = u, sd = sigma) - pnorm(liminf[i], mean = u, sd = sigma)
}
FE <- P * length(Mpgcarretera2)

valores_validos <- FE > 0
X2_normal <- sum((FO[valores_validos] - FE[valores_validos])^2 / FE[valores_validos])
X2_normal
## [1] 2028539434
df_normal <- sum(valores_validos) - 1 - 2
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 16.91898
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal 
## [1] FALSE

Modelo Log-Normal:

log_mpg <- log(Mpgcarretera2)
ulog <- mean(log_mpg)
ulog
## [1] 2.822761
sigmalog <- sd(log_mpg)
sigmalog
## [1] 0.3918665
HistogramaLogNormal <- hist(Mpgcarretera2, freq = FALSE,
                            main = "Gráfica No.20: Histograma 
                      de MPG Carretera (FT2) con Curva Log-Normal",
                            xlab = "MPG Carretera (FT2)",
                            ylab = "Densidad",
                            col = "cadetblue1")
x <- seq(min(Mpgcarretera2), max(Mpgcarretera2), 0.01)
lines(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
##  [1]  10  20  30  40  50  60  70  80  90 100 110 120
limsup <- HistogramaLogNormal$breaks[-1]
limsup
##  [1]  20  30  40  50  60  70  80  90 100 110 120 130
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(Mpgcarretera2)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 55930.21
df_log <- sum(valores_validos_log) - 1 - 2
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 16.91898
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log
## [1] FALSE

Modelo Exponencial:

lambda <- 1 / mean(Mpgcarretera2)
lambda
## [1] 0.05303338
HistExp <- hist(Mpgcarretera2, freq = FALSE,
                main = "Gráfica No.21: Histograma 
        de MPG Carretera (FT2) con Curva Exponencial",
                xlab = "MPG Carretera (FT2)",
                ylab = "Densidad",
                col = "cadetblue1")
x <- seq(min(Mpgcarretera2), max(Mpgcarretera2), 0.01)
lines(x, dexp(x, rate = lambda), col = "red", lwd = 2)

Test:

FO <- HistExp$counts
liminf <- HistExp$breaks[-length(HistExp$breaks)]
liminf
##  [1]  10  20  30  40  50  60  70  80  90 100 110 120
limsup <- HistExp$breaks[-1]
limsup
##  [1]  20  30  40  50  60  70  80  90 100 110 120 130
Pexp <- numeric(length(FO))
for (k in 1:length(FO)) {
  Pexp[k] <- pexp(limsup[k], rate = lambda) - pexp(liminf[k], rate = lambda)
}
FEexp <- Pexp * length(Mpgcarretera2)

valores_validos_exp <- FEexp > 0
X2_exp <- sum(((FO[valores_validos_exp] - FEexp[valores_validos_exp])^2) / FEexp[valores_validos_exp])
X2_exp
## [1] 2272.227
df_exp <- sum(valores_validos_exp) - 1 - 1  # 1 parámetro estimado (lambda)
Vc_exp <- qchisq(0.95, df = df_exp)
Vc_exp
## [1] 18.30704
# ¿Se ajusta a distribución exponencial?
X2_exp < Vc_exp
## [1] FALSE

12 Unrounded Highway MPG (FT2)

# Limpieza de datos
Mpgcarretera22 <- datos$Unrounded.Highway.MPG..FT2.
Mpgcarretera22 <- as.numeric(Mpgcarretera22)
Mpgcarretera22 <- Mpgcarretera22[!is.na(Mpgcarretera22) & Mpgcarretera22 > 0]
lambda <- 1 / mean(Mpgcarretera22)
lambda
## [1] 0.04739992
HistExp <- hist(Mpgcarretera22, freq = FALSE,
                main = "Gráfica No.22: Histograma 
        de MPG Carretera sin Red (FT2) con Curva Exponencial",
                xlab = "MPG Carretera (FT2)",
                ylab = "Densidad",
                col = "#7FFF00")
x <- seq(min(Mpgcarretera22), max(Mpgcarretera22), 0.01)
lines(x, dexp(x, rate = lambda), col = "red", lwd = 2)

Test:

FO <- HistExp$counts
liminf <- HistExp$breaks[-length(HistExp$breaks)]
liminf
##  [1]  10  20  30  40  50  60  70  80  90 100 110 120
limsup <- HistExp$breaks[-1]
limsup
##  [1]  20  30  40  50  60  70  80  90 100 110 120 130
Pexp <- numeric(length(FO))
for (k in 1:length(FO)) {
  Pexp[k] <- pexp(limsup[k], rate = lambda) - pexp(liminf[k], rate = lambda)
}
FEexp <- Pexp * length(Mpgcarretera2)

valores_validos_exp <- FEexp > 0
X2_exp <- sum(((FO[valores_validos_exp] - FEexp[valores_validos_exp])^2) / FEexp[valores_validos_exp])
X2_exp
## [1] 558.2622
df_exp <- sum(valores_validos_exp) - 1 - 1  # 1 parámetro estimado (lambda)
Vc_exp <- qchisq(0.95, df = df_exp)
Vc_exp
## [1] 18.30704
# ¿Se ajusta a distribución exponencial?
X2_exp < Vc_exp
## [1] FALSE

13 Highway Gasoline Consumption (CD)

# Limpieza de datos
carreteragas <- datos$Highway.Gasoline.Consumption..CD.
carreteragas <- as.numeric(carreteragas)
carreteragas <- carreteragas[!is.na(carreteragas) & carreteragas > 0]
lambda <- 1 / mean(carreteragas)
lambda
## [1] 1.222426
# Histograma y curva exponencial
HistExp <- hist(carreteragas, freq = FALSE,
                main = "Gráfica No.23: Histograma de 
                Consumo de Gasolina en Carretera con Curva Exponencial",
                xlab = "Consumo de Gasolina (gal)",
                ylab = "Densidad",
                col = "#FF7F24")
x <- seq(min(carreteragas), max(carreteragas), 0.01)
lines(x, dexp(x, rate = lambda), col = "red", lwd = 2)

Test:

FO <- HistExp$counts
liminf <- HistExp$breaks[-length(HistExp$breaks)]
liminf
## [1] 0 1 2 3 4
limsup <- HistExp$breaks[-1]
limsup
## [1] 1 2 3 4 5
Pexp <- numeric(length(FO))
for (k in 1:length(FO)) {
  Pexp[k] <- pexp(limsup[k], rate = lambda) - pexp(liminf[k], rate = lambda)
}
FEexp <- Pexp * length(carreteragas)

valores_validos_exp <- FEexp > 0
X2_exp <- sum(((FO[valores_validos_exp] - FEexp[valores_validos_exp])^2) / FEexp[valores_validos_exp])
X2_exp
## [1] 67.92282
df_exp <- sum(valores_validos_exp) - 1 - 1  # -1 parámetro estimado (lambda)
Vc_exp <- qchisq(0.95, df = df_exp)
Vc_exp
## [1] 7.814728
# ¿Se ajusta a distribución exponencial?
X2_exp < Vc_exp
## [1] FALSE

14 Highway Electricity Consumption

# Limpieza de datos
carreteragas <- datos$Highway.Electricity.Consumption
carreteragas <- as.numeric(carreteragas)
carreteragas <- carreteragas[!is.na(carreteragas) & carreteragas > 0]
u <- mean(carreteragas)
u
## [1] 42.19774
sigma <- sd(carreteragas)
sigma
## [1] 14.9563
HistogramaNormal <- hist(carreteragas, freq = FALSE,
                         main = "Gráfica No.24: Histograma 
                de Consumo Eléctrico en Carretera con Curva Normal",
                         xlab = "Consumo Eléctrico (kWh)",
                         ylab = "Densidad",
                         col = "#FF7F50")
x <- seq(min(carreteragas), max(carreteragas), 0.01)
lines(x, dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
##  [1]  20  30  40  50  60  70  80  90 100 110
limsup <- HistogramaNormal$breaks[-1]
limsup
##  [1]  30  40  50  60  70  80  90 100 110 120
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], mean = u, sd = sigma) - pnorm(liminf[i], mean = u, sd = sigma)
}
FE <- P * length(carreteragas)

valores_validos <- FE > 0
X2_normal <- sum((FO[valores_validos] - FE[valores_validos])^2 / FE[valores_validos])
X2_normal
## [1] 3455.249
df_normal <- sum(valores_validos) - 1 - 2
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 14.06714
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal
## [1] FALSE

Modelo Log-Normal:

log_carretera <- log(carreteragas)
ulog <- mean(log_carretera)
ulog
## [1] 3.697229
sigmalog <- sd(log_carretera)
sigmalog
## [1] 0.2804669
HistogramaLogNormal <- hist(carreteragas, freq = FALSE,
                            main = "Gráfica No.25: Histograma 
                  de Consumo Eléctrico en Carretera con Curva Log-Normal",
                            xlab = "Consumo Eléctrico (kWh)",
                            ylab = "Densidad",
                            col = "#FF7F50")
x <- seq(min(carreteragas), max(carreteragas), 0.01)
lines(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
##  [1]  20  30  40  50  60  70  80  90 100 110
limsup <- HistogramaLogNormal$breaks[-1]
limsup
##  [1]  30  40  50  60  70  80  90 100 110 120
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(carreteragas)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 277.5895
df_log <- sum(valores_validos_log) - 1 - 2
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 14.06714
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log
## [1] FALSE

Modelo Exponencial:

lambda <- 1 / mean(carreteragas)
lambda
## [1] 0.02369795
HistExp <- hist(carreteragas, freq = FALSE,
                main = "Gráfica No.26: Histograma 
          de Consumo Eléctrico en Carretera con Curva Exponencial",
                xlab = "Consumo Eléctrico (kWh)",
                ylab = "Densidad",
                col = "#FF7F50")
x <- seq(min(carreteragas), max(carreteragas), 0.01)
lines(x, dexp(x, rate = lambda), col = "red", lwd = 2)

Test:

FO <- HistExp$counts
liminf <- HistExp$breaks[-length(HistExp$breaks)]
liminf
##  [1]  20  30  40  50  60  70  80  90 100 110
limsup <- HistExp$breaks[-1]
limsup
##  [1]  30  40  50  60  70  80  90 100 110 120
Pexp <- numeric(length(FO))
for (k in 1:length(FO)) {
  Pexp[k] <- pexp(limsup[k], rate = lambda) - pexp(liminf[k], rate = lambda)
}
FEexp <- Pexp * length(carreteragas)

valores_validos_exp <- FEexp > 0
X2_exp <- sum(((FO[valores_validos_exp] - FEexp[valores_validos_exp])^2) / FEexp[valores_validos_exp])
X2_exp
## [1] 486.6106
df_exp <- sum(valores_validos_exp) - 1 - 1
Vc_exp <- qchisq(0.95, df = df_exp)
Vc_exp
## [1] 15.50731
# ¿Se ajusta a distribución exponencial?
X2_exp < Vc_exp
## [1] FALSE

15 Highway Utility Factor

# Limpieza de datos
utilidadcarre <- datos$Highway.Utility.Factor
utilidadcarre <- as.numeric(utilidadcarre)
utilidadcarre <- utilidadcarre[!is.na(utilidadcarre) & utilidadcarre > 0]
u <- mean(utilidadcarre)
u
## [1] 0.4641385
sigma <- sd(utilidadcarre)
sigma
## [1] 0.1567848
HistogramaNormal <- hist(utilidadcarre, freq = FALSE,
                         main = "Gráfica No.27: Histograma 
              de Utility Factor en Carretera con Curva Normal",
                         xlab = "Utility Factor",
                         ylab = "Densidad",
                         col = "#FFF8DC")
x <- seq(min(utilidadcarre), max(utilidadcarre), 0.01)
lines(x, dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
## [1] 0.2 0.3 0.4 0.5 0.6 0.7 0.8
limsup <- HistogramaNormal$breaks[-1]
limsup
## [1] 0.3 0.4 0.5 0.6 0.7 0.8 0.9
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], mean = u, sd = sigma) - pnorm(liminf[i], mean = u, sd = sigma)
}
FE <- P * length(utilidadcarre)

valores_validos <- FE > 0
X2_normal <- sum((FO[valores_validos] - FE[valores_validos])^2 / FE[valores_validos])
X2_normal
## [1] 34.32042
df_normal <- sum(valores_validos) - 1 - 2
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 9.487729
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal
## [1] FALSE

Modelo Log-Normal:

log_utility <- log(utilidadcarre)
ulog <- mean(log_utility)
ulog
## [1] -0.8192646
sigmalog <- sd(log_utility)
sigmalog
## [1] 0.318924
HistogramaLogNormal <- hist(utilidadcarre, freq = FALSE,
                            main = "Gráfica No.28: Histograma 
                    de Utility Factor en Carretera con Curva Log-Normal",
                            xlab = "Utility Factor",
                            ylab = "Densidad",
                            col = "#FFF8DC")
x <- seq(min(utilidadcarre), max(utilidadcarre), 0.01)
lines(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
## [1] 0.2 0.3 0.4 0.5 0.6 0.7 0.8
limsup <- HistogramaLogNormal$breaks[-1]
limsup
## [1] 0.3 0.4 0.5 0.6 0.7 0.8 0.9
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(utilidadcarre)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 20.20751
df_log <- sum(valores_validos_log) - 1 - 2
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 9.487729
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log
## [1] FALSE

16 Unadjusted City MPG (FT1)

# Limpieza de datos
cuidadmpg <- datos$Unadjusted.City.MPG..FT1.
cuidadmpg <- as.numeric(cuidadmpg)
cuidadmpg <- cuidadmpg[!is.na(cuidadmpg) & cuidadmpg > 0]
u <- mean(cuidadmpg)
u
## [1] 22.66826
sigma <- sd(cuidadmpg)
sigma
## [1] 9.635877
HistogramaNormal <- hist(cuidadmpg, freq = FALSE,
                         main = "Gráfica No.29: Histograma 
                        de City MPG (FT1) con Curva Normal",
                         xlab = "City MPG (FT1)",
                         ylab = "Densidad",
                         col = "cyan")
x <- seq(min(cuidadmpg), max(cuidadmpg), 0.01)
lines(x, dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
##  [1]   0  10  20  30  40  50  60  70  80  90 100 110 120 130 140 150 160 170 180
## [20] 190 200 210 220
limsup <- HistogramaNormal$breaks[-1]
limsup
##  [1]  10  20  30  40  50  60  70  80  90 100 110 120 130 140 150 160 170 180 190
## [20] 200 210 220 230
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], mean = u, sd = sigma) - pnorm(liminf[i], mean = u, sd = sigma)
}
FE <- P * length(cuidadmpg)

valores_validos <- FE > 0
X2_normal <- sum((FO[valores_validos] - FE[valores_validos])^2 / FE[valores_validos])
X2_normal
## [1] 189189554798
df_normal <- sum(valores_validos) - 1 - 2
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 15.50731
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal
## [1] FALSE

Modelo Log-Normal:

log_cuidad <- log(cuidadmpg)
ulog <- mean(log_cuidad)
ulog
## [1] 3.071552
sigmalog <- sd(log_cuidad)
sigmalog
## [1] 0.2914421
HistogramaLogNormal <- hist(cuidadmpg, freq = FALSE,
                            main = "Gráfica No.30: Histograma 
                          de City MPG (FT1) con Curva Log-Normal",
                            xlab = "City MPG (FT1)",
                            ylab = "Densidad",
                            col = "cyan")

x <- seq(min(cuidadmpg), max(cuidadmpg), 0.01)
lines(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
##  [1]   0  10  20  30  40  50  60  70  80  90 100 110 120 130 140 150 160 170 180
## [20] 190 200 210 220
limsup <- HistogramaLogNormal$breaks[-1]
limsup
##  [1]  10  20  30  40  50  60  70  80  90 100 110 120 130 140 150 160 170 180 190
## [20] 200 210 220 230
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(cuidadmpg)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 136881620285
df_log <- sum(valores_validos_log) - 1 - 2
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 31.41043
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log
## [1] FALSE

17 Unadjusted Highway MPG (FT1)

# Limpieza de datos
carreteraMpg <- datos$Unadjusted.Highway.MPG..FT1.
carreteraMpg <- as.numeric(carreteraMpg)
carreteraMpg <- carreteraMpg[!is.na(carreteraMpg) & carreteraMpg > 0]
u <- mean(carreteraMpg)
u
## [1] 33.70009
sigma <- sd(carreteraMpg)
sigma
## [1] 10.19994
HistogramaNormal <- hist(carreteraMpg, freq = FALSE,
                         main = "Gráfica No.31: Histograma 
                         de Unadjusted Highway MPG (FT1) con Curva Normal",
                         xlab = "Highway MPG (FT1)",
                         ylab = "Densidad",
                         col = "darkgoldenrod1")
x <- seq(min(carreteraMpg), max(carreteraMpg), 0.01)
lines(x, dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
##  [1]  10  20  30  40  50  60  70  80  90 100 110 120 130 140 150 160 170 180
limsup <- HistogramaNormal$breaks[-1]
limsup
##  [1]  20  30  40  50  60  70  80  90 100 110 120 130 140 150 160 170 180 190
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], mean = u, sd = sigma) - pnorm(liminf[i], mean = u, sd = sigma)
}
FE <- P * length(carreteraMpg)

valores_validos <- FE > 0
X2_normal <- sum((FO[valores_validos] - FE[valores_validos])^2 / FE[valores_validos])
X2_normal
## [1] 159318655606
df_normal <- sum(valores_validos) - 1 - 2
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 15.50731
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal
## [1] FALSE

Modelo Log-Normal:

log_mpg <- log(carreteraMpg)
ulog <- mean(log_mpg)
ulog 
## [1] 3.480057
sigmalog <- sd(log_mpg)
sigmalog 
## [1] 0.2686124
HistogramaLogNormal <- hist(carreteraMpg, freq = FALSE,
                            main = "Gráfica No.32: Histograma 
                      de Unadjusted Highway MPG (FT1) con Curva Log-Normal",
                            xlab = "Highway MPG (FT1)",
                            ylab = "Densidad",
                            col = "darkgoldenrod1")
x <- seq(min(carreteraMpg), max(carreteraMpg), 0.01)
lines(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
##  [1]  10  20  30  40  50  60  70  80  90 100 110 120 130 140 150 160 170 180
limsup <- HistogramaLogNormal$breaks[-1]
limsup
##  [1]  20  30  40  50  60  70  80  90 100 110 120 130 140 150 160 170 180 190
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(carreteraMpg)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 2964975
df_log <- sum(valores_validos_log) - 1 - 2
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 24.99579
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log
## [1] FALSE

18 Unadjusted City MPG (FT2)

# Limpieza de datos
cuidadmpg2 <- datos$Unadjusted.City.MPG..FT2.
cuidadmpg2 <- as.numeric(cuidadmpg2)
cuidadmpg2 <- cuidadmpg2[!is.na(cuidadmpg2) & cuidadmpg2 > 0]
lambda <- 1 / mean(cuidadmpg2)
lambda
## [1] 0.05303699
# Histograma y curva exponencial
HistExp <- hist(cuidadmpg2, freq = FALSE,
                main = "Gráfica No.33: Histograma 
                de MPG Ciudad (FT2) con Curva Exponencial",
                xlab = "MPG Ciudad (FT2)",
                ylab = "Densidad",
                col = "#A2CD5A")
x <- seq(min(cuidadmpg2), max(cuidadmpg2), 0.01)
lines(x, dexp(x, rate = lambda), col = "red", lwd = 2)

Test:

FO <- HistExp$counts
liminf <- HistExp$breaks[-length(HistExp$breaks)]
liminf
##  [1]   0  20  40  60  80 100 120 140 160 180 200
limsup <- HistExp$breaks[-1]
limsup
##  [1]  20  40  60  80 100 120 140 160 180 200 220
Pexp <- numeric(length(FO))
for (k in 1:length(FO)) {
  Pexp[k] <- pexp(limsup[k], rate = lambda) - pexp(liminf[k], rate = lambda)
}
FEexp <- Pexp * length(cuidadmpg2)

# Prueba de bondad de ajuste
valores_validos_exp <- FEexp > 0
X2_exp <- sum(((FO[valores_validos_exp] - FEexp[valores_validos_exp])^2) / FEexp[valores_validos_exp])
X2_exp
## [1] 1070.92
df_exp <- sum(valores_validos_exp) - 1 - 1  # 1 parámetro estimado: lambda
Vc_exp <- qchisq(0.95, df = df_exp)
Vc_exp
## [1] 16.91898
# ¿Se ajusta a distribución exponencial?
X2_exp < Vc_exp
## [1] FALSE

19 Unadjusted Highway MPG (FT2)

# Limpieza de datos
carreteraMpg2 <- datos$Unadjusted.Highway.MPG..FT2.
carreteraMpg2 <- as.numeric(carreteraMpg2)
carreteraMpg2 <- carreteraMpg2[!is.na(carreteraMpg2) & carreteraMpg2 > 0]
u <- mean(carreteraMpg2)
u
## [1] 26.62751
sigma <- sd(carreteraMpg2)
sigma
## [1] 20.75965
# Histograma y curva normal
HistogramaNormal <- hist(carreteraMpg2, freq = FALSE,
                         main = "Gráfica No.34: Histograma de 
                        Unadjusted Highway MPG (FT2) con Curva Normal",
                         xlab = "Highway MPG (FT2)",
                         ylab = "Densidad",
                         col = "darkolivegreen4")
x <- seq(min(carreteraMpg2), max(carreteraMpg2), 0.01)
lines(x, dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
##  [1]  10  20  30  40  50  60  70  80  90 100 110 120 130 140 150 160 170
limsup <- HistogramaNormal$breaks[-1]
limsup
##  [1]  20  30  40  50  60  70  80  90 100 110 120 130 140 150 160 170 180
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], mean = u, sd = sigma) - pnorm(liminf[i], mean = u, sd = sigma)
}
FE <- P * length(carreteraMpg2)

valores_validos <- FE > 0
X2_normal <- sum((FO[valores_validos] - FE[valores_validos])^2 / FE[valores_validos])
X2_normal
## [1] 308641136
df_normal <- sum(valores_validos) - 1 - 2
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 23.68479
#¿Se ajusta a distribución normal?
X2_normal < Vc_normal
## [1] FALSE

Modelo Log-Normal:

log_mpg <- log(carreteraMpg2)
ulog <- mean(log_mpg)
ulog
## [1] 3.157438
sigmalog <- sd(log_mpg)
sigmalog
## [1] 0.4102108
# Histograma y curva log-normal
HistogramaLogNormal <- hist(carreteraMpg2, freq = FALSE,
                            main = "Gráfica No.35: Histograma de 
                      Unadjusted Highway MPG (FT2) con Curva Log-Normal",
                            xlab = "Highway MPG (FT2)",
                            ylab = "Densidad",
                            col = "darkolivegreen4")
x <- seq(min(carreteraMpg2), max(carreteraMpg2), 0.01)
lines(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
##  [1]  10  20  30  40  50  60  70  80  90 100 110 120 130 140 150 160 170
limsup <- HistogramaLogNormal$breaks[-1]
limsup
##  [1]  20  30  40  50  60  70  80  90 100 110 120 130 140 150 160 170 180
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(carreteraMpg2)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 31893.76
df_log <- sum(valores_validos_log) - 1 - 2
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 23.68479
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log
## [1] FALSE

20 Combined MPG (FT1)

# Limpieza de datos
mpgcombinado <- datos$Combined.MPG..FT1.
mpgcombinado <- as.numeric(mpgcombinado)
mpgcombinado <- mpgcombinado[!is.na(mpgcombinado) & mpgcombinado > 0]
u <- mean(mpgcombinado)
u
## [1] 20.21607
sigma <- sd(mpgcombinado)
sigma
## [1] 6.772655
# Histograma y curva normal
HistogramaNormal <- hist(mpgcombinado, freq = FALSE,
                         main = "Gráfica No.36: Histograma 
                        de Combined MPG (FT1) con Curva Normal",
                         xlab = "Combined MPG (FT1)",
                         ylab = "Densidad",
                         col = "#00BFFF")
x <- seq(min(mpgcombinado), max(mpgcombinado), 0.01)
lines(x, dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
##  [1]   0  10  20  30  40  50  60  70  80  90 100 110 120 130
limsup <- HistogramaNormal$breaks[-1]
limsup
##  [1]  10  20  30  40  50  60  70  80  90 100 110 120 130 140
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], mean = u, sd = sigma) - pnorm(liminf[i], mean = u, sd = sigma)
}
FE <- P * length(mpgcombinado)

valores_validos <- FE > 0
X2_normal <- sum((FO[valores_validos] - FE[valores_validos])^2 / FE[valores_validos])
X2_normal
## [1] 32202911516
df_normal <- sum(valores_validos) - 1 - 2
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 11.0705
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal
## [1] FALSE

Modelo Log-Normal:

log_mpg <- log(mpgcombinado)
ulog <- mean(log_mpg)
ulog
## [1] 2.968419
sigmalog <- sd(log_mpg)
sigmalog
## [1] 0.2633737
# Histograma y curva log-normal
HistogramaLogNormal <- hist(mpgcombinado, freq = FALSE,
                            main = "Gráfica No.37: Histograma 
                          de Combined MPG (FT1) con Curva Log-Normal",
                            xlab = "Combined MPG (FT1)",
                            ylab = "Densidad",
                            col = "#00BFFF")
x <- seq(min(mpgcombinado), max(mpgcombinado), 0.01)
lines(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
##  [1]   0  10  20  30  40  50  60  70  80  90 100 110 120 130
limsup <- HistogramaLogNormal$breaks[-1]
limsup
##  [1]  10  20  30  40  50  60  70  80  90 100 110 120 130 140
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(mpgcombinado)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 1240732936
df_log <- sum(valores_validos_log) - 1 - 2
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 19.67514
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log
## [1] FALSE

21 Unrounded Combined MPG (FT1)

# Limpieza de datos
mpgcombinado1 <- datos$Unrounded.Combined.MPG..FT1.
mpgcombinado1 <- as.numeric(mpgcombinado1)
mpgcombinado1 <- mpgcombinado1[!is.na(mpgcombinado1) & mpgcombinado1 > 0]
u <- mean(mpgcombinado1)
u
## [1] 23.29061
sigma <- sd(mpgcombinado1)
sigma
## [1] 10.42525
# Histograma y curva normal
HistogramaNormal <- hist(mpgcombinado1, freq = FALSE,
                         main = "Gráfica No.38: Histograma 
                        de Unrounded Combined MPG (FT1) con Curva Normal",
                         xlab = "Unrounded Combined MPG (FT1)",
                         ylab = "Densidad",
                         col = "#FFD700")
x <- seq(min(mpgcombinado1), max(mpgcombinado1), 0.01)
lines(x, dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
##  [1]  10  20  30  40  50  60  70  80  90 100 110 120 130
limsup <- HistogramaNormal$breaks[-1]
limsup
##  [1]  20  30  40  50  60  70  80  90 100 110 120 130 140
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], mean = u, sd = sigma) - pnorm(liminf[i], mean = u, sd = sigma)
}
FE <- P * length(mpgcombinado1)

valores_validos <- FE > 0
X2_normal <- sum((FO[valores_validos] - FE[valores_validos])^2 / FE[valores_validos])
X2_normal
## [1] 792807587176
df_normal <- sum(valores_validos) - 1 - 2
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 14.06714
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal
## [1] FALSE

Modelo Log-Normal:

log_mpg <- log(mpgcombinado1)
ulog <- mean(log_mpg)
ulog
## [1] 3.094357
sigmalog <- sd(log_mpg)
sigmalog
## [1] 0.2960055
# Histograma y curva log-normal
HistogramaLogNormal <- hist(mpgcombinado, freq = FALSE,
                            main = "Gráfica No.39: Histograma 
                          de Unrounded Combined MPG (FT1) con Curva Log-Normal",
                            xlab = "Unrounded Combined MPG (FT1)",
                            ylab = "Densidad",
                            col = "#FFD700")
x <- seq(min(mpgcombinado1), max(mpgcombinado1), 0.01)
lines(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
##  [1]   0  10  20  30  40  50  60  70  80  90 100 110 120 130
limsup <- HistogramaLogNormal$breaks[-1]
limsup
##  [1]  10  20  30  40  50  60  70  80  90 100 110 120 130 140
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(mpgcombinado)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 1032727
df_log <- sum(valores_validos_log) - 1 - 2
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 19.67514
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log
## [1] FALSE

22 Combined MPG (FT2)

# Limpieza de datos
mpgcombinado2 <- datos$Combined.MPG..FT2.
mpgcombinado2 <- as.numeric(mpgcombinado2)
mpgcombinado2 <- mpgcombinado2[!is.na(mpgcombinado2) & mpgcombinado2 > 0]
u <- mean(mpgcombinado2)
u
## [1] 16.08484
sigma <- sd(mpgcombinado2)
sigma
## [1] 14.86491
# Histograma y curva normal
HistogramaNormal <- hist(mpgcombinado2, freq = FALSE,
                         main = "Gráfica No.40: Histograma 
                         de Combined MPG (FT2) con Curva Normal",
                         xlab = "Combined MPG (FT2)",
                         ylab = "Densidad",
                         col = "#838B83")
x <- seq(min(mpgcombinado2), max(mpgcombinado2), 0.01)
lines(x, dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
##  [1]   0  10  20  30  40  50  60  70  80  90 100 110 120 130
limsup <- HistogramaNormal$breaks[-1]
limsup
##  [1]  10  20  30  40  50  60  70  80  90 100 110 120 130 140
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], mean = u, sd = sigma) - pnorm(liminf[i], mean = u, sd = sigma)
}
FE <- P * length(mpgcombinado2)

valores_validos <- FE > 0
X2_normal <- sum((FO[valores_validos] - FE[valores_validos])^2 / FE[valores_validos])
X2_normal
## [1] 76520244882
df_normal <- sum(valores_validos) - 1 - 2
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 19.67514
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal
## [1] FALSE

Modelo Log-Normal:

log_mpg <- log(mpgcombinado2)
ulog <- mean(log_mpg)
ulog
## [1] 2.631469
sigmalog <- sd(log_mpg)
sigmalog
## [1] 0.4231796
# Histograma y curva log-normal
HistogramaLogNormal <- hist(mpgcombinado2, freq = FALSE,
                            main = "Gráfica No.41: Histograma de 
                            Combined MPG (FT2) con Curva Log-Normal",
                            xlab = "Combined MPG (FT2)",
                            ylab = "Densidad",
                            col = "#838B83")
x <- seq(min(mpgcombinado2), max(mpgcombinado2), 0.01)
lines(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
##  [1]   0  10  20  30  40  50  60  70  80  90 100 110 120 130
limsup <- HistogramaLogNormal$breaks[-1]
limsup
##  [1]  10  20  30  40  50  60  70  80  90 100 110 120 130 140
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(mpgcombinado2)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 123150.5
df_log <- sum(valores_validos_log) - 1 - 2
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 19.67514
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log
## [1] FALSE

23 Unrounded Combined MPG (FT2)

# Limpieza de datos
mpgcombinado2 <- datos$Unrounded.Combined.MPG..FT1.
mpgcombinado2 <- as.numeric(mpgcombinado2)
mpgcombinado2 <- mpgcombinado2[!is.na(mpgcombinado2) & mpgcombinado2 > 0]
u <- mean(mpgcombinado2)
u
## [1] 23.29061
sigma <- sd(mpgcombinado2)
sigma
## [1] 10.42525
# Histograma y curva normal
HistogramaNormal <- hist(mpgcombinado2, freq = FALSE,
                         main = "Gráfica No.42: Histograma 
                        de Unrounded Combined MPG (FT2) con Curva Normal",
                         xlab = "Unrounded Combined MPG (FT2)",
                         ylab = "Densidad",
                         col = "#FF69B4")
x <- seq(min(mpgcombinado2), max(mpgcombinado2), 0.01)
lines(x, dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
##  [1]  10  20  30  40  50  60  70  80  90 100 110 120 130
limsup <- HistogramaNormal$breaks[-1]
limsup
##  [1]  20  30  40  50  60  70  80  90 100 110 120 130 140
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], mean = u, sd = sigma) - pnorm(liminf[i], mean = u, sd = sigma)
}
FE <- P * length(mpgcombinado2)

valores_validos <- FE > 0
X2_normal <- sum((FO[valores_validos] - FE[valores_validos])^2 / FE[valores_validos])
X2_normal
## [1] 792807587176
df_normal <- sum(valores_validos) - 1 - 2
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 14.06714
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal
## [1] FALSE

Modelo Log-Normal:

log_mpg <- log(mpgcombinado2)
ulog <- mean(log_mpg)
ulog
## [1] 3.094357
sigmalog <- sd(log_mpg)
sigmalog
## [1] 0.2960055
# Histograma y curva log-normal
HistogramaLogNormal <- hist(mpgcombinado2, freq = FALSE,
                            main = "Gráfica No.43: Histograma 
                          de Unrounded Combined MPG (FT2) con Curva Log-Normal",
                            xlab = "Unrounded Combined MPG (FT2)",
                            ylab = "Densidad",
                            col = "#FF69B4")
x <- seq(min(mpgcombinado2), max(mpgcombinado2), 0.01)
lines(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
##  [1]  10  20  30  40  50  60  70  80  90 100 110 120 130
limsup <- HistogramaLogNormal$breaks[-1]
limsup
##  [1]  20  30  40  50  60  70  80  90 100 110 120 130 140
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(mpgcombinado)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 1041385
df_log <- sum(valores_validos_log) - 1 - 2
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 18.30704
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log
## [1] FALSE

24 Combined Electricity Consumption

# Limpieza de datos
combinadoelec <- datos$Combined.Electricity.Consumption
combinadoelec <- as.numeric(combinadoelec)
combinadoelec <- combinadoelec[!is.na(combinadoelec) & combinadoelec > 0]
u <- mean(combinadoelec)
u
## [1] 40.72339
sigma <- sd(combinadoelec)
sigma
## [1] 14.72142
# Histograma y curva normal
HistogramaNormal <- hist(combinadoelec, freq = FALSE,
                         main = "Gráfica No.44: Histograma 
                         de Combined Electricity Consumption con Curva Normal",
                         xlab = "Combined Electricity Consumption (kWh)",
                         ylab = "Densidad",
                         col = "lavenderblush1")
x <- seq(min(combinadoelec), max(combinadoelec), 0.01)
lines(x, dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
##  [1]  20  30  40  50  60  70  80  90 100 110 120
limsup <- HistogramaNormal$breaks[-1]
limsup
##  [1]  30  40  50  60  70  80  90 100 110 120 130
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], mean = u, sd = sigma) - pnorm(liminf[i], mean = u, sd = sigma)
}
FE <- P * length(combinadoelec)

valores_validos <- FE > 0
X2_normal <- sum((FO[valores_validos] - FE[valores_validos])^2 / FE[valores_validos])
X2_normal
## [1] 142305.6
df_normal <- sum(valores_validos) - 1 - 2
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 15.50731
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal
## [1] FALSE

Modelo Log-Normal:

log_elec <- log(combinadoelec)
ulog <- mean(log_elec)
ulog
## [1] 3.657823
sigmalog <- sd(log_elec)
sigmalog
## [1] 0.2954045
# Histograma y curva log-normal
HistogramaLogNormal <- hist(combinadoelec, freq = FALSE,
                            main = "Gráfica No.45: Histograma de Combined 
                            Electricity Consumption con Curva Log-Normal",
                            xlab = "Combined Electricity Consumption (kWh)",
                            ylab = "Densidad",
                            col = "lavenderblush1")
x <- seq(min(combinadoelec), max(combinadoelec), 0.01)
lines(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
##  [1]  20  30  40  50  60  70  80  90 100 110 120
limsup <- HistogramaLogNormal$breaks[-1]
limsup
##  [1]  30  40  50  60  70  80  90 100 110 120 130
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(combinadoelec)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 163.6557
df_log <- sum(valores_validos_log) - 1 - 2
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 15.50731
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log
## [1] FALSE

25 Combined Gasoline Consumption (CD)

# Limpieza de datos
combinadogas <- datos$Combined.Gasoline.Consumption..CD.
combinadogas <- as.numeric(combinadogas)
combinadogas <- combinadogas[!is.na(combinadogas) & combinadogas > 0]
lambda <- 1 / mean(combinadogas)
lambda
## [1] 1.357527
HistExp <- hist(combinadogas, freq = FALSE,
                main = "Gráfica No.46: Histograma de Combined 
                Gasoline Consumption (CD) con Curva Exponencial",
                xlab = "Consumo de Gasolina Combinado (galones)",
                ylab = "Densidad",
                col = "#FF83FA")
x <- seq(min(combinadogas), max(combinadogas), 0.01)
lines(x, dexp(x, rate = lambda), col = "red", lwd = 2)

Test:

FO <- HistExp$counts
liminf <- HistExp$breaks[-length(HistExp$breaks)]
liminf
## [1] 0 1 2 3 4
limsup <- HistExp$breaks[-1]
limsup
## [1] 1 2 3 4 5
Pexp <- numeric(length(FO))
for (k in 1:length(FO)) {
  Pexp[k] <- pexp(limsup[k], rate = lambda) - pexp(liminf[k], rate = lambda)
}
FEexp <- Pexp * length(combinadogas)

valores_validos_exp <- FEexp > 0
X2_exp <- sum((FO[valores_validos_exp] - FEexp[valores_validos_exp])^2 / FEexp[valores_validos_exp])
X2_exp
## [1] 69.40032
df_exp <- sum(valores_validos_exp) - 1 - 1
Vc_exp <- qchisq(0.95, df = df_exp)
Vc_exp
## [1] 7.814728
# ¿Se ajusta a distribución exponencial?
X2_exp < Vc_exp
## [1] FALSE

26 Combined Utility Factor

# Limpieza de datos
combinadouti <- datos$Combined.Utility.Factor
combinadouti <- as.numeric(combinadouti)
combinadouti <- combinadouti[!is.na(combinadouti) & combinadouti > 0]
u <- mean(combinadouti)
u
## [1] 0.4761246
sigma <- sd(combinadouti)
sigma
## [1] 0.1584115
HistogramaNormal <- hist(combinadouti, freq = FALSE,
                         main = "Gráfica No.47: Histograma de 
                         Combined Utility Factor con Curva Normal",
                         xlab = "Combined Utility Factor",
                         ylab = "Densidad",
                         col = "#FFC0CB")
x <- seq(min(combinadouti), max(combinadouti), 0.01)
lines(x, dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
## [1] 0.2 0.3 0.4 0.5 0.6 0.7 0.8
limsup <- HistogramaNormal$breaks[-1]
limsup
## [1] 0.3 0.4 0.5 0.6 0.7 0.8 0.9
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], mean = u, sd = sigma) - pnorm(liminf[i], mean = u, sd = sigma)
}
FE <- P * length(combinadouti)

valores_validos <- FE > 0
X2_normal <- sum((FO[valores_validos] - FE[valores_validos])^2 / FE[valores_validos])
X2_normal
## [1] 31.6868
df_normal <- sum(valores_validos) - 1 - 2
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 9.487729
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal
## [1] FALSE

Modelo Log-Normal:

log_uf <- log(combinadouti)
ulog <- mean(log_uf)
ulog
## [1] -0.7915008
sigmalog <- sd(log_uf)
sigmalog
## [1] 0.3101012
HistogramaLogNormal <- hist(combinadouti, freq = FALSE,
                            main = "Gráfica No.48: Histograma 
                            de Combined Utility Factor con Curva Log-Normal",
                            xlab = "Combined Utility Factor",
                            ylab = "Densidad",
                            col = "#FFC0CB")
x <- seq(min(combinadouti), max(combinadouti), 0.01)
lines(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
## [1] 0.2 0.3 0.4 0.5 0.6 0.7 0.8
limsup <- HistogramaLogNormal$breaks[-1]
limsup
## [1] 0.3 0.4 0.5 0.6 0.7 0.8 0.9
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(combinadouti)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 20.27282
df_log <- sum(valores_validos_log) - 1 - 2
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 9.487729
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log
## [1] FALSE

27 Annual Fuel Cost (FT1)

# Limpieza de datos
costoanual <- datos$Annual.Fuel.Cost..FT1.
costoanual <- as.numeric(costoanual)
costoanual <- costoanual[!is.na(costoanual) & costoanual > 0]
u <- mean(costoanual)
u
## [1] 1970.675
sigma <- sd(costoanual)
sigma
## [1] 532.5552
HistogramaNormal <- hist(costoanual, freq = FALSE,
                         main = "Gráfica No.49: Histograma de 
                         Annual Fuel Cost (FT1) con Curva Normal",
                         xlab = "Annual Fuel Cost (FT1)",
                         ylab = "Densidad",
                         col = "#87CEEB")
x <- seq(min(costoanual), max(costoanual), 0.01)
lines(x, dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
##  [1]  500 1000 1500 2000 2500 3000 3500 4000 4500 5000 5500 6000
limsup <- HistogramaNormal$breaks[-1]
limsup
##  [1] 1000 1500 2000 2500 3000 3500 4000 4500 5000 5500 6000 6500
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], mean = u, sd = sigma) - pnorm(liminf[i], mean = u, sd = sigma)
}
FE <- P * length(costoanual)

valores_validos <- FE > 0
X2_normal <- sum((FO[valores_validos] - FE[valores_validos])^2 / FE[valores_validos])
X2_normal
## [1] 34151630848
df_normal <- sum(valores_validos) - 1 - 2
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 16.91898
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal
## [1] FALSE

Modelo Log-Normal:

log_costo <- log(costoanual)
ulog <- mean(log_costo)
ulog
## [1] 7.550055
sigmalog <- sd(log_costo)
sigmalog
## [1] 0.2711438
HistogramaLogNormal <- hist(costoanual, freq = FALSE,
                            main = "Gráfica No.50: Histograma 
                            de Annual Fuel Cost (FT1) con Curva Log-Normal",
                            xlab = "Annual Fuel Cost (FT1)",
                            ylab = "Densidad",
                            col = "#87CEEB")
x <- seq(min(costoanual), max(costoanual), 0.01)
lines(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
##  [1]  500 1000 1500 2000 2500 3000 3500 4000 4500 5000 5500 6000
limsup <- HistogramaLogNormal$breaks[-1]
limsup
##  [1] 1000 1500 2000 2500 3000 3500 4000 4500 5000 5500 6000 6500
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(costoanual)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 1058.643
df_log <- sum(valores_validos_log) - 1 - 2
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 16.91898
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log
## [1] FALSE

28 Annual Fuel Cost (FT2)

# Limpieza de datos
costoanual2 <- datos$Annual.Fuel.Cost..FT2.
costoanual2 <- as.numeric(costoanual2)
costoanual2 <- costoanual2[!is.na(costoanual2) & costoanual2 > 0]
u <- mean(costoanual2)
u
## [1] 2290.668
sigma <- sd(costoanual2)
sigma
## [1] 494.6834
HistogramaNormal <- hist(costoanual2, freq = FALSE,
                         main = "Gráfica No.51: Histograma de 
                         Annual Fuel Cost (FT2) con Curva Normal",
                         xlab = "Annual Fuel Cost (FT2)",
                         ylab = "Densidad",
                         col = "#D2B48C")
x <- seq(min(costoanual2), max(costoanual2), 0.01)
lines(x, dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
##  [1]  400  600  800 1000 1200 1400 1600 1800 2000 2200 2400 2600 2800 3000 3200
## [16] 3400 3600
limsup <- HistogramaNormal$breaks[-1]
limsup
##  [1]  600  800 1000 1200 1400 1600 1800 2000 2200 2400 2600 2800 3000 3200 3400
## [16] 3600 3800
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], mean = u, sd = sigma) - pnorm(liminf[i], mean = u, sd = sigma)
}
FE <- P * length(costoanual2)

valores_validos <- FE > 0
X2_normal <- sum((FO[valores_validos] - FE[valores_validos])^2 / FE[valores_validos])
X2_normal
## [1] 695.0383
df_normal <- sum(valores_validos) - 1 - 2
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 23.68479
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal
## [1] FALSE

Modelo Log-Normal:

log_costo <- log(costoanual2)
ulog <- mean(log_costo)
ulog
## [1] 7.709663
sigmalog <- sd(log_costo)
sigmalog
## [1] 0.2446102
HistogramaLogNormal <- hist(costoanual2, freq = FALSE,
                            main = "Gráfica No.52: Histograma 
                            de Annual Fuel Cost (FT2) con Curva Log-Normal",
                            xlab = "Annual Fuel Cost (FT2)",
                            ylab = "Densidad",
                            col = "#D2B48C")
x <- seq(min(costoanual2), max(costoanual2), 0.01)
lines(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
##  [1]  400  600  800 1000 1200 1400 1600 1800 2000 2200 2400 2600 2800 3000 3200
## [16] 3400 3600
limsup <- HistogramaLogNormal$breaks[-1]
limsup
##  [1]  600  800 1000 1200 1400 1600 1800 2000 2200 2400 2600 2800 3000 3200 3400
## [16] 3600 3800
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(costoanual2)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 648308
df_log <- sum(valores_validos_log) - 1 - 2
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 23.68479
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log
## [1] FALSE

29 Save or Spend (5 Year)

ahorrargas <- datos$Save.or.Spend..5.Year.
u <- mean(ahorrargas)
u
## [1] -3101.75
sigma <- sd(ahorrargas)
sigma
## [1] 2664.985
HistogramaNormal <- hist(ahorrargas, freq = FALSE,
                         main = "Gráfica No.53: Histograma 
                         de Save or Spend (5 Year) con Curva Normal",
                         xlab = "Save or Spend (5 Year)",
                         ylab = "Densidad",
                         col = "#FFFF00")
x <- seq(min(ahorrargas), max(ahorrargas), 0.01)
lines(x, dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
##  [1] -24000 -22000 -20000 -18000 -16000 -14000 -12000 -10000  -8000  -6000
## [11]  -4000  -2000      0   2000   4000
limsup <- HistogramaNormal$breaks[-1]
limsup
##  [1] -22000 -20000 -18000 -16000 -14000 -12000 -10000  -8000  -6000  -4000
## [11]  -2000      0   2000   4000   6000
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], mean = u, sd = sigma) - pnorm(liminf[i], mean = u, sd = sigma)
}
FE <- P * length(ahorrargas)

valores_validos <- FE > 0
X2_normal <- sum((FO[valores_validos] - FE[valores_validos])^2 / FE[valores_validos])
X2_normal
## [1] 990916658
df_normal <- sum(valores_validos) - 1 - 2
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 21.02607
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal
## [1] FALSE

Modelo Log-Normal:

log_ahorra <- log(ahorrargas)
## Warning in log(ahorrargas): Se han producido NaNs
ulog <- mean(log_ahorra)
ulog
## [1] NaN
sigmalog <- sd(log_ahorra)
sigmalog
## [1] NA
HistogramaLogNormal <- hist(ahorrargas, freq = FALSE,
                            main = "Gráfica No.54: Histograma 
                            de Save or Spend (5 Year) con Curva Log-Normal",
                            xlab = "Save or Spend (5 Year)",
                            ylab = "Densidad",
                            col = "#FFFF00")
x <- seq(min(ahorrargas), max(ahorrargas), 0.01)
lines(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
##  [1] -24000 -22000 -20000 -18000 -16000 -14000 -12000 -10000  -8000  -6000
## [11]  -4000  -2000      0   2000   4000
limsup <- HistogramaLogNormal$breaks[-1]
limsup
##  [1] -22000 -20000 -18000 -16000 -14000 -12000 -10000  -8000  -6000  -4000
## [11]  -2000      0   2000   4000   6000
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(ahorrargas)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log 
## [1] NA
df_log <- sum(valores_validos_log) - 1 - 2
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] NA
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log
## [1] NA

30 Annual Consumption in Barrels (FT1)

# Limpieza de datos
consumobarr <- datos$Annual.Consumption.in.Barrels..FT1.
consumobarr <- as.numeric(consumobarr)
consumobarr <- consumobarr[!is.na(consumobarr) & consumobarr > 0]
u <- mean(consumobarr)
u
## [1] 17.51763
sigma <- sd(consumobarr)
sigma
## [1] 4.577019
HistogramaNormal <- hist(consumobarr, freq = FALSE,
                         main = "Gráfica No.55: Histograma de Annual 
                         Consumption in Barrels (FT1) con Curva Normal",
                         xlab = "Annual Consumption in Barrels (FT1)",
                         ylab = "Densidad",
                         col = "#F5DEB3")
x <- seq(min(consumobarr), max(consumobarr), 0.01)
lines(x, dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
##  [1]  0  2  4  6  8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46
limsup <- HistogramaNormal$breaks[-1]
limsup
##  [1]  2  4  6  8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], mean = u, sd = sigma) - pnorm(liminf[i], mean = u, sd = sigma)
}
FE <- P * length(consumobarr)

valores_validos <- FE > 0
X2_normal <- sum((FO[valores_validos] - FE[valores_validos])^2 / FE[valores_validos])
X2_normal
## [1] 2935688
df_normal <- sum(valores_validos) - 1 - 2
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 32.67057
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal
## [1] FALSE

Modelo Log-Normal:

log_cb <- log(consumobarr)
ulog <- mean(log_cb)
ulog
## [1] 2.814365
sigmalog <- sd(log_cb)
sigmalog
## [1] 0.4092279
HistogramaLogNormal <- hist(consumobarr, freq = FALSE,
                            main = "Gráfica No.56: Histograma de Annual 
                            Consumption in Barrels (FT1) con Curva Log-Normal",
                            xlab = "Annual Consumption in Barrels (FT1)",
                            ylab = "Densidad",
                            col = "#F5DEB3")
x <- seq(min(consumobarr), max(consumobarr), 0.01)
lines(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
##  [1]  0  2  4  6  8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46
limsup <- HistogramaLogNormal$breaks[-1]
limsup
##  [1]  2  4  6  8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(consumobarr)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 9362532
df_log <- sum(valores_validos_log) - 1 - 2
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 32.67057
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log
## [1] FALSE

31 Annual Consumption in Barrels (FT2)

# Limpieza de datos
consumobarr2 <- datos$Annual.Consumption.in.Barrels..FT2.
consumobarr2 <- as.numeric(consumobarr2)
consumobarr2 <- consumobarr2[!is.na(consumobarr2) & consumobarr2 > 0]
u <- mean(consumobarr2)
u
## [1] 5.782774
sigma <- sd(consumobarr2)
sigma
## [1] 1.579549
HistogramaNormal <- hist(consumobarr2, freq = FALSE,
                         main = "Gráfica No.57: Histograma de Annual 
                         Consumption in Barrels (FT2) con Curva Normal",
                         xlab = "Annual Consumption in Barrels (FT2)",
                         ylab = "Densidad",
                         col = "turquoise2")
x <- seq(min(consumobarr2), max(consumobarr2), 0.01)
lines(x, dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
##  [1]  0  2  4  6  8 10 12 14 16 18
limsup <- HistogramaNormal$breaks[-1]
limsup
##  [1]  2  4  6  8 10 12 14 16 18 20
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], mean = u, sd = sigma) - pnorm(liminf[i], mean = u, sd = sigma)
}
FE <- P * length(consumobarr2)

valores_validos <- FE > 0
X2_normal <- sum((FO[valores_validos] - FE[valores_validos])^2 / FE[valores_validos])
X2_normal
## [1] 533080771615
df_normal <- sum(valores_validos) - 1 - 2
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 14.06714
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal
## [1] FALSE

Modelo Log-Normal:

log_cb2 <- log(consumobarr2)
ulog <- mean(log_cb2)
ulog
## [1] 1.662494
sigmalog <- sd(log_cb2)
sigmalog
## [1] 0.6148547
HistogramaLogNormal <- hist(consumobarr2, freq = FALSE,
                            main = "Gráfica No.58: Histograma de Annual 
                        Consumption in Barrels (FT2) con Curva Log-Normal",
                            xlab = "Annual Consumption in Barrels (FT2)",
                            ylab = "Densidad",
                            col = "turquoise2")
x <- seq(min(consumobarr2), max(consumobarr2), 0.01)
lines(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
##  [1]  0  2  4  6  8 10 12 14 16 18
limsup <- HistogramaLogNormal$breaks[-1]
limsup
##  [1]  2  4  6  8 10 12 14 16 18 20
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(consumobarr2)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 1279.505
df_log <- sum(valores_validos_log) - 1 - 2
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 14.06714
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log
## [1] FALSE

32 Tailpipe CO2 (FT1)

# Limpieza de datos
co2tubo <- datos$Tailpipe.CO2..FT1.
co2tubo <- as.numeric(co2tubo)
co2tubo <- co2tubo[!is.na(co2tubo) & co2tubo > 0]
u <- mean(co2tubo)
u
## [1] 411.8011
sigma <- sd(co2tubo)
sigma
## [1] 103.5849
HistogramaNormal <- hist(co2tubo, freq = FALSE,
                         main = "Gráfica No.59: Histograma de 
                         Tailpipe CO2 (FT1) con Curva Normal",
                         xlab = "Tailpipe CO2 (FT1)",
                         ylab = "Densidad",
                         col = "#CDC9C9")
x <- seq(min(co2tubo), max(co2tubo), 0.01)
lines(x, dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
##  [1]   0  50 100 150 200 250 300 350 400 450 500 550 600 650 700 750 800
limsup <- HistogramaNormal$breaks[-1]
limsup
##  [1]  50 100 150 200 250 300 350 400 450 500 550 600 650 700 750 800 850
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], mean = u, sd = sigma) - pnorm(liminf[i], mean = u, sd = sigma)
}
FE <- P * length(co2tubo)

valores_validos <- FE > 0
X2_normal <- sum((FO[valores_validos] - FE[valores_validos])^2 / FE[valores_validos])
X2_normal
## [1] 476.0377
df_normal <- sum(valores_validos) - 1 - 2
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 23.68479
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal
## [1] FALSE

Modelo Log-Normal:

log_co2 <- log(co2tubo)
ulog <- mean(log_co2)
ulog
## [1] 5.987002
sigmalog <- sd(log_co2)
sigmalog
## [1] 0.2693047
HistogramaLogNormal <- hist(co2tubo, freq = FALSE,
                            main = "Gráfica No.60: Histograma de 
                            Tailpipe CO2 (FT1) con Curva Log-Normal",
                            xlab = "Tailpipe CO2 (FT1)",
                            ylab = "Densidad",
                            col = "#CDC9C9")
x <- seq(min(co2tubo), max(co2tubo), 0.01)
lines(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
##  [1]   0  50 100 150 200 250 300 350 400 450 500 550 600 650 700 750 800
limsup <- HistogramaLogNormal$breaks[-1]
limsup
##  [1]  50 100 150 200 250 300 350 400 450 500 550 600 650 700 750 800 850
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(co2tubo)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 405626382680
df_log <- sum(valores_validos_log) - 1 - 2
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 23.68479
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log
## [1] FALSE

33 Tailpipe CO2 in Grams/Mile (FT1)

# Limpieza de datos
co2tubo1 <- datos$Tailpipe.CO2.in.Grams.Mile..FT1.
u <- mean(co2tubo1)
u
## [1] 472.7614
sigma <- sd(co2tubo1)
sigma
## [1] 122.2004
HistogramaNormal <- hist(co2tubo1, freq = FALSE,
                         main = "Gráfica No.61: Histograma de 
                         Tailpipe CO2 (FT1) con Curva Normal",
                         xlab = "Tailpipe CO2 (g/mi)",
                         ylab = "Densidad",
                         col = "#8B8989")
x <- seq(min(co2tubo1), max(co2tubo1), 0.01)
lines(x, dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
##  [1]    0  100  200  300  400  500  600  700  800  900 1000 1100 1200
limsup <- HistogramaNormal$breaks[-1]
limsup
##  [1]  100  200  300  400  500  600  700  800  900 1000 1100 1200 1300
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], mean = u, sd = sigma) - pnorm(liminf[i], mean = u, sd = sigma)
}
FE <- P * length(co2tubo1)

valores_validos <- FE > 0
X2_normal <- sum((FO[valores_validos] - FE[valores_validos])^2 / FE[valores_validos])
X2_normal
## [1] 727805.1
df_normal <- sum(valores_validos) - 1 - 2
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 18.30704
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal
## [1] FALSE

Modelo Log-Normal:

log_co2 <- log(co2tubo1)
ulog <- mean(log_co2)
ulog
## [1] -Inf
sigmalog <- sd(log_co2)
sigmalog
## [1] NaN
HistogramaLogNormal <- hist(co2tubo1, freq = FALSE,
                            main = "Gráfica No.62: Histograma de 
                            Tailpipe CO2 (FT1) con Curva Log-Normal",
                            xlab = "Tailpipe CO2 (g/mi)",
                            ylab = "Densidad",
                            col = "#8B8989")
x <- seq(min(co2tubo1), max(co2tubo1), 0.01)
lines(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
##  [1]    0  100  200  300  400  500  600  700  800  900 1000 1100 1200
limsup <- HistogramaLogNormal$breaks[-1]
limsup
##  [1]  100  200  300  400  500  600  700  800  900 1000 1100 1200 1300
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(co2tubo1)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] NA
df_log <- sum(valores_validos_log) - 1 - 2
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] NA
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log
## [1] NA

34 Tailpipe CO2 (FT2)

# Limpieza de datos
co2tubo2 <- datos$Tailpipe.CO2..FT1.
co2tubo2 <- as.numeric(co2tubo2)
co2tubo2 <- co2tubo2[!is.na(co2tubo2) & co2tubo2 > 0]
u <- mean(co2tubo2)
u
## [1] 411.8011
sigma <- sd(co2tubo2)
sigma
## [1] 103.5849
HistogramaNormal <- hist(co2tubo2, freq = FALSE,
                         main = "Gráfica No.63: Histograma de 
                         Tailpipe CO2 (FT2) con Curva Normal",
                         xlab = "Tailpipe CO2 (FT2)",
                         ylab = "Densidad",
                         col = "#CDC9C9")
x <- seq(min(co2tubo2), max(co2tubo2), 0.01)
lines(x, dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
##  [1]   0  50 100 150 200 250 300 350 400 450 500 550 600 650 700 750 800
limsup <- HistogramaNormal$breaks[-1]
limsup
##  [1]  50 100 150 200 250 300 350 400 450 500 550 600 650 700 750 800 850
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], mean = u, sd = sigma) - pnorm(liminf[i], mean = u, sd = sigma)
}
FE <- P * length(co2tubo2)

valores_validos <- FE > 0
X2_normal <- sum((FO[valores_validos] - FE[valores_validos])^2 / FE[valores_validos])
X2_normal
## [1] 476.0377
df_normal <- sum(valores_validos) - 1 - 2
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 23.68479
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal
## [1] FALSE

Modelo Log-Normal:

log_co2 <- log(co2tubo2)
ulog <- mean(log_co2)
ulog
## [1] 5.987002
sigmalog <- sd(log_co2)
sigmalog
## [1] 0.2693047
HistogramaLogNormal <- hist(co2tubo2, freq = FALSE,
                            main = "Gráfica No.64: Histograma de 
                            Tailpipe CO2 (FT2) con Curva Log-Normal",
                            xlab = "Tailpipe CO2 (FT2)",
                            ylab = "Densidad",
                            col = "#CDC9C9")
x <- seq(min(co2tubo2), max(co2tubo2), 0.01)
lines(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
##  [1]   0  50 100 150 200 250 300 350 400 450 500 550 600 650 700 750 800
limsup <- HistogramaLogNormal$breaks[-1]
limsup
##  [1]  50 100 150 200 250 300 350 400 450 500 550 600 650 700 750 800 850
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(co2tubo2)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 405626382680
df_log <- sum(valores_validos_log) - 1 - 2
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 23.68479
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log
## [1] FALSE

35 Tailpipe CO2 in Grams/Mile (FT2)

# Limpieza de datos
co2tubo3 <- datos$Tailpipe.CO2.in.Grams.Mile..FT2.
co2tubo3 <- as.numeric(co2tubo3)
co2tubo3 <- co2tubo3[!is.na(co2tubo3) & co2tubo3 > 0]
u <- mean(co2tubo3)
u
## [1] 495.5821
sigma <- sd(co2tubo3)
sigma
## [1] 96.64509
HistogramaNormal <- hist(co2tubo3, freq = FALSE,
                         main = "Gráfica No.65: Histograma de 
                         Tailpipe CO2 (FT2) con Curva Normal",
                         xlab = "Tailpipe CO2 (g/mi)",
                         ylab = "Densidad",
                         col = "#FFFAFA")
x <- seq(min(co2tubo3), max(co2tubo3), 0.01)
lines(x, dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
##  [1] 250 300 350 400 450 500 550 600 650 700
limsup <- HistogramaNormal$breaks[-1]
limsup
##  [1] 300 350 400 450 500 550 600 650 700 750
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], mean = u, sd = sigma) - pnorm(liminf[i], mean = u, sd = sigma)
}
FE <- P * length(co2tubo3)

valores_validos <- FE > 0
X2_normal <- sum((FO[valores_validos] - FE[valores_validos])^2 / FE[valores_validos])
X2_normal
## [1] 178.5956
df_normal <- sum(valores_validos) - 1 - 2
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 14.06714
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal
## [1] FALSE

Modelo Log-Normal:

log_co2 <- log(co2tubo3)
ulog <- mean(log_co2)
ulog
## [1] 6.185852
sigmalog <- sd(log_co2)
sigmalog
## [1] 0.2023022
HistogramaLogNormal <- hist(co2tubo3, freq = FALSE,
                            main = "Gráfica No.66: Histograma de 
                            Tailpipe CO2 (FT2) con Curva Log-Normal",
                            xlab = "Tailpipe CO2 (g/mi)",
                            ylab = "Densidad",
                            col = "#FFFAFA")
x <- seq(min(co2tubo3), max(co2tubo3), 0.01)
lines(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
##  [1] 250 300 350 400 450 500 550 600 650 700
limsup <- HistogramaLogNormal$breaks[-1]
limsup
##  [1] 300 350 400 450 500 550 600 650 700 750
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(co2tubo3)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 224.4972
df_log <- sum(valores_validos_log) - 1 - 2
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 14.06714
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log
## [1] FALSE

36 2D Passenger Volume

# Limpieza de datos
volpasajeros2d <- datos$X2D.Passenger.Volume
volpasajeros2d <- as.numeric(volpasajeros2d)
volpasajeros2d <- volpasajeros2d[!is.na(volpasajeros2d) & volpasajeros2d > 0]
u <- mean(volpasajeros2d)
u
## [1] 83.06513
sigma <- sd(volpasajeros2d)
sigma
## [1] 12.9218
HistogramaNormal <- hist(volpasajeros2d, freq = FALSE,
                         main = "Gráfica No.67: Histograma 
                         de 2D Passenger Volume con Curva Normal",
                         xlab = "2D Passenger Volume (ft³)",
                         ylab = "Densidad",
                         col = "#FF6347")
x <- seq(min(volpasajeros2d), max(volpasajeros2d), 0.01)
lines(x, dnorm(x, mean = u, sd = sigma), col = "blue", lwd = 2)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
##  [1]   0  10  20  30  40  50  60  70  80  90 100 110 120 130 140 150 160 170 180
## [20] 190
limsup <- HistogramaNormal$breaks[-1]
limsup
##  [1]  10  20  30  40  50  60  70  80  90 100 110 120 130 140 150 160 170 180 190
## [20] 200
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], mean = u, sd = sigma) - pnorm(liminf[i], mean = u, sd = sigma)
}
FE <- P * length(volpasajeros2d)

valores_validos <- FE > 0
X2_normal <- sum((FO[valores_validos] - FE[valores_validos])^2 / FE[valores_validos])
X2_normal
## [1] 7.027915e+13
df_normal <- sum(valores_validos) - 1 - 2
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 27.58711
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal
## [1] FALSE

Modelo Log-Normal:

#LOG-NORMAL
log_vol <- log(volpasajeros2d)
ulog <- mean(log_vol)
sigmalog <- sd(log_vol)
HistogramaLogNormal <- hist(volpasajeros2d, freq = FALSE,
                            main = "Gráfica No.68: Histograma de 
                            2D Passenger Volume con Curva Log-Normal",
                            xlab = "2D Passenger Volume (ft³)",
                            ylab = "Densidad",
                            col = "#FF6347")
x <- seq(min(volpasajeros2d), max(volpasajeros2d), 0.01)
lines(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "blue", lwd = 2)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
##  [1]   0  10  20  30  40  50  60  70  80  90 100 110 120 130 140 150 160 170 180
## [20] 190
limsup <- HistogramaLogNormal$breaks[-1]
limsup
##  [1]  10  20  30  40  50  60  70  80  90 100 110 120 130 140 150 160 170 180 190
## [20] 200
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(volpasajeros2d)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 3.620147e+14
df_log <- sum(valores_validos_log) - 1 - 2
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 27.58711
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log
## [1] FALSE

37 2D Luggage Volume

# Limpieza de datos
volequipaje2d <- datos$X2D.Luggage.Volume
volequipaje2d <- as.numeric(volequipaje2d)
volequipaje2d <- volequipaje2d[!is.na(volequipaje2d) & volequipaje2d > 0]
u <- mean(volequipaje2d)
u
## [1] 11.18998
sigma <- sd(volequipaje2d)
sigma
## [1] 3.763901
# Histograma con curva normal
HistogramaNormal <- hist(volequipaje2d, freq = FALSE,
                         main = "Gráfica No.69: Histograma 
                         de 2D Luggage Volume con Curva Normal",
                         xlab = "2D Luggage Volume (ft³)",
                         ylab = "Densidad",
                         col = "#D2B48C")
x <- seq(min(volequipaje2d), max(volequipaje2d), 0.01)
lines(x, dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
##  [1]  2  4  6  8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40
limsup <- HistogramaNormal$breaks[-1]
limsup
##  [1]  4  6  8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], mean = u, sd = sigma) - pnorm(liminf[i], mean = u, sd = sigma)
}
FE <- P * length(volequipaje2d)

valores_validos <- FE > 0
X2_normal <- sum((FO[valores_validos] - FE[valores_validos])^2 / FE[valores_validos])
X2_normal
## [1] 16460760724
df_normal <- sum(valores_validos) - 1 - 2  # -1 clases, -2 parámetros estimados
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 27.58711
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal
## [1] FALSE

Modelo Log-Normal:

log_vol <- log(volequipaje2d)
ulog <- mean(log_vol)
ulog
## [1] 2.349035
sigmalog <- sd(log_vol)
sigmalog
## [1] 0.3855433
HistogramaLogNormal <- hist(volequipaje2d, freq = FALSE,
                            main = "Gráfica No.70: Histograma 
                            de 2D Luggage Volume con Curva Log-Normal",
                            xlab = "2D Luggage Volume (ft³)",
                            ylab = "Densidad",
                            col = "#D2B48C")
x <- seq(min(volequipaje2d), max(volequipaje2d), 0.01)
lines(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
##  [1]  2  4  6  8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40
limsup <- HistogramaLogNormal$breaks[-1]
limsup
##  [1]  4  6  8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) - plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(volequipaje2d)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 1968.986
df_log <- sum(valores_validos_log) - 1 - 2
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 27.58711
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log
## [1] FALSE

38 4D Passenger Volume

# Limpieza de datos
volpasajeros4d <- datos$X4D.Passenger.Volume
volpasajeros4d <- as.numeric(volpasajeros4d)
volpasajeros4d <- volpasajeros4d[!is.na(volpasajeros4d) & volpasajeros4d > 0]
u <- mean(volpasajeros4d)
u
## [1] 95.43927
sigma <- sd(volpasajeros4d)
sigma
## [1] 8.653147
HistogramaNormal <- hist(volpasajeros4d, freq = FALSE,
                         main = "Gráfica No.71: Histograma 
                         de 4D Passenger Volume con Curva Normal",
                         xlab = "4D Passenger Volume (ft³)",
                         ylab = "Densidad",
                         col = "#00FF7F")
x <- seq(min(volpasajeros4d), max(volpasajeros4d), 0.01)
lines(x, dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
##  [1]   0  10  20  30  40  50  60  70  80  90 100 110 120 130 140 150 160 170 180
## [20] 190
limsup <- HistogramaNormal$breaks[-1]
limsup
##  [1]  10  20  30  40  50  60  70  80  90 100 110 120 130 140 150 160 170 180 190
## [20] 200
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], mean = u, sd = sigma) - pnorm(liminf[i], mean = u, sd = sigma)
}
FE <- P * length(volpasajeros4d)

valores_validos <- FE > 0
X2_normal <- sum((FO[valores_validos] - FE[valores_validos])^2 / FE[valores_validos])
X2_normal
## [1] 6.854797e+19
df_normal <- sum(valores_validos) - 1 - 2
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 23.68479
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal
## [1] FALSE

Modelo Log-Normal:

log_vol <- log(volpasajeros4d)
ulog <- mean(log_vol)
ulog
## [1] 4.553899
sigmalog <- sd(log_vol)
sigmalog
## [1] 0.1044744
HistogramaLogNormal <- hist(volpasajeros4d, freq = FALSE,
                            main = "Gráfica No.72: Histograma de 
                            4D Passenger Volume con Curva Log-Normal",
                            xlab = "4D Passenger Volume (ft³)",
                            ylab = "Densidad",
                            col = "#00FF7F")
x <- seq(min(volpasajeros4d), max(volpasajeros4d), 0.01)
lines(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
##  [1]   0  10  20  30  40  50  60  70  80  90 100 110 120 130 140 150 160 170 180
## [20] 190
limsup <- HistogramaLogNormal$breaks[-1]
limsup
##  [1]  10  20  30  40  50  60  70  80  90 100 110 120 130 140 150 160 170 180 190
## [20] 200
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(volpasajeros4d)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 6.845194e+99
df_log <- sum(valores_validos_log) - 1 - 2
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 27.58711
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log
## [1] FALSE

39 4D Luggage Volume

# Limpieza de datos
volpequipaje4d <- datos$X4D.Luggage.Volume
volpequipaje4d <- as.numeric(volpequipaje4d)
volpequipaje4d <- volpequipaje4d[!is.na(volpequipaje4d) & volpequipaje4d > 0]
u <- mean(volpequipaje4d)
u
## [1] 17.39152
sigma <- sd(volpequipaje4d)
sigma
## [1] 8.467823
HistogramaNormal <- hist(volpequipaje4d, freq = FALSE,
                         main = "Gráfica No.73: Histograma 
                         de 4D Luggage Volume con Curva Normal",
                         xlab = "4D Luggage Volume (ft³)",
                         ylab = "Densidad",
                         col = "steelblue1")
x <- seq(min(volpequipaje4d), max(volpequipaje4d), 0.01)
lines(x, dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
##  [1]  0  5 10 15 20 25 30 35 40 45 50
limsup <- HistogramaNormal$breaks[-1]
limsup
##  [1]  5 10 15 20 25 30 35 40 45 50 55
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], mean = u, sd = sigma) - pnorm(liminf[i], mean = u, sd = sigma)
}
FE <- P * length(volpequipaje4d)

valores_validos <- FE > 0
X2_normal <- sum((FO[valores_validos] - FE[valores_validos])^2 / FE[valores_validos])
X2_normal
## [1] 20779.14
df_normal <- sum(valores_validos) - 1 - 2  # -1 clases, -2 parámetros estimados
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 15.50731
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal
## [1] FALSE

Modelo Log-Normal:

log_vol <- log(volpequipaje4d)
ulog <- mean(log_vol)
ulog
## [1] 2.769246
sigmalog <- sd(log_vol)
sigmalog
## [1] 0.3915995
HistogramaLogNormal <- hist(volpequipaje4d, freq = FALSE,
                            main = "Gráfica No.74: Histograma 
                            de 4D Luggage Volume con Curva Log-Normal",
                            xlab = "4D Luggage Volume (ft³)",
                            ylab = "Densidad",
                            col = "steelblue1")
x <- seq(min(volpequipaje4d), max(volpequipaje4d), 0.01)
lines(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
##  [1]  0  5 10 15 20 25 30 35 40 45 50
limsup <- HistogramaLogNormal$breaks[-1]
limsup
##  [1]  5 10 15 20 25 30 35 40 45 50 55
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(volpequipaje4d)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 5661.281
df_log <- sum(valores_validos_log) - 1 - 2
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 15.50731
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log
## [1] FALSE

40 Hatchback Passenger Volume

# Limpieza de datos
volpasajeros <- datos$Hatchback.Passenger.Volume
volpasajeros <- as.numeric(volpasajeros)
volpasajeros <- volpasajeros[!is.na(volpasajeros) & volpasajeros > 0]
u <- mean(volpasajeros)
u
## [1] 85.53276
sigma <- sd(volpasajeros)
sigma
## [1] 8.930174
# Histograma y curva normal
HistogramaNormal <- hist(volpasajeros, freq = FALSE,
                         main = "Gráfica No.75: Histograma 
                         de Hatchback Passenger Volume con Curva Normal",
                         xlab = "Hatchback Passenger Volume (ft³)",
                         ylab = "Densidad",
                         col = "#FFFAFA")
x <- seq(min(volpasajeros), max(volpasajeros), 0.01)
lines(x, dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
##  [1]  40  50  60  70  80  90 100 110 120 130 140 150 160 170 180 190
limsup <- HistogramaNormal$breaks[-1]
limsup
##  [1]  50  60  70  80  90 100 110 120 130 140 150 160 170 180 190 200
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], mean = u, sd = sigma) - pnorm(liminf[i], mean = u, sd = sigma)
}
FE <- P * length(volpasajeros)

valores_validos <- FE > 0
X2_normal <- sum((FO[valores_validos] - FE[valores_validos])^2 / FE[valores_validos])
X2_normal
## [1] 8299.69
df_normal <- sum(valores_validos) - 1 - 2
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 16.91898
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal
## [1] FALSE

Modelo Log-Normal:

log_vol <- log(volpasajeros)
ulog <- mean(log_vol)
ulog
## [1] 4.443429
sigmalog <- sd(log_vol)
sigmalog
## [1] 0.10573
HistogramaLogNormal <- hist(volpasajeros, freq = FALSE,
                            main = "Gráfica No.76: Histograma 
                            de Hatchback Passenger Volume con Curva Log-Normal",
                            xlab = "Hatchback Passenger Volume (ft³)",
                            ylab = "Densidad",
                            col = "#FFFAFA")
x <- seq(min(volpasajeros), max(volpasajeros), 0.01)
lines(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
##  [1]  40  50  60  70  80  90 100 110 120 130 140 150 160 170 180 190
limsup <- HistogramaLogNormal$breaks[-1]
limsup
##  [1]  50  60  70  80  90 100 110 120 130 140 150 160 170 180 190 200
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(volpasajeros)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 238918868137
df_log <- sum(valores_validos_log) - 1 - 2
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 22.36203
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log
## [1] FALSE

41 Hatchback Luggage Volume

# Limpieza de datos
volequipaje <- datos$Hatchback.Luggage.Volume
volequipaje <- as.numeric(volequipaje)
volequipaje <- volequipaje[!is.na(volequipaje) & volequipaje > 0]
u <- mean(volequipaje)
u
## [1] 16.65719
sigma <- sd(volequipaje)
sigma
## [1] 6.910848
HistogramaNormal <- hist(volequipaje, freq = FALSE,
                         main = "Gráfica No.77: Histograma 
                         de Hatchback Luggage Volume con Curva Normal",
                         xlab = "Hatchback Luggage Volume (ft³)",
                         ylab = "Densidad",
                         col = "#EEAEEE")
x <- seq(min(volequipaje), max(volequipaje), 0.01)
lines(x, dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
##  [1]  0  5 10 15 20 25 30 35 40 45
limsup <- HistogramaNormal$breaks[-1]
limsup
##  [1]  5 10 15 20 25 30 35 40 45 50
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], mean = u, sd = sigma) - pnorm(liminf[i], mean = u, sd = sigma)
}
FE <- P * length(volequipaje)

valores_validos <- FE > 0
X2_normal <- sum((FO[valores_validos] - FE[valores_validos])^2 / FE[valores_validos])
X2_normal
## [1] 3476.215
df_normal <- sum(valores_validos) - 1 - 2
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 14.06714
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal
## [1] FALSE

Modelo Log-Normal:

log_vol <- log(volequipaje)
ulog <- mean(log_vol)
ulog
## [1] 2.739865
sigmalog <- sd(log_vol)
sigmalog
## [1] 0.3749482
HistogramaLogNormal <- hist(volequipaje, freq = FALSE,
                            main = "Gráfica No.78: Histograma 
                            de Hatchback Luggage Volume con Curva Log-Normal",
                            xlab = "Hatchback Luggage Volume (ft³)",
                            ylab = "Densidad",
                            col = "#EEAEEE")
x <- seq(min(volequipaje), max(volequipaje), 0.01)
lines(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
##  [1]  0  5 10 15 20 25 30 35 40 45
limsup <- HistogramaLogNormal$breaks[-1]
limsup
##  [1]  5 10 15 20 25 30 35 40 45 50
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(volequipaje)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 551.4551
df_log <- sum(valores_validos_log) - 1 - 2
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 14.06714
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log
## [1] FALSE

42 Composite City MPG

# Limpieza de datos
mpgurbano <- datos$Composite.City.MPG
mpgurbano <- as.numeric(mpgurbano)
mpgurbano <- mpgurbano[!is.na(mpgurbano) & mpgurbano > 0]
u <- mean(mpgurbano)
u
## [1] 48.2
sigma <- sd(mpgurbano)
sigma
## [1] 20.35482
HistogramaNormal <- hist(mpgurbano, freq = FALSE,
                         main = "Gráfica No.79: Histograma 
                         de Composite City MPG con Curva Normal",
                         xlab = "Composite City MPG",
                         ylab = "Densidad",
                         col = "#FFA500")
x <- seq(min(mpgurbano), max(mpgurbano), 0.01)
lines(x, dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
## [1] 10 20 30 40 50 60 70 80 90
limsup <- HistogramaNormal$breaks[-1]
limsup
## [1]  20  30  40  50  60  70  80  90 100
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], mean = u, sd = sigma) - pnorm(liminf[i], mean = u, sd = sigma)
}
FE <- P * length(mpgurbano)

valores_validos <- FE > 0
X2_normal <- sum((FO[valores_validos] - FE[valores_validos])^2 / FE[valores_validos])
X2_normal
## [1] 51.08317
df_normal <- sum(valores_validos) - 1 - 2
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 12.59159
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal
## [1] FALSE

Modelo Log-Normal:

log_mpg <- log(mpgurbano)
ulog <- mean(log_mpg)
ulog
## [1] 3.784142
sigmalog <- sd(log_mpg)
sigmalog
## [1] 0.4407043
HistogramaLogNormal <- hist(mpgurbano, freq = FALSE,
                            main = "Gráfica No.80: Histograma 
                            de Composite City MPG con Curva Log-Normal",
                            xlab = "Composite City MPG",
                            ylab = "Densidad",
                            col = "#FFA500")
x <- seq(min(mpgurbano), max(mpgurbano), 0.01)
lines(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
## [1] 10 20 30 40 50 60 70 80 90
limsup <- HistogramaLogNormal$breaks[-1]
limsup
## [1]  20  30  40  50  60  70  80  90 100
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(mpgurbano)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 44.99491
df_log <- sum(valores_validos_log) - 1 - 2
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 12.59159
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log
## [1] FALSE

43 Composite Highway MPG

# Limpieza de datos
mpgcompuesto <- datos$Composite.Highway.MPG
mpgcompuesto <- as.numeric(mpgcompuesto)
mpgcompuesto <- mpgcompuesto[!is.na(mpgcompuesto) & mpgcompuesto > 0]
u <- mean(mpgcompuesto)
u
## [1] 47.43077
sigma <- sd(mpgcompuesto)
sigma
## [1] 15.06649
HistogramaNormal <- hist(mpgcompuesto, freq = FALSE,
                         main = "Gráfica No.81: Histograma 
                         de Composite Highway MPG con Curva Normal",
                         xlab = "Composite Highway MPG",
                         ylab = "Densidad",
                         col = "#CD8C95")
x <- seq(min(mpgcompuesto), max(mpgcompuesto), 0.01)
lines(x, dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
## [1] 20 30 40 50 60 70 80
limsup <- HistogramaNormal$breaks[-1]
limsup
## [1] 30 40 50 60 70 80 90
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], mean = u, sd = sigma) - pnorm(liminf[i], mean = u, sd = sigma)
}
FE <- P * length(mpgcompuesto)

valores_validos <- FE > 0
X2_normal <- sum((FO[valores_validos] - FE[valores_validos])^2 / FE[valores_validos])
X2_normal
## [1] 6.407509
df_normal <- sum(valores_validos) - 1 - 2
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 9.487729
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal
## [1] TRUE

Modelo Log-Normal:

log_mpg <- log(mpgcompuesto)
ulog <- mean(log_mpg)
ulog
## [1] 3.807732
sigmalog <- sd(log_mpg)
sigmalog
## [1] 0.3293016
HistogramaLogNormal <- hist(mpgcompuesto, freq = FALSE,
                            main = "Gráfica No.82: Histograma 
                            de Composite Highway MPG con Curva Log-Normal",
                            xlab = "Composite Highway MPG",
                            ylab = "Densidad",
                            col = "#CD8C95")
x <- seq(min(mpgcompuesto), max(mpgcompuesto), 0.01)
lines(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
## [1] 20 30 40 50 60 70 80
limsup <- HistogramaLogNormal$breaks[-1]
limsup
## [1] 30 40 50 60 70 80 90
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(mpgcompuesto)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 3.599147
df_log <- sum(valores_validos_log) - 1 - 2
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 9.487729
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log
## [1] TRUE

44 Composite Combined MPG

# Limpieza de datos
mpgcompuestocomb <- datos$Composite.Combined.MPG
mpgcompuestocomb <- as.numeric(mpgcompuestocomb)
mpgcompuestocomb <- mpgcompuestocomb[!is.na(mpgcompuestocomb) & mpgcompuestocomb > 0]
u <- mean(mpgcompuestocomb)
u
## [1] 47.67692
sigma <- sd(mpgcompuestocomb)
sigma
## [1] 17.7756
HistogramaNormal <- hist(mpgcompuestocomb, freq = FALSE,
                         main = "Gráfica No.83: Histograma 
                         de Composite Combined MPG con Curva Normal",
                         xlab = "Composite Combined MPG",
                         ylab = "Densidad",
                         col = "#FFFACD")
x <- seq(min(mpgcompuestocomb), max(mpgcompuestocomb), 0.01)
lines(x, dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
## [1] 10 20 30 40 50 60 70 80
limsup <- HistogramaNormal$breaks[-1]
limsup
## [1] 20 30 40 50 60 70 80 90
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], mean = u, sd = sigma) - pnorm(liminf[i], mean = u, sd = sigma)
}
FE <- P * length(mpgcompuestocomb)

valores_validos <- FE > 0
X2_normal <- sum((FO[valores_validos] - FE[valores_validos])^2 / FE[valores_validos])
X2_normal
## [1] 24.42201
df_normal <- sum(valores_validos) - 1 - 2
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 11.0705
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal
## [1] FALSE

Modelo Log-Normal:

log_mpg <- log(mpgcompuestocomb)
ulog <- mean(log_mpg)
ulog
## [1] 3.793167
sigmalog <- sd(log_mpg)
sigmalog
## [1] 0.3887003
HistogramaLogNormal <- hist(mpgcompuestocomb, freq = FALSE,
                            main = "Gráfica No.84: Histograma 
                            de Composite Combined MPG con Curva Log-Normal",
                            xlab = "Composite Combined MPG",
                            ylab = "Densidad",
                            col = "#FFFACD")
x <- seq(min(mpgcompuestocomb), max(mpgcompuestocomb), 0.01)
lines(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
## [1] 10 20 30 40 50 60 70 80
limsup <- HistogramaLogNormal$breaks[-1]
limsup
## [1] 20 30 40 50 60 70 80 90
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(mpgcompuestocomb)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 26.49009
df_log <- sum(valores_validos_log) - 1 - 2
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 11.0705
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log
## [1] FALSE

45 Range (FT1)

# Limpieza de datos
alcance <- datos$Range..FT1.
alcance <- as.numeric(alcance)
alcance <- alcance[!is.na(alcance) & alcance > 0]
u <- mean(alcance)
u
## [1] 134.6015
sigma <- sd(alcance)
sigma
## [1] 84.03164
HistogramaNormal <- hist(alcance, freq = FALSE,
                         main = "Gráfica No.85: Histograma 
                         de Range (FT1) con Curva Normal",
                         xlab = "Range (FT1)",
                         ylab = "Densidad",
                         col = "#B4EEB4")
x <- seq(min(alcance), max(alcance), 0.01)
lines(x, dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
## [1]   0  50 100 150 200 250 300
limsup <- HistogramaNormal$breaks[-1]
limsup
## [1]  50 100 150 200 250 300 350
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], mean = u, sd = sigma) - pnorm(liminf[i], mean = u, sd = sigma)
}
FE <- P * length(alcance)

valores_validos <- FE > 0
X2_normal <- sum((FO[valores_validos] - FE[valores_validos])^2 / FE[valores_validos])
X2_normal
## [1] 136.8458
df_normal <- sum(valores_validos) - 1 - 2
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 9.487729
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal
## [1] FALSE

Modelo Log-Normal:

log_alcance <- log(alcance)
ulog <- mean(log_alcance)
ulog
## [1] 4.714095
sigmalog <- sd(log_alcance)
sigmalog
## [1] 0.6135099
HistogramaLogNormal <- hist(alcance, freq = FALSE,
                            main = "Gráfica No.86: Histograma 
                            de Range (FT1) con Curva Log-Normal",
                            xlab = "Range (FT1)",
                            ylab = "Densidad",
                            col = "#B4EEB4")
x <- seq(min(alcance), max(alcance), 0.01)
lines(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
## [1]   0  50 100 150 200 250 300
limsup <- HistogramaLogNormal$breaks[-1]
limsup
## [1]  50 100 150 200 250 300 350
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(alcance)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 94.64621
df_log <- sum(valores_validos_log) - 1 - 2
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 9.487729
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log
## [1] FALSE

46 City Range (FT1)

# Limpieza de datos
alcancecity <- datos$City.Range..FT1.
alcancecity <- as.numeric(alcancecity)
alcancecity <- alcancecity[!is.na(alcancecity) & alcancecity > 0]
u <- mean(alcancecity)
u
## [1] 153.2607
sigma <- sd(alcancecity)
sigma
## [1] 80.26296
HistogramaNormal <- hist(alcancecity, freq = FALSE,
                         main = "Gráfica No.87: Histograma 
                         de City Range (FT1) con Curva Normal",
                         xlab = "City Range (FT1)",
                         ylab = "Densidad",
                         col = "#EEAD0E")
x <- seq(min(alcancecity), max(alcancecity), 0.01)
lines(x, dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
## [1]   0  50 100 150 200 250 300
limsup <- HistogramaNormal$breaks[-1]
limsup
## [1]  50 100 150 200 250 300 350
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], mean = u, sd = sigma) - pnorm(liminf[i], mean = u, sd = sigma)
}
FE <- P * length(alcancecity)

valores_validos <- FE > 0
X2_normal <- sum((FO[valores_validos] - FE[valores_validos])^2 / FE[valores_validos])
X2_normal
## [1] 101.805
df_normal <- sum(valores_validos) - 1 - 2
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 9.487729
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal
## [1] FALSE

Modelo Log-Normal:

log_alcancecity <- log(alcancecity)
ulog <- mean(log_alcancecity)
ulog
## [1] 4.891591
sigmalog <- sd(log_alcancecity)
sigmalog
## [1] 0.5356542
HistogramaLogNormal <- hist(alcancecity, freq = FALSE,
                            main = "Gráfica No.88: Histograma 
                            de City Range (FT1) con Curva Log-Normal",
                            xlab = "City Range (FT1)",
                            ylab = "Densidad",
                            col = "#EEAD0E")
x <- seq(min(alcancecity), max(alcancecity), 0.01)
lines(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
## [1]   0  50 100 150 200 250 300
limsup <- HistogramaLogNormal$breaks[-1]
limsup
## [1]  50 100 150 200 250 300 350
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(alcancecity)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
df_log <- sum(valores_validos_log) - 1 - 2
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 9.487729
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log
## [1] FALSE

47 Highway Range (FT1)

# Limpieza de datos
autopista <- datos$Highway.Range..FT1.
autopista <- as.numeric(autopista)
autopista <- autopista[!is.na(autopista) & autopista > 0]
u <- mean(autopista)
u
## [1] 150.7251
sigma <- sd(autopista)
sigma
## [1] 92.89936
# Histograma y curva normal
HistogramaNormal <- hist(autopista, freq = FALSE,
                         main = "Gráfica No.89: Histograma 
                         de Highway Range (FT1) con Curva Normal",
                         xlab = "Highway Range (FT1)",
                         ylab = "Densidad",
                         col = "#8B7355")
x <- seq(min(autopista), max(autopista), 0.01)
lines(x, dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
## [1]   0  50 100 150 200 250 300
limsup <- HistogramaNormal$breaks[-1]
limsup
## [1]  50 100 150 200 250 300 350
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], mean = u, sd = sigma) - pnorm(liminf[i], mean = u, sd = sigma)
}
FE <- P * length(autopista)

valores_validos <- FE > 0
X2_normal <- sum((FO[valores_validos] - FE[valores_validos])^2 / FE[valores_validos])
X2_normal
## [1] 149.6588
df_normal <- sum(valores_validos) - 1 - 2
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 9.487729
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal
## [1] FALSE

Modelo Log-Normal:

log_autopista <- log(autopista)
ulog <- mean(log_autopista)
ulog
## [1] 4.816218
sigmalog <- sd(log_autopista)
sigmalog
## [1] 0.6403917
HistogramaLogNormal <- hist(autopista, freq = FALSE,
                            main = "Gráfica No.90: Histograma 
                            de Highway Range (FT1) con Curva Log-Normal",
                            xlab = "Highway Range (FT1)",
                            ylab = "Densidad",
                            col = "#8B7355")
x <- seq(min(autopista), max(autopista), 0.01)
lines(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
## [1]   0  50 100 150 200 250 300
limsup <- HistogramaLogNormal$breaks[-1]
limsup
## [1]  50 100 150 200 250 300 350
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(autopista)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 111.4179
df_log <- sum(valores_validos_log) - 1 - 2
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 9.487729
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log
## [1] FALSE

48 Range (FT2)

# Limpieza de datos
alcance2 <- datos$Range..FT2.
alcance2 <- as.numeric(alcance2)
## Warning: NAs introducidos por coerción
alcance2 <- alcance2[!is.na(alcance2) & alcance2 > 0]
u <- mean(alcance2)
u
## [1] 282.4438
sigma <- sd(alcance2)
sigma
## [1] 79.10371
HistogramaNormal <- hist(alcance2, freq = FALSE,
                         main = "Gráfica No.91: Histograma 
                         de Range (FT2) con Curva Normal",
                         xlab = "Range (FT2)",
                         ylab = "Densidad",
                         col = "#C1CDCD")
x <- seq(min(alcance2), max(alcance2), 0.01)
lines(x, dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
## [1]   0  50 100 150 200 250 300 350 400
limsup <- HistogramaNormal$breaks[-1]
limsup
## [1]  50 100 150 200 250 300 350 400 450
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], mean = u, sd = sigma) - pnorm(liminf[i], mean = u, sd = sigma)
}
FE <- P * length(alcance2)

valores_validos <- FE > 0
X2_normal <- sum((FO[valores_validos] - FE[valores_validos])^2 / FE[valores_validos])
X2_normal
## [1] 2496.866
df_normal <- sum(valores_validos) - 1 - 2
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 12.59159
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal
## [1] FALSE

Modelo Log-Normal:

log_alcance2 <- log(alcance2)
ulog <- mean(log_alcance2)
ulog
## [1] 5.528548
sigmalog <- sd(log_alcance2)
sigmalog
## [1] 0.660844
HistogramaLogNormal <- hist(alcance2, freq = FALSE,
                            main = "Gráfica No.92: Histograma 
                            de Range (FT2) con Curva Log-Normal",
                            xlab = "Range (FT2)",
                            ylab = "Densidad",
                            col = "#C1CDCD")
x <- seq(min(alcance2), max(alcance2), 0.01)
lines(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
## [1]   0  50 100 150 200 250 300 350 400
limsup <- HistogramaLogNormal$breaks[-1]
limsup
## [1]  50 100 150 200 250 300 350 400 450
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(alcance2)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 2443.823
df_log <- sum(valores_validos_log) - 1 - 2
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 12.59159
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log
## [1] FALSE

49 City Range (FT2)

# Limpieza de datos
rangocity <- datos$City.Range..FT2.
rangocity <- as.numeric(rangocity)
rangocity <- rangocity[!is.na(rangocity) & rangocity > 0]
lambda <- 1 / mean(rangocity)
lambda
## [1] 0.03878411
HistExp <- hist(rangocity, freq = FALSE,
                main = "Gráfica No.93: Histograma 
                de City Range (FT2) con Curva Exponencial",
                xlab = "City Range (FT2)",
                ylab = "Densidad",
                col = "darkolivegreen1")
x <- seq(min(rangocity), max(rangocity), 0.01)
lines(x, dexp(x, rate = lambda), col = "red", lwd = 2)

Test:

FO <- HistExp$counts
liminf <- HistExp$breaks[-length(HistExp$breaks)]
liminf
##  [1]  10  20  30  40  50  60  70  80  90 100
limsup <- HistExp$breaks[-1]
limsup
##  [1]  20  30  40  50  60  70  80  90 100 110
Pexp <- numeric(length(FO))
for (k in 1:length(FO)) {
  Pexp[k] <- pexp(limsup[k], rate = lambda) - pexp(liminf[k], rate = lambda)
}
FEexp <- Pexp * length(rangocity)

valores_validos <- FEexp > 0
X2_exp <- sum((FO[valores_validos] - FEexp[valores_validos])^2 / FEexp[valores_validos])
X2_exp
## [1] 40.79176
df_exp <- sum(valores_validos) - 1 - 1
Vc_exp <- qchisq(0.95, df = df_exp)
Vc_exp
## [1] 15.50731
# ¿Se ajusta a una distribución exponencial?
X2_exp < Vc_exp
## [1] FALSE

50 Highway Range (FT2)

# Limpieza de datos
autoalcance <- datos$Highway.Range..FT2.
autoalcance <- as.numeric(autoalcance)
autoalcance <- autoalcance[!is.na(autoalcance) & autoalcance > 0]
u <- mean(autoalcance)
u
## [1] 23.48428
sigma <- sd(autoalcance)
sigma
## [1] 15.96889
HistogramaNormal <- hist(autoalcance, freq = FALSE,
                         main = "Gráfica No.94: Histograma 
                         de Highway Range (FT2) con Curva Normal",
                         xlab = "Highway Range (FT2)",
                         ylab = "Densidad",
                         col = "#FFD700")
x <- seq(min(autoalcance), max(autoalcance), 0.01)
lines(x, dnorm(x, mean = u, sd = sigma), col = "red", lwd = 2)

Test:

FO <- HistogramaNormal$counts
liminf <- HistogramaNormal$breaks[-length(HistogramaNormal$breaks)]
liminf
##  [1]  0 10 20 30 40 50 60 70 80 90
limsup <- HistogramaNormal$breaks[-1]
limsup
##  [1]  10  20  30  40  50  60  70  80  90 100
P <- numeric(length(FO))
for (i in 1:length(FO)) {
  P[i] <- pnorm(limsup[i], mean = u, sd = sigma) - pnorm(liminf[i], mean = u, sd = sigma)
}
FE <- P * length(autoalcance)

valores_validos <- FE > 0
X2_normal <- sum((FO[valores_validos] - FE[valores_validos])^2 / FE[valores_validos])
X2_normal
## [1] 1117.535
df_normal <- sum(valores_validos) - 1 - 2
Vc_normal <- qchisq(0.95, df = df_normal)
Vc_normal
## [1] 14.06714
# ¿Se ajusta a distribución normal?
X2_normal < Vc_normal
## [1] FALSE

Modelo Log-Normal:

log_autoalcance <- log(autoalcance)
ulog <- mean(log_autoalcance)
ulog
## [1] 2.995425
sigmalog <- sd(log_autoalcance)
sigmalog
## [1] 0.5334381
HistogramaLogNormal <- hist(autoalcance, freq = FALSE,
                            main = "Gráfica No.95: Histograma 
                            de Highway Range (FT2) con Curva Log-Normal",
                            xlab = "Highway Range (FT2)",
                            ylab = "Densidad",
                            col = "#FFD700")
x <- seq(min(autoalcance), max(autoalcance), 0.01)
lines(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "red", lwd = 2)

Test:

FO <- HistogramaLogNormal$counts
liminf <- HistogramaLogNormal$breaks[-length(HistogramaLogNormal$breaks)]
liminf
##  [1]  0 10 20 30 40 50 60 70 80 90
limsup <- HistogramaLogNormal$breaks[-1]
limsup
##  [1]  10  20  30  40  50  60  70  80  90 100
Plog <- numeric(length(FO))
for (j in 1:length(FO)) {
  Plog[j] <- plnorm(limsup[j], meanlog = ulog, sdlog = sigmalog) -
    plnorm(liminf[j], meanlog = ulog, sdlog = sigmalog)
}
FElog <- Plog * length(autoalcance)

valores_validos_log <- FElog > 0
X2_log <- sum((FO[valores_validos_log] - FElog[valores_validos_log])^2 / FElog[valores_validos_log])
X2_log
## [1] 40.30501
df_log <- sum(valores_validos_log) - 1 - 2
Vc_log <- qchisq(0.95, df = df_log)
Vc_log
## [1] 14.06714
# ¿Se ajusta a distribución log-normal?
X2_log < Vc_log
## [1] FALSE