Para cada una de las muestras que aparecen en la tabla del Anexo:

7.1 Realizar las pruebas de aleatoriedad, tendencia e independencia

#lectura de datos 
setwd("C:/COPIA DE SEGURIDAD 2023/MAESTRÌA/PROCESOS ESTOCÀSTICOS/")

ruta_dir1 <- ("C:/COPIA DE SEGURIDAD 2023/MAESTRIA/PROCESOS ESTOCÀSTICOS/DATOS_TALLER 1_R.xlsx")
TABLA_ORIGEN<- read_excel("DATOS_TALLER 1_R.xlsx")

Prueba de aleatoriedad t(años)

#Prueba de Aleatoriedad t


library(stats) 

Aleatoriedad_t <- runs.test(TABLA_ORIGEN$`t [anos]`)

print(Aleatoriedad_t)
## 
##  Runs Test
## 
## data:  TABLA_ORIGEN$`t [anos]`
## statistic = -7.2826, runs = 2, n1 = 28, n2 = 28, n = 56, p-value =
## 3.275e-13
## alternative hypothesis: nonrandomness
#Prubea de aleatoriedad paso a paso_t

n <- length(TABLA_ORIGEN$`t [anos]`)
med_t <- median(TABLA_ORIGEN$`t [anos]`)
med_t
## [1] 9.323
Media_t <- mean(TABLA_ORIGEN$`t [anos]`)
Media_t
## [1] 9.487061
Desviación_t <- sd(TABLA_ORIGEN$`t [anos]`)
Desviación_t
## [1] 5.724939
C.V <- (Desviación_t/Media_t)*100
C.V
## [1] 60.34471
#Contar el número de transiciones en la variable t(años)
###############################################################################

#Se hallan los valores por encima y por debajo de la mediana 

n1 <- length(TABLA_ORIGEN$`t [anos]` [TABLA_ORIGEN$`t [anos]`<med_t])
n2 <- length(TABLA_ORIGEN$`t [anos]`[TABLA_ORIGEN$`t [anos]`>med_t])

# Inicializar variables
 
r1 <- 1
r2 <- 1
transiciones<- 1  # Iniciar con una transición 

# Iterar sobre los datos para contar transiciones

for (i in 2:n) {
  if (TABLA_ORIGEN$`t [anos]`[i] < med_t && TABLA_ORIGEN$`t [anos]`[i - 1] > med_t) {
    r1 <- r1 + 1
    transiciones <- transiciones+ 1
  } else if (TABLA_ORIGEN$`t [anos]`[i] > med_t && TABLA_ORIGEN$`t [anos]`[i - 1] < med_t) {
    r2 <- r2 + 1
    transiciones <- transiciones + 1
  }
}

# Asegurar que el último valor no cause una racha adicional

if (TABLA_ORIGEN$`t [anos]`[n] == med_t) {
  transiciones <- transiciones - 1
}
 transiciones <- r1 + r2
 
# Mostrar el número de transiciones
transiciones
## [1] 2
#####################################################################

#Hallamos Miu u 

Miu_u<- (2*n1*n2)/(n1+n2)+1
#Miu_u <- ((2*(n1*n2))/n)+1
Miu_u
## [1] 29
Sigma_u <- (((2*n1*n2*(2*n1*n2-n1-n2))/(((n1+n2)^2)*(n1+n2-1)))^(1/2))
#Sigma_u <- (((2*n1*n2)*(2*n1*n2 -n))/((n^2)*(n-1)))^(1/2)
Sigma_u
## [1] 3.707486
Zu <- (transiciones - Miu_u)/ Sigma_u
Zu 
## [1] -7.282562
# Nivel de confianza (1 - alpha= 5%)

nivel_de_confianza <- 0.95

# Cálculo del valor crítico z
valor_crítico_z <- qnorm(1 - (1 - nivel_de_confianza) / 2)

# Imprimir el valor crítico z
print(valor_crítico_z)
## [1] 1.959964
#Comparación de Zu con Valor crítico 

resultado <- ifelse((Zu > valor_crítico_z * (-1)) && (Zu < valor_crítico_z),
                    "Con el 95% de certeza, los datos son aleatorios",
                    "Los datos no son aleatorios")
