对于简单的线性回归,可以直接从方差-协方差矩阵, C d ,e计算回归系数。
如果只有协方差矩阵,是否可以为具有多个解释变量的模型计算系数?
ETA:对于双解释变量,看来 和类似地用于β2。我没有立即看到如何将其扩展到三个或更多变量。
对于简单的线性回归,可以直接从方差-协方差矩阵, C d ,e计算回归系数。
如果只有协方差矩阵,是否可以为具有多个解释变量的模型计算系数?
ETA:对于双解释变量,看来 和类似地用于β2。我没有立即看到如何将其扩展到三个或更多变量。
Answers:
是的,假设模型中包括截距(常数)项,则所有变量(解释性和响应性)的协方差矩阵都包含查找所有系数所需的信息。(尽管协方差不提供有关常数项的信息,但可以从数据的平均值中找到它。)
假设解释变量的数据按维列向量x 1,x 2,… ,x p排列,响应变量为列向量y,这被视为是随机变量Y的实现。普通最小二乘估计β模型系数
通过组装,获得的列向量X 0 = (1 ,1 ,... ,1 )',X 1,... ,X p为阵列 X和求解线性方程系统
相当于系统
高斯消除将解决该系统。它通过邻接矩阵1来进行和p+1维矢量1成p+1×p+2阵列甲和行减少它。
第一步将检查。发现这是非零的,它将继续从剩余的行中减去的第一行的适当倍数,以便将其第一列中的剩余条目清零。这些倍数将是1并从条目减去的数字甲我+1,Ĵ+1=X ' 我 XĴ将等于 ¯ X我 ¯ X Ĵ。这只是Xi和Xj的协方差的公式。此外,i+1,p+2位置中剩余的数字等于1,协方差X我与ÿ。
因此,在高斯消除的第一步之后,系统简化为求解
显然,由于所有系数都是协方差,因此可以从所有变量的协方差矩阵中找到解。
(当是可逆的溶液可以写成Ç - 1(冠状病毒(X 我,ÿ ))'。在这个问题给出的公式是这个特殊情况下,当p = 1和p = 2写出这些公式明确地将。随着p的增长,它变得越来越复杂。而且,它们不如数值计算,最好通过求解方程组而不是对矩阵C求逆来实现。
为了说明这一点,下面的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
cov(z)
以前的计算中得出。
y
和x
和beta.hat
。该y
和x
是原始数据的一部分。是否可以从协方差矩阵和均值中得出截距?您能提供一下符号吗?