PRÁCTICA CALIFICADA N°01

Ejercicio 3: Para este ejercicio se pide seguir las siguientes indicaciones: * A. Generar una base de datos aleatoria en base a 120 observaciones. * B. Obtener dos variables independientes que sigan una distribución normal estándar (X1 y X2). La variable dependiente tomará el valor de: Y= 3 * X1 + 2 * X2 * C. Definir el modelo de regresión lineal múltiple, tomando en cuenta los siguientes valores Para el intercepto, considerar una distribución a priori normal (0,22) Para B, considerar una distribución a priori normal (0,12). * D. Calcular el resumen del modelo.

Instala y carga la biblioteca brms

library(brms)
## Loading required package: Rcpp
## Loading 'brms' package (version 2.20.3). Useful instructions
## can be found by typing help('brms'). A more detailed introduction
## to the package is available through vignette('brms_overview').
## 
## Attaching package: 'brms'
## The following object is masked from 'package:stats':
## 
##     ar
library(rstudioapi)

A. Generar una base de datos aleatoria en base a 120 observaciones.

Considerando la semilla “123”

set.seed(123)

n <- 120  # Número de observaciones
X1 <- rnorm(n)  # Variable predictora 1 (normalmente distribuida)
X2 <- rnorm(n)  # Variable predictora 2 (normalmente distribuida)
head(data.frame(X1, X2),5) #Mostrar los datos para x1 y x2

B. Obtener dos variables independientes que sigan una distribución normal estándar (X1 y X2). La variable dependiente tomará el valor de: Y= 3 * X1 + 2 * X2

Y <- 3 * X1 + 2 * X2 + rnorm(n, mean = 0, sd = 1)  # Variable de respuesta
data <- data.frame(X1, X2, Y) #Creando un dataframe con los datos
head(data,5) #Mostrar los 5 datos del data frame

#C. Definir el modelo de regresión lineal múltiple, tomando en cuenta los siguientes valores Para el intercepto, considerar una distribución a priori normal (0,22) Para B, considerar una distribución a priori normal (0,12).

model <- brm(
  formula = Y ~ X1 + X2,  # Variables predictoras
  data = data,
  prior = c(
    prior(normal(0, 2), class = Intercept),  # Prior para la intersección
    prior(normal(0, 1), class = b)  # Prior para los coeficientes de X1 y X2
  ),
  chains = 4,  # Número de cadenas de Markov
  cores = 4,  # Número de núcleos de CPU para paralelizar
  iter = 2000  # Número de iteraciones
)
## Compiling Stan program...
## Start sampling

#D. Calcular el resumen del modelo.

summary(model)
##  Family: gaussian 
##   Links: mu = identity; sigma = identity 
## Formula: Y ~ X1 + X2 
##    Data: data (Number of observations: 120) 
##   Draws: 4 chains, each with iter = 2000; warmup = 1000; thin = 1;
##          total post-warmup draws = 4000
## 
## Population-Level Effects: 
##           Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## Intercept     0.08      0.10    -0.11     0.27 1.00     4119     2538
## X1            2.98      0.11     2.77     3.19 1.00     4274     3252
## X2            1.83      0.10     1.64     2.02 1.00     3982     2725
## 
## Family Specific Parameters: 
##       Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sigma     1.04      0.07     0.92     1.18 1.00     4429     3112
## 
## Draws were sampled using sampling(NUTS). For each parameter, Bulk_ESS
## and Tail_ESS are effective sample size measures, and Rhat is the potential
## scale reduction factor on split chains (at convergence, Rhat = 1).