print(resultado)
## [1] "Los datos no son aleatorios"
##Prueba de tendencia Mann-Kendall para tiempo t años


mk <- mk.test(TABLA_ORIGEN$`t [anos]`)
print(mk)
## 
##  Mann-Kendall trend test
## 
## data:  TABLA_ORIGEN$`t [anos]`
## z = 10.98, n = 57, p-value < 2.2e-16
## alternative hypothesis: true S is not equal to 0
## sample estimates:
##        S     varS      tau 
##  1596.00 21102.67     1.00
Zs =10.98

nivel_de_confianza <- 0.95

# Cálculo del valor crítico z
valor_crítico_zs <- qnorm(1 - (1 - nivel_de_confianza) / 2)

# Imprimir el valor crítico Z
print(valor_crítico_zs)
## [1] 1.959964
#Comparación de Z con Valor crítico 

resultado <- ifelse((Zs > valor_crítico_zs * (-1)) && (Zs < valor_crítico_zs),
                    "Con el 95% de certeza, los datos no tienen tendencia",
                    "Los datos tienen tendencia")
x <- print(resultado)
## [1] "Los datos tienen tendencia"
# Comparación de Zs para reconocer tendencia positiva o negativa de los datos
tendencia <- if (Zs > valor_crítico_zs * (-1)) {
  print("positiva")
} else {
  print("negativa")
}
## [1] "positiva"
# Imprimir los resultados
print(paste(x, tendencia))
## [1] "Los datos tienen tendencia positiva"

Prueba de dispersiòn t(años)

#Gráfico de dispersión de los datos t

plot(TABLA_ORIGEN$`t [anos]`)
#Línea mediana en gráfico de dispersión t
abline(h = median(TABLA_ORIGEN$`t [anos]`), col = "red") 

barplot(TABLA_ORIGEN$`t [anos]`, names.arg = 1:nrow(TABLA_ORIGEN), col = "blue", 
        main = "Gráfico de Barras de t [anos]", xlab = "Observaciones", ylab = "t [anos]")

# Dibujar una línea roja para representar la mediana
abline(h = median(TABLA_ORIGEN$`t [anos]`), col = "red")

“(Carlos J. Zapata, 2015) señala en su libro ‘Análisis Probabilístico y Simulación’ en el Capítulo 2 (Análisis de Datos)”

2.6 Pruebas de Aleatoriedad, Tendencia e Independencia en Variables Crecientes o Decrecientes

Algunas variables aleatorias tienen la característica natural de ser siempre crecientes o decrecientes, es decir monotónicas. Ejemplo de este tipo de variables son aquellas que expresan el tiempo acumulado desde un origen, el producto interno bruto de un país en un periodo de varios años, el capital de una persona en el tiempo, etc. En este caso, si se realizan las pruebas de aleatoriedad, tendencia e independencia sobre este tipo de variable, fallarán y mostraran que no hay aleatoriedad, que hay tendencia y que los datos son dependientes entre sí. Pero este resultado es falso y se debe a la naturaleza creciente o decreciente de la variable. Así, para este tipo de variables, las pruebas de aleatoriedad, tendencia e independencia deben realizarse sobre los incrementos entre los datos. El resultado que se obtenga será el verdadero para la variable original.

Prueba de aleatoriedad x(años)

#Prueba de Aleatoriedad x (Incremento sobre los datos x (años))

Aleatoriedad_x <- runs.test(TABLA_ORIGEN$`x [anos]`)

print(Aleatoriedad_x) 
## 
##  Runs Test
## 
## data:  TABLA_ORIGEN$`x [anos]`
## statistic = 0, runs = 29, n1 = 28, n2 = 28, n = 56, p-value = 1
## alternative hypothesis: nonrandomness
#Prubea de aleatoriedad paso a paso_ x[años]

n <- length(TABLA_ORIGEN$`x [anos]`)
med_x <- median(TABLA_ORIGEN$`x [anos]`)
med_x
## [1] 0.2619
Media_x <- mean(TABLA_ORIGEN$`x [anos]`)
Media_x
## [1] 0.3711
desviacion <- sd(TABLA_ORIGEN$`x [anos]`)
desviacion
## [1] 0.3699892
C.V <- (desviacion / Media_x)*100
C.V
## [1] 99.70068
##############################################################################

