No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Convierte tus certificados en títulos universitarios en USA

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

19 Días
11 Hrs
3 Min
15 Seg

Observando el comportamiento del tamaño muestral

24/37
Recursos

Aportes 6

Preguntas 4

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

# Podemos ver que el tamaño muestral presenta rendimientos decreci --------


# Distribución normal -----------------------------------------------------

tamano_muestral_max <- 500
iteraciones <- 100
media_poblacional <- 5
desv_est_poblacional <- 3
tamano_muestral <- floor(seq(10, tamano_muestral_max, length.out = iteraciones))

desv_est_estimada <- media_estimada <- dif_cuad_media <- dif_cuad_desv_est <- vector()

for (i in seq_len(iteraciones)) {
  muestra <- rnorm(tamano_muestral[i], media_poblacional, desv_est_poblacional)
  media_estimada[i] <- mean(muestra)
  desv_est_estimada[i] <- sd(muestra)
  dif_cuad_media[i] <- (media_estimada[i] - media_poblacional)^2
  dif_cuad_desv_est[i] <- (desv_est_estimada[i] - desv_est_poblacional)^2
}


plot(media_estimada ~ tamano_muestral)
abline(h = media_poblacional, col = 2, lwd = 2)

plot(dif_cuad_media ~ tamano_muestral, type = "l")


plot(desv_est_estimada ~ tamano_muestral)
abline(h = desv_est_poblacional, col = 2, lwd = 2)

plot(dif_cuad_desv_est ~ tamano_muestral, type = "l")




# Distribución uniforme ---------------------------------------------------


tamano_muestral_max <- 500
iteraciones <- 100
maximo_poblacional <- 8
minimo_poblacional <- 3
tamano_muestral <- floor(seq(10, tamano_muestral_max, length.out = iteraciones))

maximo_estimado <- minimo_estimado <- dif_cuad_maximo <- dif_cuad_minimo <- vector()

for (i in seq_len(iteraciones)) {
  muestra <- runif(tamano_muestral[i], minimo_poblacional, maximo_poblacional)
  maximo_estimado[i] <- max(muestra)
  minimo_estimado[i] <- min(muestra)
  dif_cuad_maximo[i] <- (maximo_estimado[i] - maximo_poblacional)^2
  dif_cuad_minimo[i] <- (minimo_estimado[i] - minimo_poblacional)^2
}


plot(maximo_estimado ~ tamano_muestral)
abline(h = maximo_poblacional, col = 2, lwd = 2)

plot(dif_cuad_media ~ tamano_muestral, type = "l")


plot(minimo_estimado ~ tamano_muestral)
abline(h = minimo_poblacional, col = 2, lwd = 2)

plot(dif_cuad_desv_est ~ tamano_muestral, type = "l")


# Regresión lineal --------------------------------------------------------

tamano_muestral_max <- 500
iteraciones <- 100
beta_0 <- 1
beta_1 <- -0.3
minimo_poblacional <- 3
tamano_muestral <- floor(seq(10, tamano_muestral_max, length.out = iteraciones))

genera_x <- function(n) seq(-3, 3, length.out = n)

genera_y <- function(x, beta_0, beta_1){
  beta_1*x + beta_0 + rnorm(length(x), 0, 0.5)
}

beta_0_estimado <- beta_1_estimado <- dif_cuad_beta_0 <- dif_cuad_beta_1 <- vector()

for (i in seq_len(iteraciones)) {
  X <- genera_x(tamano_muestral[i])
  Y <- genera_y(X, beta_0, beta_1)
  betas <- coef(lm(Y ~ X))
  beta_0_estimado[i] <- betas[1]
  beta_1_estimado[i] <- betas[2]
  dif_cuad_beta_0[i] = (beta_0_estimado[i] - beta_0)^2
  dif_cuad_beta_1[i] = (beta_1_estimado[i] - beta_1)^2
}


plot(beta_0_estimado ~ tamano_muestral)
abline(h = beta_0, col = 2, lwd = 2)

plot(dif_cuad_beta_0 ~ tamano_muestral, type = "l")


plot(beta_1_estimado ~ tamano_muestral)
abline(h = beta_1, col = 2, lwd = 2)

plot(dif_cuad_beta_1 ~ tamano_muestral, type = "l")



# tidy approach -----------------------------------------------------------


# Paquetes ----------------------------------------------------------------


library("dplyr")
library("purrr")
library("ggplot2")
library("magrittr")

colores_platzi <- c("#78D92A", "#002E4E", "#058ECD", "#ED2B05", "#F4F7F4")


# Distribución normal -----------------------------------------------------



tamano_muestral_max <- 500
iteraciones <- 100
media_poblacional <- 5
desv_est_poblacional <- 3


tibble(
  media = media_poblacional,
  desv_est = desv_est_poblacional,
  tamano_muestral = floor(seq(10, tamano_muestral_max, length.out = iteraciones)),
  muestras = map(tamano_muestral, rnorm, media, desv_est),
  media_estimada = map_dbl(muestras, mean),
  desv_est_estimada = map_dbl(muestras, sd),
  dif_cuad_medias = (media - media_estimada)^2,
  dif_cuad_sd = (desv_est_estimada - desv_est)^2
) -> simulaciones

qplot(tamano_muestral, media_estimada, data = simulaciones) +
  geom_hline(yintercept = simulaciones$media, colour = colores_platzi[4]) +
  theme_minimal()

qplot(tamano_muestral, dif_cuad_medias, data = simulaciones) +
  geom_smooth(size = 1, se = FALSE, colour = colores_platzi[4]) +
  theme_minimal()


qplot(tamano_muestral, desv_est_estimada, data = simulaciones) +
  geom_hline(yintercept = simulaciones$desv_est, colour = colores_platzi[4]) +
  theme_minimal()

