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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
- S7 r( t& }( g' S
Covariance 翻译为协方差,因此,MATLAB里面的函数cov也就是求协方差了。至于MATLAB语言里面的协方差函数cov的语法是什么样的以及怎么用的,我们稍后再说,这里首先介绍下协方差相关的基础知识点。* \: z& P9 O( _% Z( z
  l6 S* O6 f1 {. Q) m0 W- l% ^  p
本文内容参考自MATLAB的帮助手册,有的时候不得不说,数据手册才是最好的教材,不仅对于MATLAB,这里提供的都是原滋原味的官方内容。例如我经常去了解一些MATLAB中的相关函数,命令等,都可以通过MATLAB的数据手册;如果我想了解一些IP核以及与之相关的知识,我可以查看Xilinx的官方数据手册,内容应有尽有,相比而言,如果我去借一些书籍去查看FPGA的IP核,不仅版本陈旧,而已也有可能翻译的有问题,让人一知半解。- K  K1 L$ j0 f7 R0 I

  p3 G0 g5 O# Z/ u- {6 o; a" F1 D废话就说到这里,下面正式开始介绍。( f1 _: q: y: t" W% ?

" a3 I' o5 b8 T! H目录  ]+ V; Q4 S: {2 T& k7 K

7 b0 ^" w  L7 q基础知识2 z4 E7 O3 M( N. u8 m7 F

: P3 s8 F' X. M9 r) Y协方差(Covariance):" \# `# x* G" y7 {; d
8 l, `2 ?6 d# F6 y1 E/ `0 Q
协方差矩阵( covariance matrix):, y# w* E; K0 {3 y; C0 ^

* y# Z) {" |! h- @/ S# B& a5 h矩阵的协方差:
4 J; \: |) t/ v/ \
3 q& ], f# S3 ]: }9 Q方差:(这是赠送的)6 B; H! W, g2 z& q# c: ^6 Z

, V  F  Z' C! M, H2 i& UMATLAB中的 cov! p5 f6 V/ i' Z& _! h" Q) O- a
" A( j7 N) ~4 M6 w) Q
语法格式:
$ C( x3 [% F2 ^9 f
! G% i& T( J  a* w+ S( zC = cov(A)
& ^, f) ~  P8 u. o* h
8 B, Y7 J3 Q7 w# tC = cov(A,B)
3 V0 p# \2 P; Q' M) d, l% w9 [7 u$ L: R3 O
C = cov(___,w)
( g+ l0 I9 p% H% M7 d; d3 _# V; Y: U0 z) A6 L( L, S3 s7 x5 P. E
C = cov(___,nanflag)" R  J( i7 G+ p* t9 ?" T
7 F& a; S. o$ p% N1 b) S6 w+ Y/ }
示例
& N1 i' K* j( o0 i% Z" k  ?4 y
$ W2 m$ U) F( x2 h! l  V0 v" MC = cov(A) 举例(矩阵的协方差)
% f% N) b* [1 G2 A  o+ N
6 B& @' ~5 B6 d5 B9 [/ Dcov(A,B) 举例之两个向量之间的协方差3 l% Z5 }) p9 ^8 _6 D$ [2 |) z
) H. r" r8 H* i0 `/ I# o/ p
cov(A,B) 举例之两个矩阵之间的协方差
, j' N3 j# U5 k
5 }3 l2 b6 ]9 m0 x! e* j3 }. ?Specify Normalization Weight# E$ K: H' D" [; g) C" K; o

" n9 a" W2 k" R! T, `% F+ S) m2 n$ BCovariance Excluding NaN+ g, l* b9 o& c. `* a  V

) o* Q% L2 N8 _4 ?% K; h& n& w* P7 k0 t, K/ u4 q8 R7 f