#Se hallan los valores por encima y por debajo de la mediana 

n1 <- length(TABLA_ORIGEN$`x [anos]` [TABLA_ORIGEN$`x [anos]`<med_x])
n2 <- length(TABLA_ORIGEN$`x [anos]`[TABLA_ORIGEN$`x [anos]`>med_x])

# Inicializar variables
 
r1 <- 1
r2 <- 1
transiciones<- 1  # Iniciar con una transición 

# Iterar sobre los datos para contar transiciones
for (i in 2:n) {
  if (TABLA_ORIGEN$`x [anos]`[i] < med_x && TABLA_ORIGEN$`x [anos]`[i - 1] > med_x) {
    r1 <- r1 + 1
    transiciones <- transiciones+ 1
  } else if (TABLA_ORIGEN$`x [anos]`[i] > med_x && TABLA_ORIGEN$`x [anos]`[i - 1] < med_x) {
    r2 <- r2 + 1
    transiciones <- transiciones + 1
  }
}

# Asegurar que el último valor no cause una racha adicional
if (TABLA_ORIGEN$`x [anos]`[n] == med_x) {
  transiciones <- transiciones - 1
}
 transiciones <- r1 + r2
# Mostrar el número de rachas
transiciones
## [1] 29
###################################################################################

#Hallamos Miu u 

Miu_u<- (2*n1*n2)/(n1+n2)+1
#Miu_u <- ((2*(n1*n2))/n)+1
Miu_u
## [1] 29
Sigma_u <- (((2*n1*n2*(2*n1*n2-n1-n2))/(((n1+n2)^2)*(n1+n2-1)))^(1/2))
#Sigma_u <- (((2*n1*n2)*(2*n1*n2 -n))/((n^2)*(n-1)))^(1/2)
Sigma_u
## [1] 3.707486
Zu <- (transiciones - Miu_u)/ Sigma_u
Zu 
## [1] 0
# Nivel de confianza (1 - alpha= 5%)

nivel_de_confianza <- 0.95

# Cálculo del valor crítico z
valor_crítico_z <- qnorm(1 - (1 - nivel_de_confianza) / 2)

# Imprimir el valor crítico z
print(valor_crítico_z)
## [1] 1.959964
#Comparación de Zu con Valor crítico 

resultado <- ifelse((Zu > valor_crítico_z * (-1)) && (Zu < valor_crítico_z),
                    "Con el 95% de certeza, los datos son aleatorios",
                    "Los datos no son aleatorios")
print(resultado)
## [1] "Con el 95% de certeza, los datos son aleatorios"
##Prueba de tendencia Mann-Kendall para tiempo x años


mk.test(TABLA_ORIGEN$`x [anos]`)
## 
##  Mann-Kendall trend test
## 
## data:  TABLA_ORIGEN$`x [anos]`
## z = 1.2184, n = 57, p-value = 0.2231
## alternative hypothesis: true S is not equal to 0
## sample estimates:
##            S         varS          tau 
## 1.780000e+02 2.110267e+04 1.115288e-01
Zs =1.2184

nivel_de_confianza <- 0.95

# Cálculo del valor crítico z
valor_crítico_zs <- qnorm(1 - (1 - nivel_de_confianza) / 2)

# Imprimir el valor crítico Z
print(valor_crítico_zs)
## [1] 1.959964
#Comparación de Z con Valor crítico 

resultado <- ifelse((Zs > valor_crítico_zs * (-1)) && (Zs < valor_crítico_zs),
                    "Con el 95% de certeza, los datos no tienen tendencia",
                    "Los datos tienen tendencia")
x <- print(resultado)
## [1] "Con el 95% de certeza, los datos no tienen tendencia"
# Comparación de Zs para reconocer tendencia positiva o negativa de los datos
tendencia <- if (Zs > valor_crítico_zs * (-1)) {
  print("positiva")
} else {
  print("negativa")
}
## [1] "positiva"
# Imprimir los resultados
print(paste(x, tendencia))
## [1] "Con el 95% de certeza, los datos no tienen tendencia positiva"
#Gráfico de dispersión de los datos x

