Есть ли способ использовать ковариационную матрицу для нахождения коэффициентов множественной регрессии?


23

Для простой линейной регрессии коэффициент регрессии вычисляется непосредственно из дисперсионно-ковариационной матрицы , используя где - индекс зависимой переменной, а - индекс объясняющей переменной.C

Cd,eCe,e
de

Если есть только ковариационная матрица, можно ли рассчитать коэффициенты для модели с несколькими объясняющими переменными?

ETA: кажется, что для двух объясняющих переменных и аналогично для . Я не сразу вижу, как расширить это до трех или более переменных. β2

β1=Cov(y,x1)var(x2)Cov(y,x2)Cov(x1,x2)var(x1)var(x2)Cov(x1,x2)2
β2

3
Вектор коэффициентов является решением . Некоторые алгебраические манипуляции показывают, что это на самом деле то же самое, что и формула, которую вы даете в случае с 2 коэффициентами. Выложено красиво здесь: stat.purdue.edu/~jennings/stat514/stat512notes/topic3.pdf . Не уверен, поможет ли это вообще. Но я рискну предположить, что это вообще невозможно на основе этой формулы. X'Y=(Х'х)-1ββ^XY=(XX)1β
борец с тенью

1
@ Давид Вы выяснили, как расширить это на произвольное количество объясняющих переменных (за пределами 2)? Мне нужно выражение.
Джейн Уэйн

1
@JaneWayne Я не уверен, что понимаю ваш вопрос: whuber дал решение ниже в матричной форме,C1(Cov(Xi,y))
Дэвид

1
Да, я изучал это, и он прав.
Джейн Уэйн

Ответы:


36

Да, ковариационная матрица всех переменных - объяснительная и ответная - содержит информацию, необходимую для нахождения всех коэффициентов, при условии, что в модель включен член пересечения (постоянный). (Хотя ковариации не дают информации о постоянном члене, его можно найти из данных.)


Анализ

Пусть данные для пояснительных переменных быть расположены как - мерные векторы - столбцы и переменной отклика быть вектор - столбец , считается реализация случайной величины . Обычные наименьшие квадраты оценивают коэффициентов в моделих 1 , х 2 , ... , х р у Y βnx1,x2,,xpyYβ^

E(Y)=α+Xβ

получены путем сборки векторов столбцов в массив и решения системы линейных уравненийX 0 = ( 1 , 1 , , 1 ) , X 1 , , X p n × p + 1 Xp+1X0=(1,1,,1),X1,,Xpn×p+1X

XXβ^=Xy.

Это эквивалентно системе

1nXXβ^=1nXy.

Устранение Гаусса решит эту систему. Это происходит путем присоединения матрицы и -вектора в массив и сокращение строки. 1p+1×p+1p+111nXXp+1p+1×p+2A1nXyp+1×p+2A

Первым шагом будет проверка . Обнаружив, что это ненулевое значение, он начинает вычитать соответствующие кратные значения первой строки из оставшихся строк, чтобы обнулить оставшиеся записи в его первом столбце. Эти множители будут а число, вычтенное из записи будет равно . Это просто формула для ковариации и . Кроме того, число, оставленное в позиции равноA11n(XX)11=1nX0X0=1AAi+1,j+1=Xi Xj ¯ X i ¯1nX0Xi=X¯iAi+1,j+1=XiXjXiXji+1,p+21X¯iX¯jXiXji+1,p+2 Xiy1nXiyXi¯y¯, ковариация с .Xiy

Таким образом, после первого шага исключения Гаусса система сводится к решению

Cβ^=(Cov(Xi,y))

и, разумеется, поскольку все коэффициенты являются ковариациями, это решение можно найти из ковариационной матрицы всех переменных.

(Когда обратимо, решение можно записать как . Приведенные в этом вопросе формулы являются частными случаями этого, когда и Написание таких формул в явном виде будет становиться все более и более сложным по мере роста Кроме того, они уступают численным вычислениям, которые лучше всего выполнять путем решения системы уравнений, а не путем инвертирования матрицы )C - 1 ( Cov ( X i , y ) ) p = 1 p = 2 p CCC1(Cov(Xi,y))p=1p=2pC

Постоянный член будет разницей между средним значением и средними значениями, предсказанными на основе оценок, .Й βyXβ^


пример

Для иллюстрации следующий Rкод создает некоторые данные, вычисляет их ковариации и получает оценки коэффициента наименьших квадратов исключительно из этой информации. Он сравнивает их с оценками, полученными из оценки методом наименьших квадратов lm.

#
# 1. Generate some data.
#
n <- 10        # Data set size
p <- 2         # Number of regressors
set.seed(17)
z <- matrix(rnorm(n*(p+1)), nrow=n, dimnames=list(NULL, paste0("x", 1:(p+1))))
y <- z[, p+1]
x <- z[, -(p+1), drop=FALSE]; 
#
# 2. Find the OLS coefficients from the covariances only.
#
a <- cov(x)
b <- cov(x,y)
beta.hat <- solve(a, b)[, 1]  # Coefficients from the covariance matrix
#
# 2a. Find the intercept from the means and coefficients.
#
y.bar <- mean(y)
x.bar <- colMeans(x)
intercept <- y.bar - x.bar %*% beta.hat  

Выходные данные показывают соответствие между двумя методами:

(rbind(`From covariances` = c(`(Intercept)`=intercept, beta.hat),
       `From data via OLS` = coef(lm(y ~ x))))
                  (Intercept)        x1        x2
From covariances     0.946155 -0.424551 -1.006675
From data via OLS    0.946155 -0.424551 -1.006675

1
Спасибо, @whuber! Это именно то, что я искал, и мой атрофированный мозг не смог добраться до. Кроме того, мотивация для этого вопроса заключается в том, что по разным причинам у нас, по сути, нет полного , а есть данные предыдущих расчетов. Xcov(z)
David


@whuber В вашем примере вы вычислили перехват от yи xи beta.hat. yИ xявляются частью исходных данных. Можно ли получить перехват из ковариационной матрицы и одними средствами? Не могли бы вы предоставить обозначение?
Джейн Уэйн

@Jane Учитывая только средства , примените к ним : Я изменил код, чтобы отразить это. β ¯ Х β = ¯ X β .X¯β^
X¯β^=Xβ^¯.
16uber

очень полезно +1 для кода
Майкл
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.