“Este documento muestra la simulación del supuesto de insesgadez utilizando R y el método de Monte Carlo con 100 investigadores, basado en la ecuación de demanda simulada previamente. Se utiliza un modelo de regresión simple y se cambia la semilla en cada iteración.”
set.seed(123)
precio = round(runif(1000, 3000, 15000), 0) # Precios aleatorios entre 3000 y 15000
error = round(rnorm(1000, 0, 50), 1) # Error aleatorio
demanda = 2000 - 0.1 * precio + error # Simulación de la demanda
datos = data.frame(demanda, precio)
datos = data.frame(demanda, precio)
```
```{r}
for (i in 1:100) { set.seed(i) # Cambiar la semilla en cada iteración datos_muestra = datos[sample(nrow(datos), 80), ] # Muestra aleatoria de 80 observaciones modelo = lm(demanda ~ precio, data = datos_muestra) # Ajustar modelo de regresión beta1_values[i] = coef(modelo)[2] # Extraer coeficiente de precio (beta1) }
if (length(beta1_values) > 0) { print(“Coeficientes beta_1 calculados correctamente.”) print(beta1_values[1:5]) } else { stop(“Error: ‘beta1_values’ está vacío. Verifica la simulación de los investigadores.”) }
beta1_promedio = mean(beta1_values)
beta1_promedio
```
beta1_values = numeric(100)
for (i in 1:100) { set.seed(i) # Cambiar la semilla en cada iteración datos_muestra = datos[sample(nrow(datos), 80), ] # Muestra aleatoria de 80 observaciones modelo = lm(demanda ~ precio, data = datos_muestra) # Ajustar modelo de regresión beta1_values[i] = coef(modelo)[2] # Extraer coeficiente de precio (beta1) }
if (length(beta1_values) > 0) { print(“Coeficientes beta_1 calculados correctamente.”) print(beta1_values[1:5]) } else { stop(“Error: ‘beta1_values’ está vacío. Verifica la simulación de los investigadores.”) }
beta1_promedio = mean(beta1_values)
beta1_promedio ```
```{## Gráficos}
if (exists(“datos”)) { hist(datos$precio, col = “darkgreen”, main = “Histograma de la Variable Precio”, xlab = “Valores de Precio”, ylab = “Frecuencia”, border = “white”) } else { print(“Error: ‘datos’ no encontrado. Asegúrate de ejecutar la sección de generación de datos antes de graficar.”) }
if (length(beta1_values) > 0) { hist(beta1_values, main = “Distribución de los coeficientes estimados Beta1”, xlab = “Beta1”, col = “lightblue”, border = “black”) plot(density(beta1_values), main = “Densidad de los coeficientes Beta1”, col = “blue”, lwd = 2) abline(v = beta1_promedio, col = “red”, lwd = 2, lty = 2) # Línea del promedio de Beta1 } else { print(“Error: ‘beta1_values’ está vacío. Verifica la simulación de los investigadores antes de graficar.”) } ```
“La simulación muestra que el valor promedio del coeficiente beta_1 se acerca al valor real del modelo poblacional (-0.1). Esto sugiere que la estimación es insesgada en promedio, cumpliendo con el supuesto de insesgadez del estimador de Mínimos Cuadrados Ordinarios (MCO).”