plot(TABLA_ORIGEN$`x [anos]`)
#Línea mediana en gráfico de dispersión t
abline(h = median(TABLA_ORIGEN$`x [anos]`), col = "red") 

barplot(TABLA_ORIGEN$`x [anos]`, names.arg = 1:nrow(TABLA_ORIGEN), col = "blue", 
        main = "Gráfico de Barras de x [anos]", xlab = "Observaciones", ylab = "x [anos]")

# Dibujar una línea roja para representar la mediana
abline(h = median(TABLA_ORIGEN$`x [anos]`), col = "red")

Prueba de aleatoriedad costo [$COP*10^6 ]

Aleatoriedad_costo <- runs.test(TABLA_ORIGEN$`[$COP*10^6 ]`)

print(Aleatoriedad_costo)
## 
##  Runs Test
## 
## data:  TABLA_ORIGEN$`[$COP*10^6 ]`
## statistic = 0.26972, runs = 30, n1 = 28, n2 = 28, n = 56, p-value =
## 0.7874
## alternative hypothesis: nonrandomness
#Prubea de aleatoriedad paso a paso_ costo

n <- length(TABLA_ORIGEN$`[$COP*10^6 ]`)
med_costo <- median(TABLA_ORIGEN$`[$COP*10^6 ]`)
med_costo
## [1] 32.6136
Media_costo <- mean(TABLA_ORIGEN$`[$COP*10^6 ]`)
Media_costo
## [1] 50.54507
desviacion <- sd(TABLA_ORIGEN$`[$COP*10^6 ]`)
desviacion
## [1] 59.88067
C.V <- (desviacion / Media_costo)*100
C.V
## [1] 118.4698
#Contar el número de transiciones en la variable t(años)
###############################################################################

#Se hallan los valores por encima y por debajo de la mediana 

n1 <- length(TABLA_ORIGEN$`[$COP*10^6 ]` [TABLA_ORIGEN$`[$COP*10^6 ]`<med_costo])
n2 <- length(TABLA_ORIGEN$`[$COP*10^6 ]`[TABLA_ORIGEN$`[$COP*10^6 ]`>med_costo])

# Inicializar variables
 
r1 <- 1
r2 <- 1
transiciones<- 1  # Iniciar con una transición 

# Iterar sobre los datos para contar transiciones

for (i in 2:n) {
  if (TABLA_ORIGEN$`[$COP*10^6 ]`[i] < med_costo && TABLA_ORIGEN$`[$COP*10^6 ]`[i - 1] > med_costo) {
    r1 <- r1 + 1
    transiciones <- transiciones+ 1
  } else if (TABLA_ORIGEN$`[$COP*10^6 ]`[i] > med_costo && TABLA_ORIGEN$`[$COP*10^6 ]`[i - 1] < med_costo) {
    r2 <- r2 + 1
    transiciones <- transiciones + 1
  }
}

# Asegurar que el último valor no cause una racha adicional

if (TABLA_ORIGEN$`[$COP*10^6 ]`[n] == med_costo) {
  transiciones <- transiciones - 1
}
 transiciones <- r1 + r2
 
# Mostrar el número de transiciones
transiciones
## [1] 30
#####################################################################


#Hallamos Miu u 

Miu_u<- ((2*n1*n2)/(n1+n2))+1
#Miu_u <- ((2*(n1*n2))/n)+1
Miu_u
## [1] 29
Sigma_u <- ((2*n1*n2*(2*n1*n2-n1-n2))/((((n1+n2)^2)*(n1+n2-1))))^(1/2)
#Sigma_u <- (((2*n1*n2)*(2*n1*n2 -n))/((n^2)*(n-1)))^(1/2)
Sigma_u
## [1] 3.707486
Zu <- (transiciones - Miu_u)/ Sigma_u
Zu 
## [1] 0.2697245
# Nivel de confianza (1 - alpha= 5%)

nivel_de_confianza <- 0.95

# Cálculo del valor crítico z
valor_crítico_z <- qnorm(1 - (1 - nivel_de_confianza) / 2)

# Imprimir el valor crítico z
print(valor_crítico_z)
## [1] 1.959964
#Comparación de Zu con Valor crítico 

resultado <- ifelse((Zu > valor_crítico_z * (-1)) && (Zu < valor_crítico_z),
                    "Con el 95% de certeza, los datos son aleatorios",
                    "Los datos no son aleatorios")