1 O. [6 m; C$ U" |基础知识
( A4 b' Y1 W9 c( z% n% j  e' C/ I0 v
协方差(Covariance):
  p  U; A& i' m9 x+ h( f+ m
" Q' L! |& J5 `$ d5 ~
对于两个随机变量向量A和B,那二者之间的协方差定义为:
2 X( E9 A7 H0 a$ ~" P! Q2 U
" H( N$ ^# \/ J) T5 {; r
* ]  B' f) S" w2 Y; T2 c2 N  g, T  P, L
其中表示向量A的均值,表示向量B的均值。3 [0 ]7 d6 c/ J0 [$ I+ D
  z1 E! G# ]8 K1 Z+ Z
协方差矩阵( covariance matrix):
& E, e& k4 S& t5 f4 n+ O

3 S: _0 c, e. \( K' K: @两个随机变量的协方差矩阵是每个变量之间成对协方差计算的矩阵,
6 b2 p3 d9 ~! r0 A2 ^; |7 X! F8 ?6 V# E" {4 R# \" _0 ]
; a" O8 b2 f% y6 G  e

0 q& H  w5 a% Q( w" R: [2 _矩阵的协方差:

" |7 J# s/ c, s# V0 d1 k5 U) K4 g! i  W4 ]8 C/ \: D
对于矩阵A,其列各自是由观察组成的随机变量,协方差矩阵是每个列组合之间的成对协方差计算。 换一种说法: a0 }% e: G) H* U( `- o) ^

0 Q" O0 M# i9 Z) P  O+ Z& Q+ L* C
' G4 K5 ?0 B4 ?
, H) S( j, Y4 I2 t* @+ P2 s方差:(这是赠送的)
  ?5 u9 Y5 _7 v4 K

, O( J& ]$ G$ c对于由N个标量观测组成的随机变量向量A,方差定义为
4 [& ~  @% T7 x& c9 ^4 |: V& w) T, T3 y% p7 F
- t* D, }  B+ M. j6 w  O9 L
. i0 `% R# u4 L3 {5 B
其中u是A的均值:7 |/ c, @7 l& y0 O, p
9 n$ L1 q0 m# K
; b( q9 V7 x2 T% s

8 R5 i2 r5 v) w2 r* ^# \一些方差定义使用归一化因子N而不是N-1,可以通过将w设置为1来指定。在任何一种情况下,假设均值具有通常的归一化因子N.% T' R! ^3 ~5 T5 b- T  `0 ^8 _
6 N% H. h( `3 H, ?
(注意:w是后面要说的MATLAB里面的协方差函数的一个参数而已,在具体的MATLAB函数里面可以通过设置w来指定归一化因子!)
+ R" U$ ]# ]+ C  i1 b- K8 D0 U$ f9 t: s. O! C% v4 G+ {: V

1 I; |' T$ W& _6 Z0 s( kMATLAB中的 cov

+ d1 p. z4 I7 S1 x! w: S$ `$ ]  h4 W: V- {# i
语法格式:
  {# x& |1 X3 x# _
) N+ U1 A; ~/ W! a7 Y' {# g
2 B2 o! ~7 |& d9 v! {9 o2 `" N
% [2 V& }4 P- e" g. N! ^8 B+ s# s  ]下面逐个讲解:9 w8 r7 X4 M, ^
/ m" C# c) e8 ]
C = cov(A)
1 t; ~0 r+ N% |% X! S8 Y/ G
& U% T1 a0 x/ x
C = cov(A) returns the covariance.9 @' v0 Y5 k7 ^1 h4 F* u, b
' c9 }( }4 ~2 n& a8 I& X
C = cov(A)返回协方差。
; a6 |* O3 P/ w3 p- s& {- x  ]! p& \" F$ p- @8 I' e. J# ]. ~
  • If A is a vector of observations, C is the scalar-valued variance.% j2 P8 k2 n. E/ ?  p
  o6 |- V) P" l. ~: p' A/ d7 ^: g( |
  • 如果A是一个观测向量,那么C是一个标量值的方差。9 M- v9 K4 j( w4 F

3 s! T  _/ x. ~. H
  • 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.# p3 s4 J% Q0 u" a3 c$ H/ f

( C4 `8 z: A0 p' y1 H5 l1 u5 p0 y
  • 如果A是矩阵,其列表示随机变量,其行表示观测值,则C是协方差矩阵,沿对角线具有相应的列方差。(协方差矩阵的协方差是列的协方差值)
    0 K. s0 v% K: J/ [

; A" r4 z8 [% m4 c
  • C is normalized by the number of observations-1. If there is only one observation, it is normalized by 1.
    : J' E, p$ v2 f4 Z3 D$ X( t4 W
& y. Z& e" c$ K8 M7 ^% N3 _6 A& i
  • C由观察数-1归一化。 如果只有一个观察值,则将其标准化为1。+ ~$ {4 M4 a3 X1 R4 ?

5 I) V' }( B$ W5 K( ?. c% p
  • If A is a scalar, cov(A) returns 0. If A is an empty array, cov(A)returns NaN.0 F6 ~- _* v: C" m4 p

  I( s  W2 g6 y! N
  • 如果A是标量,则cov(A)返回0.如果A是空数组,则cov(A)返回NaN。
    5 C: u" C5 ~: L; U. K
% M& f; g. ^- ~- M( Z5 K7 ^/ }5 A
(你看看人家考虑的多周全!); Z: }5 n9 H/ ?# n0 d4 T
8 e0 C6 g3 |1 O" [
6 l# U: c1 U' ?: [. I. i
C = cov(A,B)
- y5 `+ c/ @6 b. C# d" N+ S
7 Q  e# l: }8 f! }8 J, }
C = cov(A,B) returns the covariance between two random variables A and B.
. ^: _3 ]$ N' o; l& e/ T- |; r
3 V9 j; i' B. V% i: E8 f$ JC = cov(A,B) 返回两个随机变量A和B之间协方差。* n1 @2 Z6 I4 e2 N' N
0 x' d' ^; c: D( R- ]2 h$ Z* X
  • If A and B are vectors of observations with equal length, cov(A,B) is the 2-by-2 covariance matrix.; V+ @; p3 x7 e% i5 B8 p( R1 E5 f
+ U; T1 n( I: {3 u/ s' r
  • 如果A和B是同等长度的观测向量,那么C是一个2*2的协方差矩阵。
    ' G1 x8 ]$ Z0 D

0 X6 L; Z4 S5 \% `3 b
  • 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.6 a' l2 w/ b7 K
0 R0 p$ |3 B  H1 a
  • 如果A和B是观察矩阵,则cov(A,B)将A和B视为向量,并且等同于cov(A(,B(:))。 A和B必须具有相同的大小。
    1 Y" @6 q7 D- z) ?

$ T- ?- ~, q4 N6 X5 s5 i! u% l
  • 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.# j7 u- i, m2 c+ I* l

; E! _" F7 w, l. R; _5 }6 z% A
  • 如果A和B是标量,则cov(A,B)返回2乘2的零块。 如果A和B是空数组,则cov(A,B)返回2乘2的NaN块。7 v& g5 K0 W6 Q3 h( h% P. a$ X

( \/ l2 r! }1 R& N4 Z$ N3 S

) l8 x, i+ D2 b) }
5 W2 g/ o! B* ?0 kC = cov(___,w)
8 W* f+ \! Y% J) U; h/ D

/ R% T( L/ ?- f" M2 v* f: CC = 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." G( C8 @7 K  O2 B

- s% [4 ^$ g. A2 D: x7 K6 IC = cov(___,w)指定任何先前语法的归一化权重。 当w = 0(默认值)时,C由观测数-1归一化。 当w = 1时,它通过观察次数归一化。9 h+ v+ F9 U9 e  L9 V* D+ r1 v
+ m4 z# v2 ]+ c, Y

& P- ~/ {' w: q, u- c+ UC = cov(___,nanflag)

7 `7 O/ ]  D* X
3 {6 A3 y+ @! {9 JC = 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.7 S% v8 e& h# `' Z0 O3 v

; P" G$ t7 M/ FC = cov(___,nanflag)指定从任何先前语法的计算中省略NaN值的条件。 例如,cov(A,'omitrows')将省略具有一个或多个NaN元素的A的任何行。4 c" `1 _( x2 L6 l. G) @

7 @" ?9 H# I  z7 O  [- l% `8 y2 N# J, I( T8 i: w
示例

# v# N2 U$ s0 y$ s' B* O, x6 i% }4 q0 k1 u9 E. @! y; ]
下面举例说明重要的语法格式:
" V2 V: j* C5 M0 q% r3 @  K
' w$ t7 \0 g3 R$ I$ ^9 ^2 d$ {; uC = cov(A) 举例(矩阵的协方差)

4 s2 O1 w5 B" ^2 m7 f; T
6 E+ R. x$ e: h9 \' a1 n# L$ n2 x" YCreate a 3-by-4 matrix and compute its covariance, d8 o+ l* r% _0 P! b  }! s

/ R+ _% p3 D; c+ Q) v; E
  • A = [5 0 3 7; 1 -5 7 3; 4 9 8 10];
  • C = cov(A)
    % \) l1 U1 S. F7 g3 Y% k

, W* @  p; m5 q" n2 z8 k& |7 H" H* O
" y4 e/ Y$ M: R
* c# q0 \5 u4 C" m
  • C = 4×4
  • * \3 w' `- a" i
  •     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
  • $ P' O  _1 i. I% ?, j' n8 z

    ( z' _. J* J! X
  " I# b  z/ A: ]$ }2 ?- c
0 q# _0 F7 F! V) |/ T
1 j. [8 t- m0 a% k5 {" ~9 a5 G
Since the number of columns of A is 4, the result is a 4-by-4 matrix.9 c' V6 K, ~" L( P* R" f. f

' ^- f/ a; ^0 P3 L/ V- N$ _由于矩阵A有4列,表示有4个随机变量,那么协方差矩阵是4*4的。- ^6 F' b7 j, m$ c& p$ m% c6 Z6 t
& F. s) f7 H# q' G+ G" `6 \

# y3 o$ h$ `, bcov(A,B) 举例之两个向量之间的协方差
$ s$ s5 s- t8 R8 z
. R6 u: u! R6 V: ~$ y
1. Create two vectors and compute their 2-by-2 covariance matrix.
: I; c3 Y; J5 J. j/ [: x6 U( M
+ V8 y& s) D4 U/ }; p
  • A = [3 6 4];
  • B = [7 12 -9];
  • cov(A,B)
    / w' X9 J4 a. `. u. z/ F/ o

0 V! H! U" F' G$ y( m1 |  `+ X% m
" U  a5 T6 ?! v/ T2 l
+ H& }7 U) K; z$ t9 Q4 l& X

  O* a2 r6 f5 v8 [
  • ans = 2×2

  • - s7 }/ _2 K! D! ]
  •     2.3333    6.8333
  •     6.8333  120.3333. Y1 S1 p7 b% o! T* v; `
9 _7 ]7 K; t6 l- n

' b( v! C/ C# g2 s4 r* D# k
6 {$ f: g7 K) n5 ~4 l0 V1 g
) T1 X) E" U0 Q. a: D2 j
cov(A,B) 举例之两个矩阵之间的协方差
. A" U, S- `  |0 `
; k1 `& P7 T! F- x+ |+ ^+ K# u
2. Create two matrices of the same size and compute their 2-by-2 covariance.; H+ b$ e0 v. f( j4 o0 Z% [% H

$ F% f2 _9 \( X3 T
  • A = [2 0 -9; 3 4 1];
  • B = [5 2 6; -4 4 9];
  • cov(A,B)9 v; O; n& c' t, \' f
, K( z/ I, C9 i, K* T% Y7 i
" k8 r6 S' c& S
, E8 y1 F3 Z2 t$ k! J

' y) [/ V6 v7 s9 B# n1 a1 c/ _# |
  • ans = 2×2

  • $ V8 @$ {$ c7 y" m! @7 H8 ^" F9 B# n' f
  •    22.1667   -6.9333
  •    -6.9333   19.4667
    0 O/ F0 S; h1 K3 S

" U0 _) \( c! Q2 E- m7 v
# u, P. v4 }' u  m9 I
' ^; j, `4 R) {9 `
' E1 z, ?' S: T% g9 b
这相当于求A(:)和B(:)的协方差,如下验证下:

4 m8 g) G& i! n1 e2 \& Y/ Z  h+ g- |: a6 J+ k

  k: B9 B0 i9 c7 e: K8 Z4 F5 Q' k- o2 {  L* O6 x. A" G
+ z/ ?- q; p% L
/ p3 H7 P# q# s8 ~6 S: ]

7 `% R; [' }6 z. l3 k, h* H3 K, y( ]* H! o: d# d) t/ S
对比下cov(A,B)发现是一致的:
' E9 l1 p) o! d; e+ Q& x: `
6 Z3 y/ M0 ~. h  h- J- l 8 q" f+ R  d/ c8 `

& C9 @2 R  ~0 p4 g+ y5 g9 t
$ u% I% n3 R$ h0 b$ g) TSpecify Normalization Weight

3 y! E" A7 c/ X7 e+ k* b: t1 w$ Z0 ]' m( }) c
创建一个矩阵并计算由行数归一化的协方差。' D; l+ a- d& ^: E6 Z8 m9 i

/ g  G; k. Y. `' a
  • A = [1 3 -7; 3 9 2; -5 4 6];
  • C = cov(A,1)
    8 H+ y" N5 ^/ P+ N* b8 m9 z
+ d( i0 P: r7 O) }# n& G1 D

" v9 c9 p" T& n
  • C = 3×3

  • 5 V5 ]4 j, q% D) z- q1 E: s
  •    11.5556    5.1111  -10.2222
  •     5.1111    6.8889    5.2222
  •   -10.2222    5.2222   29.55565 S- I% o/ f) X4 E6 m$ C) `

) d1 R9 e7 Q! \& c- J9 L  X
, Y1 S! b' L, b

9 E: l9 T, J  o# X- \7 P* E! o2 b3 B( E+ N) h/ |0 }6 h
我觉得还是有必要比较下不归一化的情况:+ R) N* d4 j- m9 B! f4 N/ c: k

) a& O9 g" R2 F  t, K* h" C' z>> A = [1 3 -7; 3 9 2; -5 4 6]* ~5 s  M+ E! Y2 [+ {1 A
8 ]& D+ @+ D1 R: {
A =) k7 D; N/ R7 e  r' L! k( u0 Y

  F/ U3 M! H$ i$ D     1     3    -7
# u' A! S8 v+ J* z1 a. X     3     9     22 j: y5 F: ?" T! M
    -5     4     6' K" p- f" M$ L9 n9 \: z( G- j
1 U% `- E2 y& r9 n
>> C = cov(A,1)
+ j9 l) F5 u& H7 O' b6 h3 ?: G: f/ G0 T$ K! e' {
C =
, O! n& I3 }6 C- Q6 s, s$ I( l; f2 ?2 z1 o  n0 Z: [5 Z
   11.5556    5.1111  -10.2222
& W$ h: Q6 q( V/ ~    5.1111    6.8889    5.2222
6 p& F6 U- S1 [9 }  -10.2222    5.2222   29.55560 `& @' Q; w  l$ G; N; U

, r2 |: _& r  U. b8 f>> C = cov(A)5 q2 z% j7 I0 J6 L- a! z) J

4 ?1 j. D2 Z) E3 M! r2 yC =
0 a  ]% h# Q/ F( i
  O3 W: m+ v8 @' x# D7 M2 o4 Z7 }$ T- f   17.3333    7.6667  -15.33332 J  d% r4 }8 {* b
    7.6667   10.3333    7.8333
9 ]* ]: R6 r4 g- O9 l9 j0 B* z  -15.3333    7.8333   44.3333
/ e+ T* k7 K, K! Z0 y3 B! n; t7 r7 p( ~$ b4 C/ F9 l7 ], D; |4 ~

