es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Estoy tratando de estimar 𝜷 = (𝛽􏰁, 𝛽􏰂)′ utilizando OLS (forma matricial) y almacenar los valores en una matriz de dimensión 𝑟 × 2, con simulación de Monte Carlo.

No entiendo del todo cómo almacenar los valores en una matriz de dimensión 𝑟 × 2. Esto es lo que he llegado a hacer en R:

Mi regresión: 𝑦=𝛽0+𝛽1𝑥+𝑢, donde B0=1 y B1=-1

set.seed(123)
n = 20
nreps=10000
beta_0 = -1
beta_1 = 1

ols = vector(mode=”numeric”, length=nreps)

##Comenzar simulación

for (r in 1:nreps) {
u = rnorm(n, mean = 0, sd = 1)
x = rnorm(n, mean = 1, sd = 2^2)
y = beta_0 + beta_1*x + u

head(x)

beta_hat=solve(t(x) %% x) %% (t(x) %*% y)
beta_hat

# print(paste(“Estimación OLS =”, beta_hat))4f

ols[r] = beta_hat
}
ols = cbind(ols)
ols_average=mean(ols[,1])
ols_sd=sd(ols[,1])
plot(density(ols))

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para almacenar los valores en una matriz de dimensión 𝑛 × 2, se puede crear una matriz y luego llenarla con los valores deseados mediante la indexación. Aquí hay un ejemplo:

    “`{r}
    set.seed(123)
    n = 20
    nreps = 10000
    beta_0 = -1
    beta_1 = 1

    ols_matrix = matrix(NA, nrow = nreps, ncol = 2) # crear una matriz vacía

    ##Comenzar MC

    for (r in 1:nreps) {
    u = rnorm(n, mean = 0, sd = 1)
    x = rnorm(n, mean = 1, sd = 2^2)
    y = beta_0 + beta_1*x + u

    beta_hat = solve(t(x) %% x) %% (t(x) %*% y)

    ols_matrix[r, 1] = beta_hat # almacenar beta_hat en la primera columna de la fila actual
    ols_matrix[r, 2] = sum(u^2)/(n-2) # almacenar MSE en la segunda columna de la fila actual
    }

    ols_average = mean(ols_matrix[, 1])
    ols_sd = sd(ols_matrix[, 1])

    plot(density(ols_matrix[, 1])) # trazar la densidad de los valores de beta_hat
    “`

    En este ejemplo, creamos una matriz vacía ols_matrix con nreps filas y 2 columnas. Dentro del bucle for, almacenamos el valor de beta_hat en la primera columna de la fila actual mediante ols_matrix[r, 1] = beta_hat, y calculamos el error cuadrático medio (MSE) de la regresión utilizando sum(u^2)/(n-2) y lo almacenamos en la segunda columna de la fila actual mediante ols_matrix[r, 2].

Comments are closed.