当前位置: 首页 > article >正文

【统计至简】【入门测试1】给定数据矩阵X,如何求其质心、中心化数据、标准化数据、格拉姆矩阵、协方差矩阵、相关系数矩阵

 给定数据矩阵X,如何求其质心、中心化数据、标准化数据、格拉姆矩阵、协方差矩阵、相关系数矩阵。
  设数据矩阵 X X X是一个 n × p n\times p n×p的矩阵,其中 n n n是样本数量, p p p是变量数量, X = ( x i j ) X = (x_{ij}) X=(xij) i = 1 , 2 , ⋯   , n i = 1,2,\cdots,n i=1,2,,n j = 1 , 2 , ⋯   , p j = 1,2,\cdots,p j=1,2,,p

1. 质心 X ˉ \bar{X} Xˉ

  质心是数据矩阵 X X X每一列的均值所构成的向量。对于第 j j j列,其均值 x ˉ j = 1 n ∑ i = 1 n x i j \bar{x}_j=\frac{1}{n}\sum_{i = 1}^{n}x_{ij} xˉj=n1i=1nxij j = 1 , 2 , ⋯   , p j = 1,2,\cdots,p j=1,2,,p。所以质心向量 X ˉ = ( x ˉ 1 , x ˉ 2 , ⋯   , x ˉ p ) \bar{X}=(\bar{x}_1,\bar{x}_2,\cdots,\bar{x}_p) Xˉ=(xˉ1,xˉ2,,xˉp)

2. 中心化数据 X c X_c Xc

  中心化是将数据矩阵X的每一个样本点减去其质心。中心化后的数据矩阵 X c X_c Xc的元素 x i j c = x i j − x ˉ j x_{ij}^c=x_{ij}-\bar{x}_j xijc=xijxˉj i = 1 , 2 , ⋯   , n i = 1,2,\cdots,n i=1,2,,n j = 1 , 2 , ⋯   , p j = 1,2,\cdots,p j=1,2,,p

3. 标准化数据 X s X_s Xs

  • 首先计算每一列的标准差 s j = 1 n − 1 ∑ i = 1 n ( x i j − x ˉ j ) 2 s_j=\sqrt{\frac{1}{n - 1}\sum_{i = 1}^{n}(x_{ij}-\bar{x}_j)^2} sj=n11i=1n(xijxˉj)2 j = 1 , 2 , ⋯   , p j = 1,2,\cdots,p j=1,2,,p
  • 标准化后的数据矩阵 X s X_s Xs的元素 x i j s = x i j − x ˉ j s j x_{ij}^s=\frac{x_{ij}-\bar{x}_j}{s_j} xijs=sjxijxˉj i = 1 , 2 , ⋯   , n i = 1,2,\cdots,n i=1,2,,n j = 1 , 2 , ⋯   , p j = 1,2,\cdots,p j=1,2,,p
    (减均值、除方差)

4.格拉姆矩阵 G G G

  格拉姆矩阵 G G G的元素 g i j = X T X g_{ij}=X^T X gij=XTX,即 g i j = ∑ k = 1 n x k i x k j g_{ij}=\sum_{k = 1}^{n}x_{ki}x_{kj} gij=k=1nxkixkj i = 1 , 2 , ⋯   , p i = 1,2,\cdots,p i=1,2,,p j = 1 , 2 , ⋯   , p j = 1,2,\cdots,p j=1,2,,p
(每一个元素,都是 X X X中两个向量的内积)

5.协方差矩阵 C C C

  • 协方差矩阵C可以通过中心化后的数据矩阵 X c X_c Xc来计算, C = 1 n − 1 X c T X c C=\frac{1}{n - 1}X_c^T X_c C=n11XcTXc
  • 其元素 c i j = 1 n − 1 ∑ k = 1 n ( x k i − x ˉ i ) ( x k j − x ˉ j ) c_{ij}=\frac{1}{n - 1}\sum_{k = 1}^{n}(x_{ki}-\bar{x}_i)(x_{kj}-\bar{x}_j) cij=n11k=1n(xkixˉi)(xkjxˉj) i = 1 , 2 , ⋯   , p i = 1,2,\cdots,p i=1,2,,p j = 1 , 2 , ⋯   , p j = 1,2,\cdots,p j=1,2,,p

