线性最小二乘法中矩阵不确定度估计

1. 引言

在数据处理和参数估计中,线性最小二乘法是一种常用的方法。当我们使用线性最小二乘法估计参数矩阵时,了解估计结果的不确定度对于评估模型的可靠性和精度非常重要。本技术文档将详细介绍如何在 MATLAB 中计算参数矩阵的估计值及其不确定度,包括相关的理论推导和代码示例。

2. 问题描述

给定两个矩阵 A \mathbf{A} A 和 B \mathbf{B} B,它们的关系可以表示为:

B = R a A + E \mathbf{B} = \mathbf{R}_a \mathbf{A} + \mathbf{E} B=RaA+E

其中:

  • B ∈ R 3 × N \mathbf{B} \in \mathbb{R}^{3 \times N} B∈R3×N:观测矩阵。
  • A ∈ R 3 × N \mathbf{A} \in \mathbb{R}^{3 \times N} A∈R3×N:已知矩阵。
  • R a ∈ R 3 × 3 \mathbf{R}_a \in \mathbb{R}^{3 \times 3} Ra∈R3×3:待估计的参数矩阵。
  • E ∈ R 3 × N \mathbf{E} \in \mathbb{R}^{3 \times N} E∈R3×N:残差矩阵或误差项。
  • N N N:观测值的数量。

我们的目标是估计参数矩阵 R a \mathbf{R}_a Ra,并计算其不确定度。

3. 线性最小二乘估计

3.1 参数矩阵的估计

使用线性最小二乘法,参数矩阵的估计值为:

R ^ a = B A ⊤ ( A A ⊤ ) − 1 \hat{\mathbf{R}}_a = \mathbf{B} \mathbf{A}^\top (\mathbf{A} \mathbf{A}^\top)^{-1} R^a=BA⊤(AA⊤)−1

3.2 MATLAB 实现

matlab 复制代码
% 假设已知矩阵 A 和 B
% A 和 B 的维度为 3 x N

% 计算参数矩阵的估计值
Ra_hat = B * A' * inv(A * A');

4. 不确定度估计

4.1 计算残差矩阵

首先,计算残差矩阵 E \mathbf{E} E:

E = B − R ^ a A \mathbf{E} = \mathbf{B} - \hat{\mathbf{R}}_a \mathbf{A} E=B−R^aA

MATLAB 实现
matlab 复制代码
% 计算残差矩阵
E = B - Ra_hat * A;

4.2 估计残差方差

假设误差项是独立同分布的,具有相同的方差 σ 2 \sigma^2 σ2,则可以估计残差的方差:

σ ^ 2 = 1 N − p ∑ i = 1 N ∥ e i ∥ 2 \hat{\sigma}^2 = \frac{1}{N - p} \sum_{i=1}^N \|\mathbf{e}_i\|^2 σ^2=N−p1i=1∑N∥ei∥2

其中:

  • e i \mathbf{e}_i ei 是残差矩阵 E \mathbf{E} E 的第 i i i 列。
  • p p p 是估计参数的数量,对于 3 × 3 3 \times 3 3×3 的矩阵, p = 9 p = 9 p=9。
MATLAB 实现
matlab 复制代码
% 计算残差的平方和
residuals_squared = sum(E.^2, 'all');

% 计算参数数量 p 和观测数量 N
p = numel(Ra_hat);
N = size(A, 2);

% 估计残差方差
sigma2 = residuals_squared / (N - p);

4.3 计算参数矩阵的协方差矩阵

参数矩阵的协方差矩阵为:

Cov ( R ^ a ) = σ ^ 2 ( A A ⊤ ) − 1 \text{Cov}(\hat{\mathbf{R}}_a) = \hat{\sigma}^2 (\mathbf{A} \mathbf{A}^\top)^{-1} Cov(R^a)=σ^2(AA⊤)−1

MATLAB 实现
matlab 复制代码
% 计算协方差矩阵
Cov_Ra = sigma2 * inv(A * A');

4.4 提取标准不确定度(标准差)

参数矩阵中每个元素的标准不确定度为协方差矩阵对角线元素的平方根:

不确定度 = diag ( Cov ( R ^ a ) ) \text{不确定度} = \sqrt{\text{diag}(\text{Cov}(\hat{\mathbf{R}}_a))} 不确定度=diag(Cov(R^a))

MATLAB 实现
matlab 复制代码
% 提取标准不确定度
standard_uncertainty = sqrt(diag(Cov_Ra));

5. 理论解释

5.1 克罗内克积的省略

在一般情况下,当我们将矩阵参数展开为向量时,协方差矩阵的计算需要使用克罗内克积:

Cov ( vec ( R ^ a ) ) = σ ^ 2 ( A A ⊤ ) − 1 ⊗ I 3 \text{Cov}(\text{vec}(\hat{\mathbf{R}}_a)) = \hat{\sigma}^2 (\mathbf{A} \mathbf{A}^\top)^{-1} \otimes \mathbf{I}_3 Cov(vec(R^a))=σ^2(AA⊤)−1⊗I3

其中:

  • vec ( R ^ a ) \text{vec}(\hat{\mathbf{R}}_a) vec(R^a) 是将矩阵 R ^ a \hat{\mathbf{R}}_a R^a 展开为列向量。
  • ⊗ \otimes ⊗ 表示克罗内克积。
  • I 3 \mathbf{I}_3 I3 是 3 × 3 3 \times 3 3×3 的单位矩阵。

然而,在我们的计算中,由于矩阵维度匹配,且直接使用矩阵形式计算,克罗内克积的作用被隐含地包含在矩阵运算中,因此可以省略。

5.2 协方差矩阵的含义

计算得到的协方差矩阵 Cov ( R ^ a ) \text{Cov}(\hat{\mathbf{R}}_a) Cov(R^a) 包含了参数矩阵中元素的不确定度信息。对角线元素表示各参数的方差,非对角线元素表示参数之间的协方差。

6. 完整的 MATLAB 代码示例

matlab 复制代码
% 假设已知矩阵 A 和 B
% A 和 B 的维度为 3 x N

% 1. 计算参数矩阵的估计值
Ra_hat = B * A' * inv(A * A');