qplot(tamano_muestral, dif_cuad_sd, data = simulaciones) +
  geom_smooth(size = 1, se = FALSE, colour = colores_platzi[4]) +
  theme_minimal()


# Distribución uniforme ---------------------------------------------------


tamano_muestral_max <- 500
iteraciones <- 100

tibble(
  tamano_muestral = floor(seq(10, tamano_muestral_max, length.out = iteraciones)),
  maximo_poblacional = 8,
  minimo_poblacional = 3,
  muestras = map(tamano_muestral, runif, minimo_poblacional, maximo_poblacional),
  maximo_estimado = map_dbl(muestras, max),
  minimo_estimado = map_dbl(muestras, min),
  dif_cuad_maximo = (maximo_poblacional - maximo_estimado)^2,
  dif_cuad_minimo = (minimo_poblacional - minimo_estimado)^2
) -> simulaciones

qplot(tamano_muestral, maximo_estimado, data = simulaciones) +
  geom_hline(yintercept = simulaciones$maximo_poblacional, colour = colores_platzi[4]) +
  theme_minimal()

qplot(tamano_muestral, dif_cuad_maximo, data = simulaciones) +
  geom_smooth(size = 1, se = FALSE, colour = colores_platzi[4]) +
  theme_minimal()

qplot(tamano_muestral, minimo_estimado, data = simulaciones) +
  geom_hline(yintercept = simulaciones$minimo_poblacional, colour = colores_platzi[4]) +
  theme_minimal()

qplot(tamano_muestral, dif_cuad_minimo, data = simulaciones) +
  geom_smooth(size = 1, se = FALSE, colour = colores_platzi[4]) +
  theme_minimal()



# Regresión lineal simple -------------------------------------------------


tamano_muestral_max <- 500
iteraciones <- 100
beta_0 <- 1
beta_1 <- -0.3
minimo_poblacional <- 3

genera_x <- function(n) seq(-3, 3, length.out = n)

genera_y <- function(x, beta_0, beta_1){
  beta_1*x + beta_0 + rnorm(length(x), 0, 0.5)
}

estima_betas <- function(x, y){
  coef(lm(y ~ x))
}

tibble(
  tamano_muestral = floor(seq(10, tamano_muestral_max, length.out = iteraciones)),
  datos_x = map(tamano_muestral, genera_x),
  datos_y = map(datos_x, genera_y, beta_0, beta_1),
  betas = map2(datos_x, datos_y, estima_betas),
  beta_0_estimado = map_dbl(betas, extract, 1),
  beta_1_estimado = map_dbl(betas, extract, 2),
  dif_cuad_beta_0 = (beta_0_estimado - beta_0)^2,
  dif_cuad_beta_1 = (beta_1_estimado - beta_1)^2
  # plot = map2(datos_x, datos_y, plot)
) -> simulaciones

qplot(tamano_muestral, beta_0_estimado, data = simulaciones) +
  geom_hline(yintercept = beta_0, colour = colores_platzi[4]) +
  theme_minimal()

qplot(tamano_muestral, dif_cuad_beta_0, data = simulaciones) +
  geom_smooth(size = 1, se = FALSE, colour = colores_platzi[4]) +
  theme_minimal()


qplot(tamano_muestral, beta_1_estimado, data = simulaciones) +
  geom_hline(yintercept = beta_1, colour = colores_platzi[4]) +
  theme_minimal()

qplot(tamano_muestral, dif_cuad_beta_1, data = simulaciones) +
  geom_smooth(size = 1, se = FALSE, colour = colores_platzi[4]) +
  theme_minimal()```


#Distribucion normal

tamano_muestral_max <- 5000
iteraciones <- 100
media_poblacional <- 5
desv_est_poblacional<- 3
tamano_muestral <- floor(seq(10, tamano_muestral_max, length.out = iteraciones))


desv_est_estimada <- media_estimada <- dif_cuad_media <- dif_cuad_desv_est <- vector()

for (i in seq_len(iteraciones)){
  muestra <- rnorm(tamano_muestral[i], media_poblacional, desv_est_poblacional)
  media_estimada[i] <- mean(muestra) 
  desv_est_estimada[i] <- sd(muestra)
  dif_cuad_media[i] <- (media_poblacional - media_estimada[i])^2
  dif_cuad_desv_est[i] <- (desv_est_poblacional - desv_est_estimada[i])^2
}

plot(media_estimada ~ tamano_muestral)
abline(h = media_poblacional, col = 2, lwd =2)

plot(dif_cuad_media ~ tamano_muestral)

plot(desv_est_estimada ~ tamano_muestral)
abline(h = desv_est_poblacional, col = 2, lwd =2)

plot(dif_cuad_desv_est ~ tamano_muestral)
![](https://static.platzi.com/media/user_upload/image-929330bb-8219-4d47-b8b2-56e7042668f3.jpg) ```js plot(maximo_estimado ~ tamano_muestral) abline(h = maximo_poblacional, col = 4, lwd = 4) plot(dif_cuad_media ~ tamano_muestral, type = "l") ```

Para pruebas de bondad de ajuste con Python recomiendo
Phitter Library

import phitter

data: list[int | float] = [...]

phitter_cont = phitter.PHITTER(
    data=data,
    fit_type="continuous",
    num_bins=15,
    confidence_level=0.95,
    minimum_sse=1e-2,
    distributions_to_fit=["beta", "normal", "fatigue_life", "triangular"],
)
phitter_cont.fit(n_workers=6)

Gracias!

Ejemplo de la clase + ejercicio con ggplot2 en Notebook:
https://colab.research.google.com/drive/1Kla_p2TL8Zxva-bpzyyPeBQpVrd1-t4v?usp=sharing