, j, K4 w+ V8 h8 yCovariance Excluding NaN

5 Y1 C  V1 Z! C7 d
1 Z- n4 j. c5 r! ^创建矩阵并计算其协方差,排除包含NaN值的任何行。
4 V% B6 \" f' G( P! c' ~: r9 }7 d9 d# R" c
A = [1.77 -0.005 3.98; NaN -2.95 NaN; 2.54 0.19 1.01]

- X/ w$ q- A* o. a9 p
& ^: e7 [9 @# f; G
  • A = 3×3
  •   j" X" H/ A- g
  •     1.7700   -0.0050    3.9800
  •        NaN   -2.9500       NaN
  •     2.5400    0.1900    1.0100
  • - l( U0 b: a6 k3 {
    . M! \2 l2 |4 ~1 q  r2 Q, l6 \; m
  
' f  |3 E- X+ w! Q* M5 @/ O0 r1 X0 j% ~* i, M1 B. W, q1 h. N
C = cov(A,'omitrows')

9 K- w! Z4 H# f# U% p, P
) y' t; C% l8 ~' h1 V$ @
  • C = 3×3

  • 8 {5 S9 U+ A; C% h
  •     0.2964    0.0751   -1.1435
  •     0.0751    0.0190   -0.2896
  •    -1.1435   -0.2896    4.4104
  • ; K( t) Q$ z  m7 l4 p$ Q  t

    % W: a' P7 {  [) g* t, ], S% w) n

9 t/ q( {! ?0 s6 {  H2 u0 G
4 D  C$ F4 r- I) {( u8 x2 |1 f' _

" U- t2 u; ~3 z1 o& n# {3 y
' a2 M: w! n7 V
/ M3 }) |$ R  S0 k& l) X8 m. K' C

+ g. N; k; [4 E! d; M

" `3 [$ }1 ]' W+ f
3 g) [# C3 g2 `, M& b% f+ v8 T1 l

! @) ?9 K9 V; |6 \9 H8 M  {
: p: n/ }( [7 I8 V4 }; g1 g) \0 `
2 b6 O+ {  m" B$ d" u

$ |% Z) j2 z! ]( C' c$ n2 R. M6 o7 P8 B, v7 A6 U5 S/ o* g/ b. M
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 00:05 , Processed in 0.171875 second(s), 27 queries , Gzip On.

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

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

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