Definición:
Es una variable aleatoria es una función que asigna un valor numérico a
cada uno de los posibles resultados de un experimento aleatorio. Dichos
valores dependen del resultado del experimento y, por lo tanto, son
inciertos antes de que el experimento se realice. Las variables
aleatorias son fundamentales en probabilidad y estadística, ya que
permiten modelar fenómenos que presentan incertidumbre.
Tipos de Variables Aleatorias:
El modelo de regresión lineal simple es una forma básica de regresión lineal que implica una única variable independiente (predictora) y una variable dependiente. La ecuación del modelo se representa como:
\[ y = \beta_0 + \beta_1 X + E \]
Los parámetros \(\beta_0\) y \(\beta_1\) son desconocidos y se estiman, se usa el método de mínimos cuadrados, se estima tales que la suma de los cuadrados de las diferencias entre las observaciones \(y_i\) y la línea recta sea mínima.
El criterio de mínimos cuadrados es:
\[ S(\beta_0, \beta_1) = \sum_{i=1}^n (y_i - \beta_0 - \beta_1 X_i)^2 \]
Calculamos las derivadas parciales con respecto a \(\beta_0\) y \(\beta_1\) e igualamos a 0 y despejamos y obtenemos los estimadores.
Por lo tanto, los estimadores de mínimos cuadrados para los coeficientes de la regresión lineal simple son:
\[ \beta_0 = \bar{y} - \beta_1 \bar{x} \]
\[ \beta_1 = \frac{S_{xy}}{S_{xx}} = \frac{\sum_{i=1}^n (X_i - \bar{x})(Y_i - \bar{y})}{\sum_{i=1}^n (X_i - \bar{x})^2} \]
Normalidad: Uno de los supuestos claves es el supuesto de normalidad de los errores. Este supuesto establece que los errores del modelo (las diferencias entre los valores observados y los valores predichos) siguen una distribución normal. Si los errores no siguen una distribución normal, los estimadores pueden no ser válidos.
Independencia: Asegura que los residuos vinculados a distintas observaciones carecen de interdependencia entre sí.
Homoscedasticidad: Establece que la variabilidad del término de error permanece constante en todos los niveles de las variables independientes. Esto implica que la dispersión de los errores es mantenida uniforme a lo largo de la línea de regresión.
La regresión lineal múltiple es una extensión de la regresión lineal simple que involucra más de una variable independiente para predecir una variable dependiente. La ecuación del modelo se representa como:
\[ Y = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \ldots + \beta_k X_k + E \]
Se llama modelo de regresión lineal múltiple con \(k\) regresores. Este modelo describe un hiperplano en el espacio de \(k\) dimensiones de las variables regresoras \(X_j\). El parámetro \(\beta_j\) representa el cambio esperado en la respuesta \(Y\) por cambio unitario en \(X_j\) cuando todas las demás variables regresoras \(X_i\) se mantienen constantes.
Se puede aplicar el método de mínimos cuadrados para estimar los coeficientes de regresión. La función de mínimos cuadrados es:
\[ S(\beta_0, \beta_1, \ldots, \beta_k) = \sum_{i=1}^n \left(y_i - \beta_0 - \sum_{j=1}^{k} \beta_j X_{ij}\right)^2 \]
Se debe minimizar la función \(S\) respecto a \(\beta_0, \beta_1, \ldots, \beta_k\) entonces.
Es más cómodo manejar modelos de regresión múltiple cuando se expresa en notación matricial. En notación matricial el modelo expresado por la ecuación:
\[ y = X\beta + E \]
donde:
\[ y = \begin{pmatrix} y_1 \\ y_2 \\ \vdots \\ y_n \end{pmatrix}, \quad \beta = \begin{pmatrix} \beta_0 \\ \beta_1 \\ \vdots \\ \beta_k \end{pmatrix}, \quad \epsilon = \begin{pmatrix} \epsilon_1 \\ \epsilon_2 \\ \vdots \\ \epsilon_n \end{pmatrix}, \quad X = \begin{pmatrix} 1 & x_{11} & x_{12} & \cdots & x_{1k} \\ 1 & x_{21} & x_{22} & \cdots & x_{2k} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 1 & x_{n1} & x_{n2} & \cdots & x_{nk} \end{pmatrix} \]
Se desea determinar el vector \(\beta\) de estimadores de mínimos cuadrados que minimice:
\[ S(\beta) = \sum_{i=1}^n \epsilon_i^2 = \epsilon^T \epsilon = (y - X\beta)^T(y - X\beta) \]
se puede expresar como:
\[ S(\beta) = (y - X\beta)^T(y - X\beta) = y^Ty - 2y^TX\beta + \beta^TX^TX\beta \]
Derivamos parcialmente e igualamos a 0. La solución de las ecuaciones normales serán los estimadores por mínimos cuadrados.
Entonces, para mínimos cuadrados ordinarios (MCO), que consiste en resolver la ecuación:
\[ \hat{\beta} = (X^TX)^{-1}X^Ty \]
donde \(\hat{\beta}\) es el vector de estimación de los coeficientes, \(y\) es el vector de las dependientes \(Y\) es la matriz de variables dependientes \(X\) es la transpuesta de \(X\). La ventaja de resolver por MCO es que obtenemos medidas de ajuste confiable.
El vector de los valores ajustados \(\hat{y} = X\hat{\beta} = X(X^TX)^{-1}X^Ty\). La matriz \(H = X(X^TX)^{-1}X^T\) se suele llamar matriz de sombrero.
Los mismos supuestos que el modelo de regresión lineal simple pero además debe cumplir con Multicolinealidad: Se debe suponer que las variables de regresión múltiple no están altamente correlacionadas entre sí. Aunque puede complicar la interpretación de los coeficientes, no influye directamente en la predicción del modelo.
Para los siguientes tipos de modelos, se describen sus principales características y propiedades:
Datos de la tabla
y <- c(1.45, 1.93, 0.81, 0.61, 1.55, 0.95, 0.45, 1.14, 0.74, 0.98, 1.41, 0.81, 0.89,
0.68, 1.39, 1.53, 0.91, 1.49, 1.38, 1.73, 1.11, 1.68, 0.66, 0.69, 1.98)
x1 <- c(0.58, 0.86, 0.29, 0.20, 0.56, 0.28, 0.08, 0.41, 0.22, 0.35, 0.59, 0.22, 0.26,
0.12, 0.65, 0.70, 0.30, 0.70, 0.39, 0.72, 0.45, 0.81, 0.04, 0.20, 0.95)
x2 <- c(0.71, 0.13, 0.79, 0.20, 0.56, 0.92, 0.01, 0.60, 0.70, 0.73, 0.13, 0.96, 0.27,
0.21, 0.88, 0.30, 0.15, 0.09, 0.17, 0.25, 0.30, 0.32, 0.82, 0.98, 0.00)Crear data frame
Ajustar el modelo de regresión lineal múltiple
##
## Call:
## lm(formula = y ~ x1 + x2, data = datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.15493 -0.07801 -0.02004 0.04999 0.30112
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.433547 0.065983 6.571 1.31e-06 ***
## x1 1.652993 0.095245 17.355 2.53e-14 ***
## x2 0.003945 0.074854 0.053 0.958
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1127 on 22 degrees of freedom
## Multiple R-squared: 0.9399, Adjusted R-squared: 0.9344
## F-statistic: 172 on 2 and 22 DF, p-value: 3.699e-14
Imprimir los estimadores beta_0, beta_1, y beta_2
## Estimador de beta_0 (intercepto): 0.4335471
## Estimador de beta_1: 1.652993
## Estimador de beta_2: 0.003944875
Calcular e imprimir el estimador de sigma^2
## Estimador de sigma^2: 0.01270523
Calcular los intervalos de confianza al 99% para los coeficientes
confint_99 <- confint(modelo, level = 0.99)
print("Intervalos de confianza al 99% para los coeficientes del modelo:")## [1] "Intervalos de confianza al 99% para los coeficientes del modelo:"
## 0.5 % 99.5 %
## (Intercept) 0.2475571 0.6195371
## x1 1.3845199 1.9214670
## x2 -0.2070498 0.2149395
Obtener los coeficientes estimados
beta_0 <- coef(modelo)[1]
beta_1 <- coef(modelo)[2]
# Calcular la diferencia D = 4*beta_0 - beta_1
D <- 4 * beta_0 - beta_1Calcular el error estándar de la diferencia D Para esto, necesitamos la varianza de los coeficientes
vcov_matrix <- vcov(modelo) # Matriz de varianzas y covarianzas de los coeficientes
se_D <- sqrt(16 * vcov_matrix[1,1] + vcov_matrix[2,2] - 8 * vcov_matrix[1,2])
# Calcular el estadístico t
t_stat <- D / se_D
# Grados de libertad
df <- modelo$df.residual
# Calcular el valor p (dos colas)
p_value <- 2 * pt(-abs(t_stat), df)
# Imprimir resultados
cat("Estadístico t:", t_stat, "\n")## Estadístico t: 0.2348524
## Valor p: 0.8164954
# Comparar con el nivel de significancia del 2%
alpha <- 0.02
if (p_value < alpha) {
cat("Rechazamos H0: 4beta_0 = beta_1 al nivel de significancia del 2%.\n")
} else {
cat("No se rechaza H0: 4beta_0 = beta_1 al nivel de significancia del 2%.\n")
}## No se rechaza H0: 4beta_0 = beta_1 al nivel de significancia del 2%.
modelo_completo <- lm(y ~ x1 + x2)
#Modelo reducido (sin x2)
modelo_reducido <- lm(y ~ x1)
# Comparación de los modelos usando F-test
anova(modelo_completo, modelo_reducido)Realice un análisis residual para verificar que los supuestos del modelo son satisfechos.
Graficar los residuos vs. valores ajustados (supuesto de homocedasticidad y linealidad)
plot(fitted(modelo), residuos,
xlab = "Valores ajustados", ylab = "Residuos",
main = "Residuos vs. Valores ajustados")
abline(h = 0, col = "red")Graficar los residuos vs. cada predictor (independencia de errores)
par(mfrow = c(1, 2))
plot(x1, residuos,
xlab = "x1", ylab = "Residuos",
main = "Residuos vs. x1")
abline(h = 0, col = "red")
plot(x2, residuos,
xlab = "x2", ylab = "Residuos",
main = "Residuos vs. x2")
abline(h = 0, col = "red")Graficar el QQ-plot de los residuos (supuesto de normalidad)
Histograma de los residuos (verificación adicional de normalidad)
Crear nuevo conjunto de datos para predicción
Predicciones con intervalos de confianza y predicción
predicciones <- predict(modelo_reducido, nuevos_datos, interval = "confidence")
predicciones_pred <- predict(modelo_reducido, nuevos_datos, interval = "prediction")Grafica
plot(x1, y, main = "Línea ajustada e intervalos de confianza/predicción", xlab = "x1", ylab = "y", pch = 16)
lines(nuevos_datos$x1, predicciones[, "fit"], col = "blue")
lines(nuevos_datos$x1, predicciones[, "lwr"], col = "red", lty = 2)
lines(nuevos_datos$x1, predicciones[, "upr"], col = "red", lty = 2)
lines(nuevos_datos$x1, predicciones_pred[, "lwr"], col = "green", lty = 2)
lines(nuevos_datos$x1, predicciones_pred[, "upr"], col = "green", lty = 2)
legend("topleft", legend = c("Línea ajustada", "Intervalo confianza 95%", "Intervalo predicción 95%"),
col = c("blue", "red", "green"), lty = c(1, 2, 2))El cálculo de la suma de cuadrados de la regresión (SSR) se expresa como:
\[ \begin{align*} SSR & = \hat{\beta_1}^2 S_{xx} \end{align*} \]
También tenemos que SSR es:
\[ \begin{align*} SSR & = \sum ( \hat{y_i} - \bar{y})^2 \end{align*} \]
Sabemos que:
\[ \begin{align*} \hat{y_i} & = \hat{\beta_0} + \hat{\beta_1} x \end{align*} \]
y
\[ \begin{align*} \bar{y} & = \hat{\beta_0} + \hat{\beta_1} \bar{x} \end{align*} \]
Reemplazando \(\hat{y_i}\) y \(\bar{y}\) en SSR:
\[ \begin{align*} SSR & = \sum \left( (\hat{\beta_0} + \hat{\beta_1} x) - (\hat{\beta_0} + \hat{\beta_1} \bar{x}) \right)^2 \end{align*} \]
Realizamos la distribución del menos:
\[ \begin{align*} SSR & = \sum \left( \hat{\beta_1} (x - \bar{x}) \right)^2 \end{align*} \]
Simplificamos y sacamos factor común:
\[ \begin{align*} SSR & = \sum \left( (\hat{\beta_1} (x - \bar{x}))^2 \right) \end{align*} \]
\[ Var(\hat{\beta_0}) = \sigma^2 \left( \frac{1}{n} + \frac{\bar{x}^2}{S_{xx}} \right) \]
Sabemos que \(\hat{\beta_0}=\bar{y}-\hat{\beta_1}\bar{x}\) se reemplaza en \(Var(\hat{\beta_0})\):
\[ Var(\hat{\beta_0}) = Var(\bar{y}) - Var(\hat{\beta_1}\bar{x}) \]
\[ = Var(\bar{y}) - Var(\hat{\beta_1}\bar{x}) \]
\[ = Var(\bar{y}) - \bar{x}^2 Var(\hat{\beta_1}) \]
Sabemos que:
\[ Var(\bar{y}) = \frac{\sigma^2}{n} \quad \text{,} \quad Var(\hat{\beta_1}) = \frac{\sigma^2}{S_{xx}} \quad \text{y} \quad Sxx=\sum(xi-\bar{x})^2 \]
Entonces:
\[ Var(\hat{\beta_0}) = \frac{\sigma^2}{n} - \bar{x}^2 \frac{\sigma^2}{S_{xx}} \]
Factorizamos:
\[ Var(\hat{\beta_0}) = \sigma^2 \left( \frac{1}{n} + \frac{\bar{x}^2}{S_{xx}} \right) \]
\[ E(MS_{R}) = \sigma^2 + \beta_1^2 S_{xx} \]
\[ MS_{R} = \frac{SS_{R}}{1}=SS_{R} \]
Sabemos que:
\[ SSR = \sum (\hat{y}_i - \bar{y})^2 \]
\[ SSR = \beta_1^2 S_{xx} \]
Procedemos a calcular la esperanza:
\[ E(MS_{R}) = E(\beta_1^2S_{xx}) \]
\[ E(MS_{R}) = S_{xx} E(\beta_1^2) \]
\[ E(MS_{R}) = S_{xx} E((\beta_1 + \epsilon)^2) \]
\[ E(MS_{R}) = S_{xx} E(\beta_3^2) + 2E(\beta_1 \epsilon) + E(\epsilon^2) \]
Sabemos que \(E(\epsilon) = 0\) , \(E(\beta_1^2) = \beta_1^2+\frac{\sigma^2}{S_{xx}}\) , \(E(\epsilon^2) = \frac{\sigma^2}{S_{xx}}\) :
Entonces:
\[ E(MS_{R}) = S_{xx} (\beta_1^2+\frac{\sigma^2}{S_{xx}}) \]
Entonces como \(SS_{R}\) es:
\[ E(MSR) = \left( \sigma^2 + \beta_1^2 S_{xx} \right) \]
Demostrar que:
\[ \hat{\beta_0} = \beta_0 \] Sabemos que:
\(\beta_0=\bar{y}-\hat{\beta_1}\bar{x}\)
\(E(\bar{y})=\beta_0+\beta_1\bar{x}\)
\(E(\hat{\beta_1})=\beta_1¿+\)
Para demostrar que es insesgado aplicamos la esperanza: \[ E(\hat{\beta_0}) = E\left( \bar{Y} - \hat{\beta_1} \bar{X} \right) \]
Dado que \(E(\bar{Y}) = E(\beta_0 + \beta_1 \bar{X})\) reemplazamos:
\[ E(\hat{\beta_0}) = E(\bar{Y}) - \bar{X} E(\hat{\beta_1}) \]
\[ \hat{\beta_0}= \beta_0 + \hat{\beta_1} \bar{X} - \bar{X} \hat{\beta_1} \] Simplificamos \(\bar{X} \hat{\beta_1}\)
\[ \hat{\beta_0}= \beta_0 \]
Para el modelo de regresión lineal simple, demostrar que los elementos de la matriz sombrero son:
\(h_{ij}=\frac{1}{n}+\frac{(x_{i}-\bar{x})(x_{j}-\bar{j})}{S_{xx}}\) y
\(h_{ii}=\frac{1}{n}+\frac{(x_{i}-\bar{x})^2}{S_{xx}}\)
\(x_i\) son los valores de la variable independiente (predictora).
La matriz de sombrero \(H\) se define como:
\[ H = X(X'X)^{-1}X' \]
donde \(X\) es:
\[ X = \begin{pmatrix} 1 & x_1 \\ 1 & x_2 \\ \vdots & \vdots \\ 1 & x_n \end{pmatrix} \]
La matriz \(X'\) es:
\[ X' = \begin{pmatrix} 1 & 1 \ldots 1 \\ x_{1} & x_2 \ldots x_{n} \\ \end{pmatrix} \]
La matriz \(X'X\) es:
\[ X'X = \begin{pmatrix} n & \sum_{i=1}^{n} x_i \\ \sum_{i=1}^{n} x_i & \sum_{i=1}^{n} x_i^2 \end{pmatrix} \]
Así que \((X'X)^{-1}\) tiene la forma:
\[ (X'X)^{-1} = \frac{1}{n\sum_{i=1}^{n} x_i^2 - (\sum_{i=1}^{n} x_i)^2} \begin{pmatrix} \sum_{i=1}^{n} x_i^2 & -\sum_{i=1}^{n} x_i \\ -\sum_{i=1}^{n} x_i & n \end{pmatrix} \]
donde
\(det(X'X)=n\sum x_{i}^2-(\sum x_i)^2=nS_{xx}\)
\(=n \sum x_i^2 - \sum x_i^2\)
y
\(S_{xx}=\sum(x_i-\bar{x})^2\) es la suma de los cuadrados de las desviaciones de \(x_i\) con respecto a su media \(\bar{x}\)
por lo tanto el inverso es:
\[ (X'X)^{-1} = \frac{1}{nS_{xx}} \begin{pmatrix} \sum_{i=1}^{n} x_i^2 & \sum_{i=1}^{n} x_i \\ \sum_{i=1}^{n} x_i & n \end{pmatrix} \] nota: cambiamos \(\sum x_i^2\) por un \(S_{xx}\) porque al expandirlo
\(S_{xx}=\sum(x_i-\bar{x})^2=\sum x_i - \frac{1}{n}(\sum x_i)^2\)
para que se capture la varianza de los valores \(x_i\) de manera mas directa.
Ahora calculamos \(H = X(X'X)^{-1}X'\) y para calcular \(h_{ij}\) y \(h_{ii}\) de la misma matriz \(H\).
llamamos \(h_{ij}\) y \(h_{ii}\) a los elementos de la matriz \(H\)
\(h_{ij}=\frac{1}{n}+\frac{(x_{i}-\bar{x})(x_{j}-\bar{j})}{S_{xx}}\) y
\(h_{ii}=\frac{1}{n}+\frac{(x_{i}-\bar{x})^2}{S_{xx}}\)
donde \(\frac{1}{n}\) es un termino constante, porque cada observación tiene un peso bassico \(\frac{1}{n}\) por interceptor
Demostración de que los residuos de un modelo de regresión lineal se pueden expresar como:
\[ \mathbf{e} = (I - H)\boldsymbol{\varepsilon} \]
El modelo de regresión lineal múltiple se define como:
\[ Y = X \boldsymbol{\beta} + \boldsymbol{\varepsilon} \]
Donde: \(Y\) es el vector de respuestas, \(X\) es la matriz de diseño (predictores), \(\boldsymbol{\beta}\) es el vector de coeficientes, \(\boldsymbol{\varepsilon}\) es el vector de errores.
El estimador de los coeficientes \(\hat{\boldsymbol{\beta}}\) es:
\[ \hat{\boldsymbol{\beta}} = (X^T X)^{-1} X^T Y \]
El vector de residuos se define como:
\[ \mathbf{e} = Y - \hat{Y} \]
Donde:
\(\hat{Y}\) es el vector de valores ajustados.
Sustituyendo \(\hat{Y}\):
\[ \mathbf{e} = Y - H Y \]
Donde \(H\) es la matriz sombrero o “hat matrix”:
\[ H = X (X^T X)^{-1} X^T \]
Por lo tanto, el vector de residuos se puede expresar como:
\[ \mathbf{e} = (I - H)Y \]
Sustituyendo \(Y = X \boldsymbol{\beta} + \boldsymbol{\varepsilon}\):
\[ \mathbf{e} = (I - H)(X \boldsymbol{\beta} + \boldsymbol{\varepsilon}) \]
Distribuyendo:
\[ \mathbf{e} = (I - H) X \boldsymbol{\beta} + (I - H)\boldsymbol{\varepsilon} \]
Como \((I - H) X \boldsymbol{\beta} = 0\), el término se cancela y queda:
\[ \mathbf{e} = (I - H)\boldsymbol{\varepsilon} \]
Sabemos que:
\[ \hat{Y} = H Y \]
Por lo tanto, \((I - H) X \boldsymbol{\beta} = 0\), lo que implica que los residuos y los valores ajustados son ortogonales.
Vamos a demostrar que \(R^2\) es el cuadrado de la correlación entre los valores observados \(y\) y los valores predichos \(\hat{y}\) en un modelo de regresión lineal múltiple.
El coeficiente de determinación \(R^2\) mide la proporción de la variabilidad de la variable dependiente explicada por las variables independientes en el modelo de regresión.
La fórmula de \(R^2\) es:
\[ R^2 = \frac{SSR}{SST} = 1 - \frac{SSE}{SST} \]
Donde:
La correlación entre los valores observados \(y\) y los valores predichos \(\hat{y}\) está dada por:
\[ r(y, \hat{y}) = \frac{\sum (y_i - \bar{y})(\hat{y}_i - \bar{\hat{y}})}{\sqrt{\sum (y_i - \bar{y})^2 \sum (\hat{y}_i - \bar{\hat{y}})^2}} \]
Dado que en un modelo de regresión, la media de \(\hat{y}\) es igual a la media de \(y\) (es decir, \(\bar{\hat{y}} = \bar{y}\)), podemos simplificar la expresión de la correlación a:
\[ r(y, \hat{y}) = \frac{\sum (y_i - \bar{y})(\hat{y}_i - \bar{y})}{\sqrt{\sum (y_i - \bar{y})^2 \sum (\hat{y}_i - \bar{y})^2}} \]
El cuadrado de la correlación \(r^2(y, \hat{y})\) es:
\[ r^2(y, \hat{y}) = \left( \frac{\sum (y_i - \bar{y})(\hat{y}_i - \bar{y})}{\sqrt{\sum (y_i - \bar{y})^2 \sum (\hat{y}_i - \bar{y})^2}} \right)^2 \]
Lo que se puede simplificar a:
\[ r^2(y, \hat{y}) = \frac{\left( \sum (y_i - \bar{y})(\hat{y}_i - \bar{y}) \right)^2}{\sum (y_i - \bar{y})^2 \sum (\hat{y}_i - \bar{y})^2} \]
Sabemos que la suma de cuadrados de la regresión \(SSR\) está definida como:
\[ SSR = \sum (\hat{y}_i - \bar{y})^2 \]
Por lo tanto, podemos reescribir el cuadrado de la correlación \(r^2(y, \hat{y})\) como:
\[ r^2(y, \hat{y}) = \frac{\left( \sum (y_i - \bar{y})(\hat{y}_i - \bar{y}) \right)^2}{\sum (y_i - \bar{y})^2} \cdot SSR \]
Finalmente, dado que:
\[ R^2 = \frac{SSR}{SST} \]
Concluimos que:
\[ R^2 = r^2(y, \hat{y}) \]
Hemos demostrado que \(R^2\) es el cuadrado de la correlación entre los valores observados \(y\) y los valores predichos \(\hat{y}\):
\[ R^2 = r^2(y, \hat{y}) \]
El modelo de mínimos cuadrados ordinarios se define como:
\[ Y = X\beta + \epsilon \]
Donde: - \(Y\) es el vector de observaciones, - \(X\) es la matriz de predictores, - \(\beta\) es el vector de coeficientes desconocidos, - \(\epsilon\) es el vector de errores aleatorios.
Se impone la restricción lineal:
\[ T\beta = c \]
Donde \(T\) es una matriz de restricciones y \(c\) es un vector de constantes.
La función de pérdida de mínimos cuadrados ordinarios con la restricción se define como:
\[ L(\beta, \lambda) = (Y - X\beta)'(Y - X\beta) + 2\lambda'(T\beta - c) \]
Donde \(\lambda\) es el vector de multiplicadores de Lagrange.
Ahora, derivamos \(L(\beta, \lambda)\) con respecto a \(\beta\):
\[ \frac{\partial L(\beta, \lambda)}{\partial \beta} = -2X'(Y - X\beta) + 2T'\lambda \]
Igualando la derivada a cero:
\[ -2X'(Y - X\beta) + 2T'\lambda = 0 \]
De aquí obtenemos:
\[ T'\lambda = X'(Y - X\beta) \]
Sustituyendo \(Y - X\beta\):
\[ T'\lambda = X'Y - X'X\beta \]
Despejamos \(\beta\):
\[ T'\lambda + X'X\beta = X'Y \]
\[ \beta = (X'X)^{-1}(X'Y + T'\lambda) \]
Finalmente, obtenemos la estimación de \(\beta\):
\[ \hat{\beta} = (X'X)^{-1}X'Y + (X'X)^{-1}T'\lambda \]
Ahora de la siguiente ecuación despejamos \(\lambda =\)
\[ \frac{\partial L(\beta \lambda)}{\partial \lambda}= (Y - X\beta)'(Y - X\beta) + 2\lambda'(T\beta - c) \] \[ =2(T\beta-c) \]
Ahora igualamos el resultado de la derivada a \(0\) (cero):
\[ 2(T\beta - c) = 0 \implies T\beta - c = 0 \implies T\beta = c \]
Ahora sustituimos \(\hat{\beta}\) en el resultado anterior \(T\beta = c\):
\[ T(\hat{\beta} + (X'X)^{-1}T')\lambda = c \]
\[ T(\hat{\beta} + (X'X)^{-1}T'\lambda) = C - T\hat{\beta} \]
Esto es un solo término:
\[ \frac{1}{T(X'X)^{-1}T'}\left(c - T\hat{\beta}\right) \]
sabemos que:
\(\lambda=[T(X'X)^{-1}T']^{-1}\cdot[C-T\hat{\beta}]\)
\([T(X´X)^{-1}T']^{-1}=\frac{1}{T(X'X)^{-1}T'}\)
Ahora sustituimos \(\lambda\) en \(\hat{\beta}\):
\[ \beta = \hat{\beta} + (X(X'X)^{-1}T')'\cdot(c - T\hat{\beta}) \]
\[ \beta = \hat{\beta} + (X'X)^{-1}T'[T(X'X)^{-1}T']^{-1}\cdot(c - T\hat{\beta}) \]
\(\beta = \hat{\beta}\) (restringido de mínimos cuadrados).
Sabemos que el coeficiente de determinación \(R^2\) se define como:
\[ R^2 = \frac{SSR}{SST} \]
Donde: - \(SSR\) es la Suma de Cuadrados de la Regresión, - \(SST\) es la Suma Total de Cuadrados.
Además, sabemos que:
\[ SSR(B) \leq SSR(A) \]
Esto implica que el \(R^2\) del modelo B se puede escribir como:
\[ R_B^2 = \frac{SSR(B)}{SST(B)} \geq \frac{SSR(A)}{SST(A)} = R_A^2 \]
Por lo tanto:
\[ R_B^2 \geq R_A^2 \]
El modelo \(B\) (múltiple) tiene más predictores (\(x_1, x_2\)) que el modelo \(A\), por lo tanto, esto implica que \(SSR(B)\) será menor o igual que \(SSR(A)\), ya que se espera que el modelo \(B\) ajuste mejor o igual de bien que el modelo \(A\).
Crear el data frame con tus datos
datos <- data.frame(
Sujeto = 1:30,
IMC_Diabéticos = c(28.10, 32.30, 33.80, 33.70, 25.10, 28.50, 42.30, 31.40, 37.60, 32.40,
29.10, 28.60, 35.90, 30.40, 43.30, 30.70, 38.70, 28.70, 30.30, 30.50,
32.50, 25.50, 28.60, 46.10, 28.60, 29.60, 28.70, 32.80, 22.80, 35.30),
HF_Diabéticos = c(1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1),
ATF_Diabéticos = c(1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1),
IMC_No_Diabéticos = c(28.70, 28.40, 29.40, 28.80, 24.20, 31.60, 30.20, 23.40, 42.00, 25.80,
39.00, 31.60, 28.00, 28.20, 37.50, 29.10, 27.90, 28.30, 31.30, 34.50,
25.40, 24.00, 31.10, 37.30, 33.50, 33.50, 29.70, 29.20, 30.30, 25.50),
HF_No_Diabéticos = c(0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0),
ATF_No_Diabéticos = c(1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1)
)
# Ver los primeros datos
head(datos)realizo un análisis descriptivo inicial de las variables involucradas (IMC, HF, ATF). Esto puede incluir:
Resumen estadístico:
## Sujeto IMC_Diabéticos HF_Diabéticos ATF_Diabéticos
## Min. : 1.00 Min. :22.80 Min. :0.0000 Min. :0.0000
## 1st Qu.: 8.25 1st Qu.:28.62 1st Qu.:0.0000 1st Qu.:0.0000
## Median :15.50 Median :30.60 Median :1.0000 Median :1.0000
## Mean :15.50 Mean :32.06 Mean :0.5333 Mean :0.5333
## 3rd Qu.:22.75 3rd Qu.:33.77 3rd Qu.:1.0000 3rd Qu.:1.0000
## Max. :30.00 Max. :46.10 Max. :1.0000 Max. :1.0000
## IMC_No_Diabéticos HF_No_Diabéticos ATF_No_Diabéticos
## Min. :23.40 Min. :0.0000 Min. :0.0
## 1st Qu.:28.05 1st Qu.:0.0000 1st Qu.:0.0
## Median :29.30 Median :0.0000 Median :0.5
## Mean :30.25 Mean :0.4333 Mean :0.5
## 3rd Qu.:31.60 3rd Qu.:1.0000 3rd Qu.:1.0
## Max. :42.00 Max. :1.0000 Max. :1.0
# Gráfico de cajas para comparar IMC entre diabéticos y no diabéticos
boxplot(datos$IMC_Diabéticos, datos$IMC_No_Diabéticos,
names = c("Diabéticos", "No Diabéticos"),
main = "Comparación del IMC entre Diabéticos y No Diabéticos",
ylab = "IMC")se puede interpretar que: Los diabéticos tienden a tener un IMC mayor en comparación con los no diabéticos. Hay más variabilidad en los valores de IMC dentro del grupo de diabéticos. Si hay outliers en el grupo de diabéticos, podrías investigar si esos individuos tienen características particulares (por ejemplo, casos severos de obesidad).
Crear una columna que indique si el sujeto es diabético o no
Crear una nueva data frame que combine todas las variables
datos_completo <- data.frame(
Sujeto = rep(1:30, 2),
IMC = c(datos$IMC_Diabéticos, datos$IMC_No_Diabéticos),
HF = c(datos$HF_Diabéticos, datos$HF_No_Diabéticos),
ATF = c(datos$ATF_Diabéticos, datos$ATF_No_Diabéticos),
Diabetes = diabetes
)necesitamos ajustar el modelo y necesitamos que sea una regresion logistica por tanto usamos “glm” para eso. Ajustar el modelo de regresión logística
##
## Call:
## glm(formula = Diabetes ~ IMC + HF + ATF, family = binomial, data = datos_completo)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -2.64021 1.81760 -1.453 0.146
## IMC 0.07808 0.05653 1.381 0.167
## HF 0.35816 0.56243 0.637 0.524
## ATF 0.07710 0.56486 0.136 0.891
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 83.178 on 59 degrees of freedom
## Residual deviance: 80.538 on 56 degrees of freedom
## AIC: 88.538
##
## Number of Fisher Scoring iterations: 4
Se deben calcular los residuos y las medidas de influencia para ver si hay observaciones que puedan estar afectando el ajuste del modelo.
residuos <- residuals(modelo, type = "deviance")
plot(residuos, main = "Residuos del Modelo", ylab = "Residuos", xlab = "Observaciones")Identificar observaciones influyentes con DFBETA
dfbeta_values <- dfbetas(modelo)
par(mfrow = c(2, 2))
plot(dfbeta_values[, 2], type = "h", main = "DFBETA para IMC", ylab = "DFBETA", xlab = "Observaciones")Si alguna observación estuviera cerca de 1 o -1, indicaría que esa observación tiene una influencia considerable en el coeficiente del IMC. En este caso, el impacto parece ser moderado, con valores que no superan 0.4.
plot(dfbeta_values[, 3], type = "h", main = "DFBETA para HF", ylab = "DFBETA", xlab = "Observaciones")No parece haber ninguna observación que tenga una influencia desproporcionada en el coeficiente de HF.Esto sugiere que las observaciones no están ejerciendo un efecto significativo en el ajuste del coeficiente de HF.
plot(dfbeta_values[, 4], type = "h", main = "DFBETA para ATF", ylab = "DFBETA", xlab = "Observaciones")De manera similar a las otras dos variables, los valores de DFBETA para ATF se encuentran dentro de un rango moderado (-0.2 a 0.2).No hay observaciones claramente influyentes, lo que sugiere que ninguna observación está afectando considerablemente el coeficiente de ATF.
Calcular el R^2 de McFadden
logLik_modelo <- logLik(modelo)
logLik_nulo <- logLik(glm(Diabetes ~ 1, data = datos_completo, family = binomial)) Modelo nulo
Fórmula para el pseudo R^2 de McFadden
r2_mcfadden <- 1 - as.numeric(logLik_modelo / logLik_nulo)
cat("El coeficiente de determinación R^2 de McFadden es:", r2_mcfadden, "\n")## El coeficiente de determinación R^2 de McFadden es: 0.03173335
En la regresión logística, los valores de R^2 de McFadden son generalmente más bajos que los valores de R^2 en regresiones lineales. Valores de 0.2 a 0.4 son considerados buenos para este tipo de modelos, mientras que valores por debajo de 0.1 suelen indicar un ajuste muy pobre. Un valor bajo de r^2 de McFadden, como el que has obtenido (0.0317), indica que el modelo tiene poca capacidad predictiva. En este caso, solo alrededor del 3.17% de la variabilidad en la probabilidad de tener diabetes está siendo explicada por las variables independientes (IMC, HF, ATF).
Predicción para un IMC de 23, HF = 1, ATF = 1
nuevo_sujeto <- data.frame(IMC = 23, HF = 1, ATF = 1)
prediccion <- predict(modelo, newdata = nuevo_sujeto, type = "response")
prediccion## 1
## 0.3991138
nuevo_sujeto_2 <- data.frame(IMC = 43, HF = 1, ATF = 1)
prediccion_2 <- predict(modelo, newdata = nuevo_sujeto_2, type = "response")
prediccion_2## 1
## 0.7599496