我正在尝试使用GLSMultipleLinearRegression(来自apache commons-math软件包)进行多元线性回归。它需要一个协方差矩阵作为输入 - 我不确定如何计算它们。我有一个因变量数组和3个自变量数组。
有什么想法如何计算协方差矩阵吗?
注意:我有每个3个自变量的200个项目。
谢谢
Bharani
我正在尝试使用GLSMultipleLinearRegression(来自apache commons-math软件包)进行多元线性回归。它需要一个协方差矩阵作为输入 - 我不确定如何计算它们。我有一个因变量数组和3个自变量数组。
有什么想法如何计算协方差矩阵吗?
注意:我有每个3个自变量的200个项目。
谢谢
Bharani
你尝试过直接从你的数据创建协方差矩阵吗?
new Covariance().computeCovarianceMatrix(data)
根据评论中的信息,我们知道有3个自变量、1个因变量和200个样本。这意味着您将拥有一个包含4列和200行的数据数组。最终结果将类似于以下内容(为了尝试解释我的意思而明确地输入所有内容):
double [] data = new double [4][];
data[0] = new double[]{y[0], x[0][0], x[1][0], x[2][0]};
data[1] = new double[]{y[1], x[0][1], x[1][1], x[2][1]};
data[2] = new double[]{y[2], x[0][2], x[1][2], x[2][2]};
// ... etc.
data[199] = new double[]{y[199], x[0][199], x[1][199], x[2][199]};
Covariance covariance = new Covariance().computeCovarianceMatrix(data);
double [][] omega = covariance.getCovarianceMatrix().getData();
然后,当你进行实际回归时, 你会有你的协方差矩阵:
MultipleLinearRegression regression = new GLSMultipleLinearRegression();
// Assumes you put your independent variables in x and dependent in y
// Also assumes that you made your covariance matrix as shown above
regression.addData(y, x, omega); // we do need covariance
OLSMultipleLinearRegression
中实现了OLS。@Mark Lavin
你首先会使用普通最小二乘法,计算误差和误差之间的协方差。
我有点困惑...因为我们只有一个响应变量,残差误差应该是一维变量。那么误差的协方差矩阵在哪里适用?