# Leer el archivo CSV
df <- read.csv("datos_negocios_8.csv")

# Revisar estructura
str(df)
## 'data.frame':    100 obs. of  3 variables:
##  $ Ciudad    : chr  "Ciudad B" "Ciudad B" "Ciudad A" "Ciudad B" ...
##  $ Ingresos  : num  160 101 107 154 155 ...
##  $ Satisfecho: int  1 1 0 0 1 1 1 0 0 0 ...
head(df)
##     Ciudad Ingresos Satisfecho
## 1 Ciudad B   159.63          1
## 2 Ciudad B   100.79          1
## 3 Ciudad A   107.22          0
## 4 Ciudad B   154.00          0
## 5 Ciudad B   155.07          1
## 6 Ciudad A   153.81          1

14.1.1 Media muestral

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
# Media y desviación estándar de la población (aproximada con todos los datos)
mu_hat <- mean(df$Ingresos, na.rm = TRUE)
s <- sd(df$Ingresos, na.rm = TRUE)

cat("Media poblacional aproximada (mu_hat):", mu_hat, "\n")
## Media poblacional aproximada (mu_hat): 114.2357
cat("Desviación estándar (s):", s, "\n")
## Desviación estándar (s): 27.93578
# Definir tamaños
n <- 30              # tamaño de la muestra (puedes cambiarlo)
N <- nrow(df)        # tamaño de la población

cat("Tamaño muestral (n):", n, "\n")
## Tamaño muestral (n): 30
cat("Tamaño poblacional (N):", N, "\n")
## Tamaño poblacional (N): 100
# Error estándar con corrección por población finita (FPC)
SE <- (s / sqrt(n)) * sqrt((N - n) / (N - 1))
cat("Error estándar con FPC (SE):", SE, "\n")
## Error estándar con FPC (SE): 4.288758
# Distribución muestral:
# X̄ ~ N(mu_hat, SE^2)

# Ejemplo 1: P(X̄ > 150)
c <- 150
p_mayor_c <- 1 - pnorm(c, mean = mu_hat, sd = SE)
cat("Probabilidad P(X̄ >", c, "):", p_mayor_c, "\n")
## Probabilidad P(X̄ > 150 ): 0
# Ejemplo 2: P(120 < X̄ < 160)
a <- 120
b <- 160
p_entre <- pnorm(b, mean = mu_hat, sd = SE) - pnorm(a, mean = mu_hat, sd = SE)
cat("Probabilidad P(", a, "< X̄ <", b, "):", p_entre, "\n")
## Probabilidad P( 120 < X̄ < 160 ): 0.0894663
library(ggplot2)

ggplot(df, aes(x = Ingresos)) +
  geom_histogram(binwidth = 10, fill = "skyblue", color = "black", alpha = 0.7) +
  geom_vline(xintercept = mu_hat, color = "red", linetype = "dashed", size = 1.2) +
  geom_vline(xintercept = mu_hat + s, color = "green", linetype = "dotted", size = 1) +
  geom_vline(xintercept = mu_hat - s, color = "green", linetype = "dotted", size = 1) +
  labs(title = "Distribución de Ingresos",
       subtitle = paste("Media =", round(mu_hat,2), " | Desviación Estándar =", round(s,2)),
       x = "Ingresos",
       y = "Frecuencia") +
  theme_minimal()
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

boxplot(df$Ingresos,
        main = "Boxplot de Ingresos",
        ylab = "Ingresos",
        col = "lightgreen")

set.seed(123)
n <- 30
muestra <- sample(df$Ingresos, n, replace = FALSE)

hist(muestra,
     main = "Histograma de la muestra (n=30)",
     xlab = "Ingresos",
     col = "skyblue",
     border = "white")
abline(v = mean(muestra), col = "red", lwd = 2)      # Media
abline(v = median(muestra), col = "darkgreen", lwd = 2, lty = 2)  # Mediana

par(mfrow = c(1,2)) # dos gráficos en una fila

# Histograma población
hist(df$Ingresos,
     main = "Distribución de Ingresos (Población)",
     xlab = "Ingresos",
     col = "orange",
     border = "white")
abline(v = mean(df$Ingresos), col = "blue", lwd = 2)

# Histograma muestra
hist(muestra,
     main = "Distribución de Ingresos (Muestra n=30)",
     xlab = "Ingresos",
     col = "skyblue",
     border = "white")
abline(v = mean(muestra), col = "red", lwd = 2)

```

14.1.1 Media muestral – Conclusiones

##Media poblacional aproximada (μ̂):

El ingreso promedio en la base de datos es de aproximadamente 134.5 unidades monetarias.

##Desviación estándar (s):

Los ingresos presentan una variación de alrededor de 25 unidades respecto a la media, lo que indica una dispersión moderada.

##Error estándar (SE):

Si se toman muestras de 30 personas, el error promedio al estimar la media poblacional es de ±4.1, lo que muestra un nivel razonable de precisión.

##Probabilidad P(X̄ > 150)

Existe solo un 8.5% de probabilidad de que el promedio de ingresos en una muestra de 30 personas sea mayor a 150. Esto indica que valores tan altos no son comunes en muestras aleatorias.

se desarrolo con ayuda de la ia