print(resultado)
## [1] "Con el 95% de certeza, los datos son aleatorios"

Prueba de tendencia Mann-Kendall costo [$COP*10^6 ]

##Prueba de tendencia Mann-Kendall para tiempo costo


mk.test(TABLA_ORIGEN$`[$COP*10^6 ]`)
## 
##  Mann-Kendall trend test
## 
## data:  TABLA_ORIGEN$`[$COP*10^6 ]`
## z = 3.3249, n = 57, p-value = 0.0008845
## alternative hypothesis: true S is not equal to 0
## sample estimates:
##            S         varS          tau 
## 4.840000e+02 2.110267e+04 3.032581e-01
Zs =3.3249

nivel_de_confianza <- 0.95

# Cálculo del valor crítico z
valor_crítico_zs <- qnorm(1 - (1 - nivel_de_confianza) / 2)

# Imprimir el valor crítico Z
print(valor_crítico_zs)
## [1] 1.959964
#Comparación de Z con Valor crítico 

resultado <- ifelse((Zs > valor_crítico_zs * (-1)) && (Zs < valor_crítico_zs),
                    "Con el 95% de certeza, los datos no tienen tendencia",
                    "Los datos tienen tendencia")
x <- print(resultado)
## [1] "Los datos tienen tendencia"
# Comparación de Zs para reconocer tendencia positiva o negativa de los datos
tendencia <- if (Zs > valor_crítico_zs * (-1)) {
  print("positiva")
} else {
  print("negativa")
}
## [1] "positiva"
# Imprimir los resultados
print(paste(x, tendencia))
## [1] "Los datos tienen tendencia positiva"

Prueba de dispersión costo [$COP*10^6 ]

#Gráfico de dispersión de los datos costo
plot(TABLA_ORIGEN$`[$COP*10^6 ]`)
#Línea mediana en gráfico de dispersión t
abline(h = median(TABLA_ORIGEN$`[$COP*10^6 ]`), col = "red") 

barplot(TABLA_ORIGEN$`[$COP*10^6 ]`, names.arg = 1:nrow(TABLA_ORIGEN), col = "blue", 
        main = "Gráfico de Barras de costo", xlab = "Observaciones", ylab = "Costo")

# Dibujar una línea roja para representar la mediana
abline(h = median(TABLA_ORIGEN$`[$COP*10^6 ]`), col = "red")

Prueba de aleatoriedad ttr [horas]

#Prueba de Aleatoriedad ttr

Aleatoriedad_ttr <- runs.test(TABLA_ORIGEN$`ttr [horas] c`)

print(Aleatoriedad_ttr)
## 
##  Runs Test
## 
## data:  TABLA_ORIGEN$`ttr [horas] c`
## statistic = -1.3486, runs = 24, n1 = 28, n2 = 28, n = 56, p-value =
## 0.1775
## alternative hypothesis: nonrandomness
n <- length(TABLA_ORIGEN$`ttr [horas] c`)
med_ttr <- median(TABLA_ORIGEN$`ttr [horas] c`)
med_ttr
## [1] 3.7821
Media_ttr <- mean(TABLA_ORIGEN$`ttr [horas] c`)
Media_ttr
## [1] 5.396279
Desviación_ttr <- sd(TABLA_ORIGEN$`ttr [horas] c`)
Desviación_ttr
## [1] 5.502819
C.V <- (Desviación_ttr/Media_ttr)*100
C.V
## [1] 101.9743
#Contar el número de transiciones en la variable t(años)
#############################################################################

#Se hallan los valores por encima y por debajo de la mediana 

n1 <- length(TABLA_ORIGEN$`ttr [horas] c` [TABLA_ORIGEN$`ttr [horas] c`<med_ttr])
n2 <- length(TABLA_ORIGEN$`ttr [horas] c`[TABLA_ORIGEN$`ttr [horas] c`>med_ttr])

# Inicializar variables
 
r1 <- 0
r2 <- 1
transiciones<- 1  # Iniciar con una transición 

# Iterar sobre los datos para contar transiciones

