Jak obliczyć zmienną sumy dwóch współczynników w regresji liniowej [duplikat]
Zasadniczo po wykonaniu regresji na trzech zmiennych,
$$ y = a_0 + a_1 \cdot x_1 + a_2 \cdot x_2 + a_3 \cdot x_3 $$
Chcę znaleźć wariancję dla $a_1+a_2$aby uzyskać CI. Logicznie myślę, że mogę to zrobić
$$\text{Var}(a_1+a_2)=\text{Var}(a_1)+\text{Var}(a_2)+\text{Cov}(a_1,a_2)$$
i obliczyć kowariancję dwóch normalnych, ponieważ z wyników modelu poznałbym średnią i wariancję $a_1$ i $a_2$, i mają asymptotyczny rozkład normalny.
- Utknąłem na tym, jak uzyskać kowariancję dwóch normalnych RV. Jakieś wskazówki?
- Czy istnieje prosty kod do obliczenia tego w Pythonie lub R?
Odpowiedzi
możesz użyć vcov(model)
w R, aby znaleźć macierz kowariancji.
a = rnorm(100)
b = rnorm(100,1,1)
c = rnorm(100,2,2)
y = rnorm(100,3,1)
m1 = lm(y~a+b+c)
Załóżmy, że masz model liniowy $y = \beta_1 \cdot a + \beta_2 \cdot b + \beta_3 \cdot c+\epsilon$ gdzie $a, b, c$są regresorami, możesz użyć powyższego kodu, aby dopasować model. Następnie po prostu wpisz vcov(m1)
, możesz uzyskać macierz wariancji-kowariancji.
> 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
Następnie możesz użyć zwykłej formuły, aby uzyskać CI.
przy okazji: $\text{Var}[X+Y] = \text{Var}[X] + \text{Var}[Y] + 2 \cdot \text{Cov}[X,Y]$