x <- c(1, 3, 7, 4, 8, 6, 2, 5, 1, 6, 4, 4, 3, 3, 4, 2, 1, 5, 8, 7,
0, 7, 6, 2, 6, 0, 5, 7, 8, 0, 1, 1, 2, 6, 7, 6, 3, 7, 5, 9,
0, 8, 8, 2, 6, 7, 8, 1, 3, 5, 3, 8, 4, 0, 9, 0, 3, 0, 9, 2,
2, 3, 6, 5, 6, 0, 0, 1, 3, 4, 4, 6, 9, 9, 8, 5, 6, 0, 1, 7,
5, 6, 7, 9, 4, 9, 3, 1, 8, 3, 3, 6, 6, 7, 8, 2, 3, 5, 9, 6,
6, 7, 0, 3, 1, 0, 2, 4, 2, 0, 6, 4, 0, 3, 9, 3, 6, 8, 1, 5)
table(x)
## x
##  0  1  2  3  4  5  6  7  8  9 
## 14 11 10 16 10 10 18 11 11  9
gaps <- function(y){ #calcula todos las longitudes de gaps de la serie x
lgaps <- NULL
for (i in 0:9){
pos <- which(y==i)
l <- diff(pos)
lgaps <- c(lgaps,l-1)}
L <- table(lgaps)
return(L)
}
l <- gaps(x)
cumsum(l/sum(l))
##         0         1         2         3         4         5         6         7 
## 0.1000000 0.1909091 0.2454545 0.3000000 0.3545455 0.4000000 0.4545455 0.5090909 
##         8         9        10        11        12        13        14        15 
## 0.5636364 0.6181818 0.6909091 0.7181818 0.7545455 0.8181818 0.8272727 0.8545455 
##        16        17        19        21        22        24        33        34 
## 0.8909091 0.9090909 0.9181818 0.9272727 0.9636364 0.9727273 0.9818182 0.9909091 
##        37 
## 1.0000000
# Función para calcular los gaps para 1
gaps_numero <- function(y, numero) {
  # Encuentra las posiciones donde aparece el 1 en la secuencia
  pos <- which(y == numero)
  # Calcula las diferencias entre las posiciones y resta 1 para obtener los gaps
  lgaps <- diff(pos) - 1
  # Devuelve la tabla de distribución de los tamaños de los gaps
  return(table(lgaps))
}
# Aplicar la función para calcular los gaps del número 1 en la secuencia x
l_1 <- gaps_numero(x, 1)

# Mostrar la distribución acumulada de los gaps del número 1
cumsum(l_1 / sum(l_1))
##   0   7   8  10  13  15  16  19 
## 0.1 0.3 0.4 0.5 0.7 0.8 0.9 1.0
pgeom(as.numeric(names(l)),prob=0.1)
##  [1] 0.1000000 0.1900000 0.2710000 0.3439000 0.4095100 0.4685590 0.5217031
##  [8] 0.5695328 0.6125795 0.6513216 0.6861894 0.7175705 0.7458134 0.7712321
## [15] 0.7941089 0.8146980 0.8332282 0.8499054 0.8784233 0.9015229 0.9113706
## [22] 0.9282102 0.9721872 0.9749684 0.9817520
(D <- max(abs(cumsum(l/sum(l))-pgeom(as.numeric(names(l)),prob=0.1))))
## [1] 0.068559
(pval <- 2*exp(-2*sum(l)*D^2))
## [1] 0.7111109

Pregunta 8

ruta <- "C:\\Users\\Guillermo\\Desktop\\Respaldo\\Documents\\random.csv"
data <- read.csv(ruta, header = FALSE)
numeros <- c(data$V1)
intervalos <- cut(numeros, breaks = seq(0, 1, by = 0.1), include.lowest = TRUE)
observados <- table(intervalos)
esperados <- rep(length(numeros) / 10, 10)
# Prueba Ji-cuadrada
chi2_test <- chisq.test(observados, p = rep(1/10, 10))
print(chi2_test)
## 
##  Chi-squared test for given probabilities
## 
## data:  observados
## X-squared = 10.024, df = 9, p-value = 0.3485
ks_test <- ks.test(numeros, "punif", min = 0, max = 1)
## Warning in ks.test.default(numeros, "punif", min = 0, max = 1): ties should not
## be present for the Kolmogorov-Smirnov test
print(ks_test)
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  numeros
## D = 0.0028904, p-value = 0.3737
## alternative hypothesis: two-sided
acf_result <- acf(numeros, plot = TRUE, main = "Autocorrelación de los números generados")

# Histograma de los números generados
hist(numeros, breaks = 50, main = "Histograma de los números generados", xlab = "Números")

# Gráfico Q-Q para comparar con la distribución uniforme
qqplot(runif(length(numeros)), numeros, main = "Gráfico Q-Q")