找回密码
 注册
关于网站域名变更的通知
查看: 1607|回复: 1
打印 上一主题 下一主题

MATLAB —— 学习一下协方差 cov以及协方差矩阵的基础知识

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-11-12 10:38 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

& J- D, N2 q7 F# c( U# qCovariance 翻译为协方差,因此,MATLAB里面的函数cov也就是求协方差了。至于MATLAB语言里面的协方差函数cov的语法是什么样的以及怎么用的,我们稍后再说,这里首先介绍下协方差相关的基础知识点。% v& a; c# v+ M9 K4 }
1 O, l, s7 b3 m' a
本文内容参考自MATLAB的帮助手册,有的时候不得不说,数据手册才是最好的教材,不仅对于MATLAB,这里提供的都是原滋原味的官方内容。例如我经常去了解一些MATLAB中的相关函数,命令等,都可以通过MATLAB的数据手册;如果我想了解一些IP核以及与之相关的知识,我可以查看Xilinx的官方数据手册,内容应有尽有,相比而言,如果我去借一些书籍去查看FPGA的IP核,不仅版本陈旧,而已也有可能翻译的有问题,让人一知半解。
$ v/ y0 ]1 q+ _5 d* E  [! b! t  m4 ]& w+ a' C
废话就说到这里,下面正式开始介绍。1 [/ k2 Z& j8 x( y. A$ {1 I

5 O# u; f! f1 F- ]4 H9 C目录
; s7 h/ n0 r4 R- _% N( i0 Z9 P3 O/ Q  S: R/ W4 [
基础知识; t" j  ?% U/ s+ Q5 s

  e& X- [: h1 {协方差(Covariance):  x( O( W* h8 n1 f3 k

, p' R$ Y5 Q  B3 X% ?6 {协方差矩阵( covariance matrix):
, `( R( b" c- _. `9 K# |/ z
; A) @! M" l7 ^/ I矩阵的协方差:! B5 o2 x1 \) `, _, [

7 B4 D. T( ~  k" P) Z$ j3 s0 |方差:(这是赠送的), |- Q9 e' g0 C! m2 R

  f$ X. O+ R4 CMATLAB中的 cov  j" k  A! R( d6 O- X7 A
4 B, B; y: E4 O
语法格式:2 S, T! ^. S7 s+ F3 M' r( i
/ P' @, u3 S0 [% Q* U* U% D) ]
C = cov(A)2 n+ I4 y' z$ k9 k$ ^3 a3 K$ d! }

1 [0 ?: Q1 s2 k! D" w0 j0 dC = cov(A,B) % {4 M' x; u! L9 b2 f; M

9 |# w+ p& P: s! d) q- eC = cov(___,w)( S2 u8 j$ W8 P: t/ m) j) z9 a* R
: l. G3 |+ W7 a5 [
C = cov(___,nanflag): W8 r4 h2 H$ `6 \; ^( m

( T! }7 d; N  C0 C. W4 w. ~' J8 [+ D示例8 A, E- X" l- @
6 C1 q2 `% L4 D
C = cov(A) 举例(矩阵的协方差)
" ~6 L* j5 e/ r4 S+ U# [5 h
$ o/ T' B; B  A9 G( L; ucov(A,B) 举例之两个向量之间的协方差
! ^. ], R6 ?3 p5 G( n; k3 p' H
  B0 g. {3 _& @' kcov(A,B) 举例之两个矩阵之间的协方差  j* D1 O( Y( v% P

( I. \. f/ {3 K. @Specify Normalization Weight; |: y8 Q3 ?+ [5 t$ q
% u' [- G/ J8 f9 L+ C3 Z7 T# P
Covariance Excluding NaN9 T. O  W  @% F' B* a$ R( e) ]
# s4 n2 ]- C& G$ E
0 B7 K+ a5 g2 i9 r/ F% Q$ t

# b( K, B3 S; V$ f基础知识
0 a) ]  G: m8 {) `  {! M' ^
协方差(Covariance):
" r. W/ l( u* v. {/ j+ T# s+ e

0 H+ Q: a/ f4 @; b3 [4 I对于两个随机变量向量A和B,那二者之间的协方差定义为:
, r! |% R- ^2 Q; ?) c: S
' n) M# Y  b* ~8 V
0 u, E! v& G: h% P; t- m( N# d" e" k: A0 T1 m( K
其中表示向量A的均值,表示向量B的均值。
3 c! n% g" c9 _3 V& O9 W7 ?, K9 f9 p4 F* t: a
协方差矩阵( covariance matrix):
! l' O9 I( _. A

4 b2 W3 h0 ~% V( I两个随机变量的协方差矩阵是每个变量之间成对协方差计算的矩阵,7 E- p" L. w3 @8 O: ~) \

' A/ A+ D5 ~* L- \+ r4 |& Y3 K! K
; J- p9 O- j* X) A1 ?. O$ B* w3 T
$ {  A" r$ ?/ o, W1 V5 B矩阵的协方差:

% l9 j1 P, P( J- y; Y. V3 d
, L2 u+ f9 }8 T- Z& I' Q4 B9 k* _0 p对于矩阵A,其列各自是由观察组成的随机变量,协方差矩阵是每个列组合之间的成对协方差计算。 换一种说法) z$ a- ~, Q/ G% q# x

" w3 k: R" E: ^- ?- u  J9 V * t4 r# F: Z2 d1 P5 ^

8 G( Q; h/ z" j$ Y8 a4 I8 Z" U8 T: W方差:(这是赠送的)
$ W' H; S( u" b9 @# j* V

0 x5 j, P, z/ Q, t7 s8 ~对于由N个标量观测组成的随机变量向量A,方差定义为. R9 s  I/ q* O  C! i

9 t. V; k' r$ U$ K+ m; w . ^9 o$ ~+ T; Y+ K# c' `; A2 L/ M

. a0 c& f, ^6 x; Y; p; r( q) ~1 q其中u是A的均值:$ h" `1 V- d; n; B$ x7 e
  t/ T7 ]- \2 i0 Z* A+ @0 B5 I

5 o  ?) Y! {3 O
6 e' E" \4 f+ ]: {) N! \! d一些方差定义使用归一化因子N而不是N-1,可以通过将w设置为1来指定。在任何一种情况下,假设均值具有通常的归一化因子N.; t& E3 U/ Z+ P+ C: Q' H- Y# O- O
2 S1 ]+ _8 B' c/ F7 O
(注意:w是后面要说的MATLAB里面的协方差函数的一个参数而已,在具体的MATLAB函数里面可以通过设置w来指定归一化因子!)+ C. p, S5 }0 ?  r6 y

0 H* V* ^8 `3 N5 g: [+ o% w0 d* _5 [! J+ L) _% {
MATLAB中的 cov

4 q& C; j- W6 p; u4 o9 U* T9 x: b+ L6 L3 O" X
语法格式:
. C  U' N, O& E5 W7 p. e$ ]+ i5 p
: S4 Q3 l2 f2 ^) Q

& d. S& @7 b$ ]1 Q( Q% v下面逐个讲解:/ d1 `. l1 u% {/ g
+ u7 N  i7 Y& K8 [# y
C = cov(A)
1 B5 Z3 J3 e$ c9 {" ?5 Q4 A
4 \0 q) A0 {( [; g0 r
C = cov(A) returns the covariance.+ [1 z# q7 q  N/ [8 ~9 L

7 U  L* X5 g/ K! O1 X! kC = cov(A)返回协方差。6 q7 L2 T/ N3 Q1 e

- p* C0 c* M: ~* m$ p
  • If A is a vector of observations, C is the scalar-valued variance.9 P% _$ L+ z4 Z- C% ^

# h2 h2 e5 `8 L  N4 S
  • 如果A是一个观测向量,那么C是一个标量值的方差。, v' |$ h6 K! m3 ~
% G* W6 Y( o" ?
  • If A is a matrix whose columns represent random variables and whose rows represent observations, C is the covariance matrix with the corresponding column variances along the diagonal.
    / {: R, b) O+ E# h

7 j4 X- L9 Q2 ~3 F+ I! c. Y- `5 l) {
  • 如果A是矩阵,其列表示随机变量,其行表示观测值,则C是协方差矩阵,沿对角线具有相应的列方差。(协方差矩阵的协方差是列的协方差值): w/ s; `3 O& q

( z, c+ f" u0 m8 T2 ^
  • C is normalized by the number of observations-1. If there is only one observation, it is normalized by 1.
    5 K5 b. u0 u& j: X% Z) Q6 i& |+ W6 f) d2 {

- b: ?2 ^. w7 V* }# @: Z2 ~
  • C由观察数-1归一化。 如果只有一个观察值,则将其标准化为1。7 W+ e. B/ D3 O6 X* i8 H% r" [

! y% g* C' O  b1 R, a& l9 z" q6 d, m
  • If A is a scalar, cov(A) returns 0. If A is an empty array, cov(A)returns NaN.
    2 l4 L7 H* v% }" K9 m' D/ q5 x

& g: m/ q% s+ Y0 _% U, y
  • 如果A是标量,则cov(A)返回0.如果A是空数组,则cov(A)返回NaN。
    , k! @. e( U: S& A" i! D) `8 V

, F* Y9 y: p5 w% l% q(你看看人家考虑的多周全!)
7 ~) [: x) \: F* t$ w+ ?1 D1 j* X# J# O+ q* x  X* S
0 {6 h8 t/ X! B
C = cov(A,B)

. X/ m  w2 ?. k7 t, P0 ^* Q$ d% {& _3 R& b; U4 y0 a& s, _# f: r
C = cov(A,B) returns the covariance between two random variables A and B.
! z6 s8 y' J) Q5 H- }- U  z" ?4 s' {" t
C = cov(A,B) 返回两个随机变量A和B之间协方差。$ X" Y( B( V4 k7 J% [4 E- ^
" }6 S; f* y/ I( H" c, p
  • If A and B are vectors of observations with equal length, cov(A,B) is the 2-by-2 covariance matrix.
    " Q2 s$ d- m  p
5 G4 k, u( ]7 `2 ?
  • 如果A和B是同等长度的观测向量,那么C是一个2*2的协方差矩阵。
    - x! A# J+ O% D. A1 F
# j# C2 H( ~+ g3 u& W" O' h
  • If A and B are matrices of observations, cov(A,B) treats A and B as vectors and is equivalent to cov(A(,B(). A and B must have equal size.& ^/ i& Z6 d4 V' y: `6 W

) G3 Z4 P4 `" R5 Q! D8 i
  • 如果A和B是观察矩阵,则cov(A,B)将A和B视为向量,并且等同于cov(A(,B(:))。 A和B必须具有相同的大小。
    - K; n  B' ]; ~3 {2 _/ L; y& Q
% S6 O- w+ ?3 J# M# e
  • If A and B are scalars, cov(A,B) returns a 2-by-2 block of zeros. If A and B are empty arrays, cov(A,B) returns a 2-by-2 block of NaN.
    ' M" d* T* B. |  z; p4 M. e

3 R- m3 W2 K- L/ l! p/ v
  • 如果A和B是标量,则cov(A,B)返回2乘2的零块。 如果A和B是空数组,则cov(A,B)返回2乘2的NaN块。2 [6 U$ Y( z% n5 m. E
% T' @! h. H5 n$ S1 R4 ~

& d: V% T' ^; h9 E- ~
" s7 B0 s  x9 IC = cov(___,w)
$ C7 }7 A& m4 s) ^5 M+ y

2 Q. r2 ^8 J2 H, R2 v) l; N% @' BC = cov(___,w) specifies the normalization weight for any of the previous syntaxes. When w = 0 (default), C is normalized by the number of observations-1. When w = 1, it is normalized by the number of observations.
" ^1 l& I, E2 `; Z5 q4 @) n
2 B( r" R& d+ K2 hC = cov(___,w)指定任何先前语法的归一化权重。 当w = 0(默认值)时,C由观测数-1归一化。 当w = 1时,它通过观察次数归一化。
% e1 T. X( s( n( x
7 m0 {& ?! @4 M. Y! s0 d. w7 y, B6 _
C = cov(___,nanflag)
$ m! L' E$ {0 v/ w+ s3 F$ v3 P1 B/ N
8 C% N, ?5 C( k; Q; i
C = cov(___,nanflag) specifies a condition for omitting NaN values from the calculation for any of the previous syntaxes. For example, cov(A,'omitrows') will omit any rows of A with one or more NaN elements.& _+ x- a; `8 R8 U
8 b& |* W! O) h% y" v
C = cov(___,nanflag)指定从任何先前语法的计算中省略NaN值的条件。 例如,cov(A,'omitrows')将省略具有一个或多个NaN元素的A的任何行。
4 H1 c6 X: V7 O# L' p; n5 ?( l9 p  a& R* b+ @$ Z

1 i2 D& \& C8 |# N示例

& T/ ^* n" h% O9 }# y+ Y! R6 o4 @$ ]4 l& y6 `2 `: i$ W
下面举例说明重要的语法格式:
' M3 k* X  W+ Y; f. y5 i; p: @! r% Q9 k5 U) ?  I) }- }
C = cov(A) 举例(矩阵的协方差)

& ~: I- D5 D4 m% H2 T8 R2 R4 {" X
) E; ]: V0 a5 D; KCreate a 3-by-4 matrix and compute its covariance* X9 m$ E" L% u  p: j
, c, m$ h6 _! J) x
  • A = [5 0 3 7; 1 -5 7 3; 4 9 8 10];
  • C = cov(A)
    ) P; A8 x7 ^- S
7 c) v: L2 l: a0 g4 c+ I0 T
# G. O3 u5 q) B- |$ n" f5 A+ b

- a1 U5 k; f! U5 Y- E8 k6 e7 }" b+ `. X, {
  • C = 4×4

  • 3 v$ f7 \, D& A
  •     4.3333    8.8333   -3.0000    5.6667
  •     8.8333   50.3333    6.5000   24.1667
  •    -3.0000    6.5000    7.0000    1.0000
  •     5.6667   24.1667    1.0000   12.3333
  • 6 c' g% r9 I, O% k$ I& c2 d, L% Y4 j

    ( Y( ]0 T! u( \" M' B. W' w
  
9 t+ T' z0 g" w4 s8 c
, ?0 k, y6 c& o3 B2 |% A( z

' K( I2 _# p  tSince the number of columns of A is 4, the result is a 4-by-4 matrix.; C# w- B/ R/ i/ J* q- C
! @( Z! D- S5 |
由于矩阵A有4列,表示有4个随机变量,那么协方差矩阵是4*4的。0 o3 x2 g* j3 u* a# M0 o

) v6 }" H+ q" a  g4 I) u* _7 Y) q# E1 N* q+ D
cov(A,B) 举例之两个向量之间的协方差

2 y2 E. T+ G) A8 v1 t6 Z
6 q! W" j1 N0 c$ f6 o# |1. Create two vectors and compute their 2-by-2 covariance matrix.  M, Q4 T9 _7 a/ h
/ M0 p' G- O# ?" c' P- g3 K: I
  • A = [3 6 4];
  • B = [7 12 -9];
  • cov(A,B)! _# V% Y  J$ ~4 I, X

+ t8 p9 W3 W. k2 l5 A/ t% a2 C8 C( z9 r+ d  b$ d8 @$ R5 Q' D, p

- Z& c! P) @9 ]# i6 K6 g; z$ ^! |5 t; v' G' t9 V  [+ l
  • ans = 2×2
  • 1 X/ L4 z# m) v! j# F( b
  •     2.3333    6.8333
  •     6.8333  120.3333+ B: T7 q4 Z8 N  ?, d1 h
, x/ o. ]+ c/ G  Z, `( c/ p

% i; f. ~+ d) G0 _# J6 C' o& p
0 G( t! O6 ~9 O

, B/ ~0 `, x1 S; b( ncov(A,B) 举例之两个矩阵之间的协方差
/ A/ j3 k% U" W& ~
! r, w8 f5 d4 q1 }
2. Create two matrices of the same size and compute their 2-by-2 covariance.
$ p9 p3 O) d/ E* F; _
- I9 X# u9 w5 R8 p! N& b( W
  • A = [2 0 -9; 3 4 1];
  • B = [5 2 6; -4 4 9];
  • cov(A,B)
    " ]+ B3 r) g8 V# T8 y; h' D& o6 a

' `( Q5 i# f& p9 e' l2 a1 I% A/ ~+ ^( ~$ E
; S3 o! M& d, I% ^2 S& g# r

( A# Y9 A  }9 Z; u
  • ans = 2×2

  •   a$ P. i2 f; p9 y; N% b8 b* N$ a
  •    22.1667   -6.9333
  •    -6.9333   19.4667
    . E' I2 H9 j; p+ n$ R
  l7 Y; @, c: [4 f+ |
0 ?3 ~7 r0 e, T" R" q0 Y

7 m) P6 h" s( w& q4 d8 ~0 ^0 a% r
这相当于求A(:)和B(:)的协方差,如下验证下:
3 t: j+ k# e; R8 C8 C7 y

& o- _- F5 ?4 F 3 O0 k  x" G2 c. _  @! g

* [- b1 p9 s# O6 G4 ]; P' E  N
$ M4 _1 t( S( R, k! A* Q0 C4 G, W  y% n- N: x& i
7 Q  T: _7 m$ |* W1 g

3 A4 d% e6 u8 ~对比下cov(A,B)发现是一致的:
: E" @6 f8 G' F7 J% _& X5 s
8 ]0 c0 [3 H( u. U; X& Q6 q) R ( j8 t' S9 C9 k0 w% t
; [" M- f1 t/ t8 D* j1 ^2 F
2 h2 \3 n. o. R9 Y' O8 u* X# n
Specify Normalization Weight
1 s/ S9 v, S5 U- H, D

! a( Q& J9 i, T! Z3 i1 E/ ^创建一个矩阵并计算由行数归一化的协方差。
+ X. J& D6 E; ^) t' H' n5 G% I
9 E  F* F5 i3 Z1 B- b# |
  • A = [1 3 -7; 3 9 2; -5 4 6];
  • C = cov(A,1)
    8 `1 K* y; d! u6 p, T7 Q: q* W/ N

0 g) p' j/ w& _/ O1 z4 u6 _
, w, I4 K* R$ ~! @# C" P
  • C = 3×3
  • % ?* q  e+ `6 Z. E8 E; t9 U6 k7 |+ \
  •    11.5556    5.1111  -10.2222
  •     5.1111    6.8889    5.2222
  •   -10.2222    5.2222   29.55564 s9 ~5 Q8 P- {4 w
$ ]" M! b: r* m* z' ^
' S$ p' T' C; w  p9 E# K
2 K, y. m' {* `' g
) C0 K0 F; Y& z+ T
我觉得还是有必要比较下不归一化的情况:
7 T5 M$ G! W. U8 ^3 m
6 s; b& Q# ?/ o0 C>> A = [1 3 -7; 3 9 2; -5 4 6]
% m# `/ W6 u3 c0 |! l' |
4 x! [1 V) c1 oA =) x6 _/ H  Z( K: _/ f& B

2 n9 X7 w1 {9 R6 F# H# Q% S     1     3    -7
3 W0 P0 a& B  L, S0 ~     3     9     2* s( L; S, ^1 T
    -5     4     6
2 J) k# }0 Z% |5 v8 |
1 `) c; P! [/ h. ?+ j1 u>> C = cov(A,1)
; m9 M* }8 ^7 {$ q- {* ^
! z+ B8 L0 n9 Z8 IC =
$ j) Q6 h2 v" q* v* P! B
2 u) ~1 L$ E8 G: j, U   11.5556    5.1111  -10.2222, L* _6 ^4 d7 x$ V  @' Y  m
    5.1111    6.8889    5.2222
( d7 V$ o. g+ o0 z- w& f  -10.2222    5.2222   29.55564 g, X8 p) ~$ r, x

& I! ^. m; o4 T; e( X  N>> C = cov(A)
6 _% j- z0 t2 Z# ?
1 W  ?) f$ R' I" z" O& iC =" o+ ^" e+ j  X0 Q4 M; X& |3 r
5 E5 i7 c% Q9 s2 [  b+ O: @
   17.3333    7.6667  -15.3333" a, [5 I. ~( a
    7.6667   10.3333    7.8333
, G: V3 v+ ~1 F" o  -15.3333    7.8333   44.3333
- H' d0 ^; {! z# D9 e6 p
2 J. h- u. y. n$ ~; l
( v- L1 I* |" ~Covariance Excluding NaN

+ t( }; U, ^% g* Q- D* x7 J5 v* C
' L4 v9 s- |: ^( }9 P! |创建矩阵并计算其协方差,排除包含NaN值的任何行。
7 R; v! M9 [3 }' V$ r
. C$ z. C& I% ]8 {A = [1.77 -0.005 3.98; NaN -2.95 NaN; 2.54 0.19 1.01]

' K0 C0 a/ J" ~7 v. O4 D1 q5 U8 ?$ x  u0 ?
  • A = 3×3

  • ' D, I$ ^0 P* }& x4 V# o( K
  •     1.7700   -0.0050    3.9800
  •        NaN   -2.9500       NaN
  •     2.5400    0.1900    1.0100

  • ( g$ [- S4 U$ G$ N  B) }+ |7 O

    # k; O  H0 z0 D. B; f. y  G
    J; [* l! i( R, v0 p
1 }" b! _4 d  i) ?% T: R: W
C = cov(A,'omitrows')
) Y, i0 h; s" R) L

9 R1 C4 X2 m8 c* H- H6 d+ }0 Q
  • C = 3×3

  • % K+ V7 v+ X. a. T1 a+ D( ]
  •     0.2964    0.0751   -1.1435
  •     0.0751    0.0190   -0.2896
  •    -1.1435   -0.2896    4.4104

  • 4 W* V- F: ~4 x+ I
    7 o6 x+ p: X- |

" r9 O* T/ ?6 X( L+ g. f) @, J* @8 u
% s9 S9 B, Y+ u) l* v7 @

; a, T$ k/ |% v
: b" `) b' L+ J4 }9 ?' I2 N; G
$ i" t; {0 p1 C" T4 q5 V1 z

; `. {  B, x2 j* w; ~% y

6 E  x) `0 i, b, Z4 }  ]; b( U
$ z, e0 y" U( O7 e* d
, o3 n. z5 C6 K
" ~9 l3 G. q1 \6 P' m
  ?2 d: E' r( W' G

' w, R1 G- W- W* X! W# n# j/ q$ e. U& \: C
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-14 08:48 , Processed in 0.109375 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表