# 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
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)
```
##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