% 2. 计算残差矩阵
E = B - Ra_hat * A;

% 3. 计算残差的平方和
residuals_squared = sum(E.^2, 'all');

% 4. 计算参数数量 p 和观测数量 N
p = numel(Ra_hat);
N = size(A, 2);

% 5. 估计残差方差
sigma2 = residuals_squared / (N - p);

% 6. 计算协方差矩阵
Cov_Ra = sigma2 * inv(A * A');

% 7. 提取标准不确定度
standard_uncertainty = sqrt(diag(Cov_Ra));

% 8. 显示结果
disp('估计的参数矩阵 Ra_hat:');
disp(Ra_hat);

disp('参数矩阵 Ra_hat 的标准不确定度:');
disp(standard_uncertainty);

7. 示例数据与结果

7.1 示例数据

为了演示上述方法,我们使用一些示例数据。

matlab 复制代码
% 生成示例数据
N = 100; % 观测数量
A = randn(3, N); % 已知矩阵 A
true_Ra = [1.2, 0.5, -0.3; -0.4, 0.8, 0.6; 0.2, -0.7, 1.1]; % 真实的参数矩阵
noise = 0.05 * randn(3, N); % 噪声
B = true_Ra * A + noise; % 观测矩阵 B

% 使用上述步骤计算估计值和不确定度

7.2 计算结果

运行完整的 MATLAB 代码后,我们可以得到估计的参数矩阵和标准不确定度。

matlab 复制代码
% 输出示例结果(具体数值根据运行结果而定)
估计的参数矩阵 Ra_hat:
    1.1985    0.5012   -0.2987
   -0.4023    0.8021    0.5998
    0.1989   -0.7005    1.1007

参数矩阵 Ra_hat 的标准不确定度:
    0.0050
    0.0050
    0.0050

8. 结论

通过以上步骤,我们成功地使用线性最小二乘法估计了参数矩阵 R a \mathbf{R}_a Ra,并计算了其不确定度。关键步骤包括计算残差、估计残差方差、计算协方差矩阵以及提取标准不确定度。

在实际应用中,了解参数估计的不确定度对于评估模型的可靠性和进一步的数据分析具有重要意义。

9. 注意事项

  • 假设条件:以上方法假设误差项是独立同分布的,且具有相同的方差。
  • 数据质量:观测数据的质量直接影响参数估计的准确性和不确定度。
  • 矩阵求逆 :在计算 ( A A ⊤ ) − 1 (\mathbf{A} \mathbf{A}^\top)^{-1} (AA⊤)−1 时,需要确保矩阵 A A ⊤ \mathbf{A} \mathbf{A}^\top AA⊤ 是可逆的,即矩阵 A \mathbf{A} A 的行满秩。

10. 参考文献

  • Björck, Å. (1996). Numerical Methods for Least Squares Problems. SIAM.
  • Menke, W. (2012). Geophysical Data Analysis: Discrete Inverse Theory (3rd ed.). Academic Press.
  • Strang, G. (2009). Introduction to Linear Algebra (4th ed.). Wellesley-Cambridge Press.

附录:符号说明

  • A \mathbf{A} A:已知矩阵,尺寸为 3 × N 3 \times N 3×N。
  • B \mathbf{B} B:观测矩阵,尺寸为 3 × N 3 \times N 3×N。
  • R a \mathbf{R}_a Ra:待估计的参数矩阵,尺寸为 3 × 3 3 \times 3 3×3。
  • R ^ a \hat{\mathbf{R}}_a R^a:参数矩阵的估计值。
  • E \mathbf{E} E:残差矩阵, E = B − R ^ a A \mathbf{E} = \mathbf{B} - \hat{\mathbf{R}}_a \mathbf{A} E=B−R^aA。
  • σ 2 \sigma^2 σ2:残差的方差。
  • Cov ( R ^ a ) \text{Cov}(\hat{\mathbf{R}}_a) Cov(R^a):参数矩阵估计值的协方差矩阵。
  • diag ( ⋅ ) \text{diag}(\cdot) diag(⋅):矩阵的对角线元素。
相关推荐
菌菌的快乐生活7 分钟前
理解支持向量机
算法·机器学习·支持向量机
大山同学12 分钟前
第三章线性判别函数(二)
线性代数·算法·机器学习
axxy200031 分钟前
leetcode之hot100---240搜索二维矩阵II(C++)
数据结构·算法
黑客Ash42 分钟前
安全算法基础(一)
算法·安全
云云3211 小时前
搭建云手机平台的技术要求?
服务器·线性代数·安全·智能手机·矩阵
云云3211 小时前
云手机有哪些用途?云手机选择推荐
服务器·线性代数·安全·智能手机·矩阵
ThreeYear_s1 小时前
基于FPGA 的4位密码锁 矩阵键盘 数码管显示 报警仿真
fpga开发·矩阵·计算机外设
十年一梦实验室1 小时前
【C++】sophus : sim_details.hpp 实现了矩阵函数 W、其导数,以及其逆 (十七)
开发语言·c++·线性代数·矩阵
15年网络推广青哥1 小时前
国际抖音TikTok矩阵运营的关键要素有哪些?
大数据·人工智能·矩阵
AI莫大猫1 小时前
(6)YOLOv4算法基本原理以及和YOLOv3 的差异
算法·yolo