for (i in 2:n) {
  if (TABLA_ORIGEN$`ttr [horas] c`[i] < med_ttr && TABLA_ORIGEN$`ttr [horas] c`[i - 1] > med_ttr) {
    r1 <- r1 + 1
    transiciones <- transiciones+ 1
  } else if (TABLA_ORIGEN$`ttr [horas] c`[i] > med_ttr && TABLA_ORIGEN$`ttr [horas] c`[i - 1] < med_ttr) {
    r2 <- r2 + 1
    transiciones <- transiciones + 1
  }
}

# Asegurar que el último valor no cause una racha adicional

if (TABLA_ORIGEN$`ttr [horas] c`[n] == med_ttr) {
  transiciones <- transiciones - 1
}
 transiciones <- r1 + r2
 
# Mostrar el número de transiciones
transiciones
## [1] 24
#####################################################################

#Hallamos Miu u 

Miu_u<- ((2*n1*n2)/(n1+n2))+1
#Miu_u <- ((2*(n1*n2))/n)+1
Miu_u
## [1] 29
Sigma_u <- ((2*n1*n2*(2*n1*n2-n1-n2))/((((n1+n2)^2)*(n1+n2-1))))^(1/2)
#Sigma_u <- (((2*n1*n2)*(2*n1*n2 -n))/((n^2)*(n-1)))^(1/2)
Sigma_u
## [1] 3.707486
Zu <- (transiciones - Miu_u)/ Sigma_u
Zu
## [1] -1.348623
# Nivel de confianza (1 - alpha= 5%)

nivel_de_confianza <- 0.95

# Cálculo del valor crítico z
valor_crítico_z <- qnorm(1 - (1 - nivel_de_confianza) / 2)

# Imprimir el valor crítico z
print(valor_crítico_z)
## [1] 1.959964
#Comparación de Zu con Valor crítico 

resultado <- ifelse((Zu > valor_crítico_z * (-1)) && (Zu < valor_crítico_z),
                    "Con el 95% de certeza, los datos son aleatorios",
                    "Los datos no son aleatorios")
print(resultado)
## [1] "Con el 95% de certeza, los datos son aleatorios"

Prueba de Mann-Kendall ttr [horas]

mk.test(TABLA_ORIGEN$`ttr [horas] c`)
## 
##  Mann-Kendall trend test
## 
## data:  TABLA_ORIGEN$`ttr [horas] c`
## z = -1.0119, n = 57, p-value = 0.3116
## alternative hypothesis: true S is not equal to 0
## sample estimates:
##             S          varS           tau 
## -1.480000e+02  2.110267e+04 -9.273183e-02
Zs =-1.0119

nivel_de_confianza <- 0.95

# Cálculo del valor crítico z
valor_crítico_zs <- qnorm(1 - (1 - nivel_de_confianza) / 2)

# Imprimir el valor crítico Z
print(valor_crítico_zs)
## [1] 1.959964
#Comparación de Z con Valor crítico 

resultado <- ifelse((Zs > valor_crítico_zs * (-1)) && (Zs < valor_crítico_zs),
                    "Con el 95% de certeza, los datos no tienen tendencia",
                    "Los datos tienen tendencia")
x <- print(resultado)
## [1] "Con el 95% de certeza, los datos no tienen tendencia"
# Comparación de Zs para reconocer tendencia positiva o negativa de los datos
tendencia <- if (Zs > valor_crítico_zs * (-1)) {
  print("positiva")
} else {
  print("negativa")
}
## [1] "positiva"
# Imprimir los resultados
print(paste(x, tendencia))
## [1] "Con el 95% de certeza, los datos no tienen tendencia positiva"

Prueba de dispersión ttr [horas]

#Gráfico de dispersión de los datos costo
plot(TABLA_ORIGEN$`ttr [horas] c`)
#Línea mediana en gráfico de dispersión t
abline(h = median(TABLA_ORIGEN$`ttr [horas] c`), col = "red") 

barplot(TABLA_ORIGEN$`ttr [horas] c`, names.arg = 1:nrow(TABLA_ORIGEN), col = "blue", 
        main = "Gráfico de Barras ttr (horas)", xlab = "Observaciones", ylab = "ttr")

# Dibujar una línea roja para representar la mediana
abline(h = median(TABLA_ORIGEN$`ttr [horas] c`), col = "red")