6.相关系数矩阵 R R R

  • 可以由标准化后的数据矩阵 X s X_s Xs来计算相关系数矩阵R, R = 1 n − 1 X s T X s R=\frac{1}{n - 1}X_s^T X_s R=n11XsTXs

  • 也可以根据协方差矩阵C计算, r i j = c i j c i i c j j r_{ij}=\frac{c_{ij}}{\sqrt{c_{ii}c_{jj}}} rij=ciicjj cij i = 1 , 2 , ⋯   , p i = 1,2,\cdots,p i=1,2,,p j = 1 , 2 , ⋯   , p j = 1,2,\cdots,p j=1,2,,p,其中 r i j r_{ij} rij是相关系数矩阵R的元素

python实现

import numpy as np

def calculate_statistics(X):
    # 质心
    centroid=np.mean(X,axis=0)
    # 中心化数据X_c
    X_centered=X-centroid
    # 标准化数据X_s
    std_dev=np.std(X,axis=0,ddof=1)
    # 格拉姆矩阵G
    gram_matrix=np.dot(X.T,X)
    # 协方差矩阵C
    cov_matrix=np.cov(X,rowvar=False)
    # 相关系数矩阵R
    corr_matrix=np.corrcoef(X,rowvar=False)

    return centroid, X_centered, std_dev, gram_matrix, cov_matrix, corr_matrix

# Test the function
X = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
centroid, X_centered, std_dev, gram_matrix, cov_matrix, corr_matrix = calculate_statistics(X)

print("Centroid:", centroid)
print("Centered data:", X_centered)
print("Standard deviation:", std_dev)
print("Gram matrix:", gram_matrix)
print("Covariance matrix:", cov_matrix)
print("Correlation matrix:", corr_matrix)

Centroid: [4. 5. 6.]
Centered data: [[-3. -3. -3.]
 [ 0.  0.  0.]
 [ 3.  3.  3.]]
Standard deviation: [3. 3. 3.]
Gram matrix: [[ 66  78  90]
 [ 78  93 108]
 [ 90 108 126]]
Covariance matrix: [[9. 9. 9.]
 [9. 9. 9.]
 [9. 9. 9.]]
Correlation matrix: [[1. 1. 1.]
 [1. 1. 1.]
 [1. 1. 1.]]

http://www.kler.cn/a/577049.html

相关文章:

  • 在Windows系统上安装和配置Redis服务
  • [c语言日寄]结构体:内存对齐
  • 【贪心算法1】
  • OkHttp 连接池模块原理深度剖析
  • 软考高项笔记 1.1.1 信息
  • 详解常用集合和映射中的线程安全问题
  • 元组(Tuple)详解——c#
  • Android Studio 创建项目同步失败
  • Oxidized收集H3C交换机网络配置报错,not matching configured prompt (?-mix:^(<CD>)$)
  • 三、零基础学习TypeScript——JavaScript和TypeScript数据类型区别
  • [Lc6_模拟] 替换所有的问号 | 提莫攻击 | Z 字形变换 | 外观数列
  • Django在处理模型录入时间差8小时的问题
  • Python3 爬虫 爬虫中间件
  • 数据结构链式表
  • CEF在MFC上的示例工程
  • 国产编辑器EverEdit - 宏功能介绍
  • VPS加装前置代理全解析
  • Manus AI探索
  • 碰一碰发视频系统之写卡功能开发了,支持OEM
  • 《UE5_C++多人TPS完整教程》学习笔记35 ——《P36 武器类(Weapon Class)》