Как вычислить переменную суммы двух коэффициентов в линейной регрессии [дубликат]

Dec 30 2020

По сути, после выполнения регрессии по трем переменным,

$$ y = a_0 + a_1 \cdot x_1 + a_2 \cdot x_2 + a_3 \cdot x_3 $$

Я хочу найти отклонение от $a_1+a_2$получить CI. По логике вещей, я думаю, что могу

$$\text{Var}(a_1+a_2)=\text{Var}(a_1)+\text{Var}(a_2)+\text{Cov}(a_1,a_2)$$

и вычислить ковариацию двух нормалей, потому что по результатам модели я бы знал среднее и дисперсию $a_1$ и $a_2$, и они асимптотически нормально распределены.

  1. Я застрял в том, как получить ковариацию двух обычных RV. Любое руководство?
  2. Есть ли простой код для вычисления этого на Python или R?

Ответы

1 Leafstar Dec 30 2020 at 10:52

вы можете использовать vcov(model)в R, чтобы найти ковариационную матрицу.

a = rnorm(100)
b = rnorm(100,1,1)
c = rnorm(100,2,2)
y = rnorm(100,3,1)
m1 = lm(y~a+b+c)

Предположим, у вас есть линейная модель $y = \beta_1 \cdot a + \beta_2 \cdot b + \beta_3 \cdot c+\epsilon$ где $a, b, c$являются регрессорами, то вы можете использовать приведенный выше код для соответствия модели. Затем просто введите vcov(m1), вы можете получить матрицу ковариации дисперсии.

> vcov(m1)
              (Intercept)             a             b             c
(Intercept)  0.0236168925  0.0008928804 -0.0072752173 -0.0048195656
a            0.0008928804  0.0089417637 -0.0007706158 -0.0005058700
b           -0.0072752173 -0.0007706158  0.0084035744  0.0002730054
c           -0.0048195656 -0.0005058700  0.0002730054  0.0022051924

Затем вы можете использовать обычную формулу для получения CI.

кстати: $\text{Var}[X+Y] = \text{Var}[X] + \text{Var}[Y] + 2 \cdot \text{Cov}[X,Y]$