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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

" ~8 p3 w5 R9 [. tCovariance 翻译为协方差,因此,MATLAB里面的函数cov也就是求协方差了。至于MATLAB语言里面的协方差函数cov的语法是什么样的以及怎么用的,我们稍后再说,这里首先介绍下协方差相关的基础知识点。' _( E+ c+ e$ i. q

- q/ x$ a; E- K1 s& B( |$ j3 v2 @本文内容参考自MATLAB的帮助手册,有的时候不得不说,数据手册才是最好的教材,不仅对于MATLAB,这里提供的都是原滋原味的官方内容。例如我经常去了解一些MATLAB中的相关函数,命令等,都可以通过MATLAB的数据手册;如果我想了解一些IP核以及与之相关的知识,我可以查看Xilinx的官方数据手册,内容应有尽有,相比而言,如果我去借一些书籍去查看FPGA的IP核,不仅版本陈旧,而已也有可能翻译的有问题,让人一知半解。
4 k' N5 e- h/ {" f1 p2 w6 o7 k" N! c
+ ]! R- L5 s* m: D% m: k废话就说到这里,下面正式开始介绍。
1 m$ U  f7 i7 ]! U, D+ C+ [1 p3 L: K  v+ M4 o/ w8 S
目录
! T) ?. n% t* W$ T4 c9 ~* I6 Q. U7 N2 D' D  E
基础知识4 r: r% Y, V* T% f7 t2 [$ l: k! k1 o
% n( B) H+ N9 C. m  M
协方差(Covariance):0 d  Q1 e" Y- P5 }8 z

/ ?, d+ g) v0 x! U+ K' P( u协方差矩阵( covariance matrix):* i4 e+ l, {- [" z3 {+ N

  `7 b, O) n7 g- c* F; I* E7 E矩阵的协方差:$ s5 }3 b4 l+ _

8 `7 q$ a7 M# f  Q6 j- j- ?/ o6 e+ p) q方差:(这是赠送的)
$ n/ k- D2 c9 L: F9 N* Q; Z7 |5 s& C$ c- V- j6 D
MATLAB中的 cov
* M( e% x& h4 A+ G3 _' h8 D2 G! ^' Y( M) M
语法格式:
7 T! Y7 h9 V* r) o, c  z
* w3 B* A/ b+ w; c% {# |) @* y9 iC = cov(A)
* c" i4 e( W  ~
1 y  p. S$ t* L* i- i8 V, G0 j) zC = cov(A,B)
  U6 a3 H: O- ~) Y; a7 `$ M, U9 W  O! S- G" l8 O/ I! D' R
C = cov(___,w): @; s2 N2 i% D9 ?; b1 F. G" Q

- @  o6 b. d9 m# X# l2 J7 n; DC = cov(___,nanflag)
) w" |! e1 a# a  s" a! H9 ]
' z" K+ ]5 {( j2 A6 B  v0 X# d示例8 X; A8 n8 w8 O" K, a% g
5 \* L! v. w: L- ]6 r
C = cov(A) 举例(矩阵的协方差)
3 n, k& W4 u2 k( ]2 C- q& ^
, @9 O0 l, j5 Y1 a% }cov(A,B) 举例之两个向量之间的协方差
$ Y6 x! Y0 o1 p% n0 F" L% ^& o0 s, ^
cov(A,B) 举例之两个矩阵之间的协方差4 Z) \; }2 ?0 c7 Q

0 M2 z5 m- L" X: z2 ~1 U+ A1 gSpecify Normalization Weight0 I9 ]( I' v5 ?% P; L- X  Z+ j$ D( |

- z" m  U' u" r* Y0 e' u$ ACovariance Excluding NaN
$ R3 s+ n) s5 Z. y& Z( a
+ V+ ~6 Z9 V5 y0 l" p- |  K1 W6 S0 m
- C0 B0 F3 ^* v  B6 `& D+ i8 T' N" O. L9 J) b: ?7 ~9 X
基础知识
4 h& p$ ]" g) \9 D
协方差(Covariance):
5 |; T8 j- m. i
) m) B1 S, S. |/ l
对于两个随机变量向量A和B,那二者之间的协方差定义为:. y+ t6 Z9 Q2 e1 I( S& U

: V* u- @& g- Q9 j3 `1 H# W
3 ?) A( n7 b+ T
* H' H2 G5 K  m# w$ P" X1 q5 c其中表示向量A的均值,表示向量B的均值。
7 g# Z7 l# \1 [2 l: Q" \* Y+ b9 g0 ?- S! s9 S
协方差矩阵( covariance matrix):

) Q! h6 @0 f7 {0 S4 a6 w& c% ^# S
4 Q( X; m- J/ ?: O两个随机变量的协方差矩阵是每个变量之间成对协方差计算的矩阵," x, ~" c3 z: Y  V5 v! s7 u
( O7 h6 i, m5 Z3 G8 f# ?6 q
, Z: |' `9 W" [

6 O+ p: K1 N; I矩阵的协方差:

6 F: [4 ^  `6 r5 ^9 y! x- O4 p. k! W$ f0 X
对于矩阵A,其列各自是由观察组成的随机变量,协方差矩阵是每个列组合之间的成对协方差计算。 换一种说法$ i! ~% g4 X1 `, r9 ^7 i" P3 H

* G1 k7 i4 j0 `0 d8 }
# ^& i6 U9 ]3 Z6 L
5 ]$ s5 k' v; G9 G8 p7 r+ ^3 e方差:(这是赠送的)

, S+ a% K4 G! a" p1 e+ e) t; r; M2 B3 ?% B; n  M
对于由N个标量观测组成的随机变量向量A,方差定义为
3 s1 J5 v" e$ r) F. W& C& `/ x) H3 H

2 y2 Q# O5 M- k( E: k6 o5 P/ _/ u9 E. b/ ?- w2 ]- k6 y7 W
其中u是A的均值:% ^0 d/ E- o: K: K0 h, \
, a& l& o; C7 J0 X; H. j

, q- D6 r0 G! y9 ~7 O
$ k5 k! o# ]) A一些方差定义使用归一化因子N而不是N-1,可以通过将w设置为1来指定。在任何一种情况下,假设均值具有通常的归一化因子N.4 k" [/ f& s6 N

* A7 l$ y1 l) Q, j; O2 F  H: {(注意:w是后面要说的MATLAB里面的协方差函数的一个参数而已,在具体的MATLAB函数里面可以通过设置w来指定归一化因子!)
" x; h+ c8 f- ^0 x2 Y: ^
# ^, |/ @" q! \1 t! \8 f: b- v5 S5 [% N! B. a' U, {, T+ V
MATLAB中的 cov
! k5 ~! Z  j$ o

5 `) U& E) X% b7 o" l5 t语法格式:! s# a$ x' V' M6 X$ u/ w

( K: B1 H4 j/ O+ G$ Z - d! p" R8 r4 ]1 I1 m- O! n
1 U, ?. }# M0 s- _6 @: @0 U
下面逐个讲解:" K- W; g) b9 Q, B; r3 N8 P
4 x) W! N, n2 K1 Z* w9 x
C = cov(A)

$ H0 K7 B; V5 y5 M
8 c# ?! D7 O! V; M4 bC = cov(A) returns the covariance.2 E' u' j0 S+ S6 L
# T' L! ~8 C9 ?  B( _. r4 W
C = cov(A)返回协方差。. O/ D8 k" ~, z

' j2 y2 q9 q( R5 S" V2 |4 l
  • If A is a vector of observations, C is the scalar-valued variance.
    6 [. n) J( h% O/ [% }' _
& E7 X+ p, p' {5 B( g& d! ?+ P% M8 G
  • 如果A是一个观测向量,那么C是一个标量值的方差。
    " t+ l# T0 e& y, ?0 b
3 p/ A" ]  _  C6 }* D& V
  • 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.& [4 e& x0 V2 e' o5 u# S

; z( Q8 t9 h2 w. v
  • 如果A是矩阵,其列表示随机变量,其行表示观测值,则C是协方差矩阵,沿对角线具有相应的列方差。(协方差矩阵的协方差是列的协方差值)
    $ i+ T$ E; q& j6 u6 A+ ~8 g- z

0 e& e  S# E+ H3 E! z& r
  • C is normalized by the number of observations-1. If there is only one observation, it is normalized by 1.
    ! V! I8 @" Q; h, |- W7 @# D
" n8 P/ z- t, ?2 f- T3 r
  • C由观察数-1归一化。 如果只有一个观察值,则将其标准化为1。
    7 X# O5 P5 i6 ~1 s, }7 s1 E

* J! U* n- l2 k) O
  • If A is a scalar, cov(A) returns 0. If A is an empty array, cov(A)returns NaN./ `/ h+ c: Z5 ]) H
2 p" j9 Z9 d1 Z4 `/ f. D; t
  • 如果A是标量,则cov(A)返回0.如果A是空数组,则cov(A)返回NaN。3 j; W% C" s8 I8 ~$ ?1 ~

2 f) S' U! ?- T( F% Q" |(你看看人家考虑的多周全!)! q$ y( Y4 g8 v& F% c

' j3 W  Z5 r3 Z; I$ r8 {
& w) u' {- ?5 y: S, p2 {C = cov(A,B)

  i4 `. E5 l* K' F) Z5 b" T& X7 }, e% o7 g, r  R, a! O. Z1 i/ Q
C = cov(A,B) returns the covariance between two random variables A and B.' `8 _/ G; I1 R$ p

7 d7 z) U6 F) |9 P( M4 a" E. h9 SC = cov(A,B) 返回两个随机变量A和B之间协方差。; a9 C- Q9 V; |1 q
# t- |" n8 l6 y: s; `' ^. n
  • If A and B are vectors of observations with equal length, cov(A,B) is the 2-by-2 covariance matrix.4 G$ s* C' y# |* s% w6 t  _, E
* m$ w3 I3 {" }( X; v5 N. c
  • 如果A和B是同等长度的观测向量,那么C是一个2*2的协方差矩阵。( k2 l3 Q$ a) s/ n/ }

8 f; Q% o2 X: N9 h8 U& E$ g
  • 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.
    ! }+ W# w$ y4 O# x
/ r6 V6 S; Z, X
  • 如果A和B是观察矩阵,则cov(A,B)将A和B视为向量,并且等同于cov(A(,B(:))。 A和B必须具有相同的大小。# i2 G0 w7 y, S! _' R: C7 R

0 m5 x- ]" P: k& M1 r7 N
  • 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.
    9 F! N+ ^8 A% l4 G8 C4 g& m  J2 x. V

+ B% _& Q3 L  q3 C+ F
  • 如果A和B是标量,则cov(A,B)返回2乘2的零块。 如果A和B是空数组,则cov(A,B)返回2乘2的NaN块。
    + y8 O: N" n& A6 Y8 F

" v2 Q" e& Q- \, x
" t' d# ~7 q# ~& T. {/ I5 F
4 Q+ {3 h4 s1 ?6 w5 K, _
C = cov(___,w)
1 m/ f' g/ {6 M/ Y3 c6 l. o5 n

( W5 p! j9 V/ Z& M2 G& R* X+ o' C' \C = 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./ D' \1 o: i/ u/ ?% j5 \
8 e: H& T& H* ~
C = cov(___,w)指定任何先前语法的归一化权重。 当w = 0(默认值)时,C由观测数-1归一化。 当w = 1时,它通过观察次数归一化。4 t9 f5 r+ l% R" u+ W& G: h) I5 B; N: ^
1 E+ \/ F- K9 c0 `) y- }( U# s
7 A) T9 n  R) Z) Y
C = cov(___,nanflag)

7 B& g5 e  y  B3 H4 p2 J4 }
5 r8 D, t, ?) W; b& [* yC = 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.- P3 T3 U/ j1 W0 g  b5 I# W3 ^! |

5 |$ a/ H0 a2 K# b$ `: UC = cov(___,nanflag)指定从任何先前语法的计算中省略NaN值的条件。 例如,cov(A,'omitrows')将省略具有一个或多个NaN元素的A的任何行。+ ~& a. i: `8 d) v* ]5 H

3 m% E6 h# G" v! c& m4 O
1 O/ D* E" H6 w. e& c+ L1 W4 d# E) o/ C示例

- Y$ i8 _# z9 M! G+ U/ N! r# y9 z2 I. S$ Y0 n0 F$ C
下面举例说明重要的语法格式:
+ j) r- w3 _6 [* I$ [( ?; p& ~# o" c) A' h
C = cov(A) 举例(矩阵的协方差)

, Z  L# n' C; n4 w3 e
5 x  t# Z9 ^/ y4 m' ECreate a 3-by-4 matrix and compute its covariance  y( z" k: V; Z  ], a
: d( A3 `7 U3 R! }7 F  h- X; o
  • A = [5 0 3 7; 1 -5 7 3; 4 9 8 10];
  • C = cov(A)
    / r" N8 |0 R/ Y

1 O' Y: l3 E) k" H/ |4 G  H: O4 Q& Z- L6 F+ [: m( P; m% h( G3 h

! O0 X0 r# U7 _3 }) T
# s3 M# u$ ]2 Y$ k  x
  • C = 4×4
  • $ h4 n. o% E" K, ~+ P9 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
  • 2 d% ?; A  g2 m  R. s# P( @
    " p# p( q  ~% Q/ \! g% ~  B% }- G
  
+ O* {' f! h9 F5 r$ b+ p1 T* c
3 ~0 O5 P. w) r, N0 k' o& s, e
& U$ q; N7 @, s# _! U" |
Since the number of columns of A is 4, the result is a 4-by-4 matrix.
  X* A4 X" ?4 s" Q+ E% c* O+ }" B  Q  ]" F
由于矩阵A有4列,表示有4个随机变量,那么协方差矩阵是4*4的。
1 S4 J1 f( B+ Q5 Y5 {& h- E  ^0 B0 m. Y

* o% B1 Q. c( d) b5 Pcov(A,B) 举例之两个向量之间的协方差

+ U1 G! X% P# V" b0 P6 p$ W
" E6 z/ Q2 R; A, V( X8 V& u5 {# t1. Create two vectors and compute their 2-by-2 covariance matrix.
/ T$ c  z3 U# m. ~
/ c! R5 Q, o. {! A+ C. a# j( ?, {
  • A = [3 6 4];
  • B = [7 12 -9];
  • cov(A,B)
    & V( l4 `7 |, K$ D5 P: H+ ?9 D

- U. s0 g$ C+ O+ ^  Z# o; J1 c& H* m( Z- W( k. t5 R( W& E  w& D

3 A9 n/ R; Q3 i- m. W2 F8 B! _6 |) ^' O# j' S0 }. U  q
  • ans = 2×2
  • % _( O1 t5 P7 n; K8 t
  •     2.3333    6.8333
  •     6.8333  120.3333
    9 A$ y1 Y/ e( h) x, v  k
# Z+ ?* Y- `+ R8 A
4 E" V2 \; Y3 a& p5 Z9 _

5 X5 J2 n( C% h1 {- w! o
' M; S7 t4 O) {7 U& A6 ~cov(A,B) 举例之两个矩阵之间的协方差

0 E7 q0 @0 r' n; \) J* j0 m/ o9 y9 h0 ?
2. Create two matrices of the same size and compute their 2-by-2 covariance.
5 p$ Q" f! Y3 b" i+ x. e$ _8 E
# v( O* ~2 o6 H2 a
  • A = [2 0 -9; 3 4 1];
  • B = [5 2 6; -4 4 9];
  • cov(A,B)
    0 z6 n- ]2 h) |; L: u
0 V) X( Q1 J- M! [8 `8 @3 ~
6 r/ X. f! {) i
5 {% W; }- ^) q# d( z

! {7 S! d4 C2 A
  • ans = 2×2

  • 1 P% |: D0 H4 L" q
  •    22.1667   -6.9333
  •    -6.9333   19.4667
    / a* m% }, O( f* \/ G7 ^+ e9 p

" j# b4 D6 n. G/ r& ~% h' O0 k5 O" p' r3 P' e( O
" S1 y- `. H( ?( E% j- z5 o
' L6 K) P% r( E! S; A' U
这相当于求A(:)和B(:)的协方差,如下验证下:

4 k0 e0 S- G- m3 ~" Q4 _9 R( n4 U5 q  U6 c5 H/ E) j
, K7 m" F# T. [- r. `
1 N2 X9 f( n% e5 c5 I

) N9 P4 T$ U- E3 H2 p& @) {6 A: R
: M0 F5 k% b* L8 o, i' t  h2 @ 4 L+ V' L( p( x, z; n" h
/ ^8 G6 h- h  S/ p- F2 g5 p
对比下cov(A,B)发现是一致的:
( x, d7 \8 @4 ~! l: u) g2 ^" m# E9 I; K# f$ P5 F7 Q& ?* J: K

" `$ j2 l6 A$ _6 f0 W& }9 e" u" \; K5 G% j6 _& V' a

9 Q3 z" U, l' Y3 a1 [% t- D# aSpecify Normalization Weight

  [( i/ E" `; [' ?. {4 N/ s2 N9 g
& U/ B0 u: ]0 m3 ?" w6 L创建一个矩阵并计算由行数归一化的协方差。4 ^; L4 Z, m" H0 t4 E
( U. S7 V9 j% Q2 i) R0 }/ a) |
  • A = [1 3 -7; 3 9 2; -5 4 6];
  • C = cov(A,1)
    5 }6 g5 m, S) \& _

) m3 K% Q# r# C( o1 I5 D" R' W
. x, ]% M5 \/ ?! ~5 M. ^1 f
  • C = 3×3

  • " c* s& r- o0 g1 p  U
  •    11.5556    5.1111  -10.2222
  •     5.1111    6.8889    5.2222
  •   -10.2222    5.2222   29.5556$ m* Z" |3 r, D) X6 G

3 X: S6 V+ Y+ E- S9 R1 w% u, }
6 z0 v) r- ]) `, t$ ]9 l! H, P
" ^" w% T+ O- C$ {4 _  w( k

1 G  v- Y2 |4 P% E" U; j我觉得还是有必要比较下不归一化的情况:. C! R+ d" {7 f4 G, K
$ W" V8 f* t, r
>> A = [1 3 -7; 3 9 2; -5 4 6]; ]0 k; B! |. K

% g# E* a( u& N  y! q* w7 r! AA =
( d! @+ z7 H  Q
% {) }' C! S1 D     1     3    -7
  |! t$ T9 j9 C9 o0 e" N/ y( m& Q     3     9     2( L2 M4 z! f/ l- v
    -5     4     6
; n0 b5 N1 G' C- [5 {5 ]! g* Z, Y3 s/ Z
>> C = cov(A,1)8 t5 o2 C9 l" w6 b0 x+ Y" I

6 Q- v  e* S! |3 [& K9 n9 JC =
4 h- n1 z* Y3 o+ Z$ q; o) D+ Z9 G  u9 U. T4 ~" h: @, u. A- |# k( k
   11.5556    5.1111  -10.22226 n+ w' q/ \, |  a8 S. B0 }: u5 D
    5.1111    6.8889    5.2222% w" b3 B4 M& N
  -10.2222    5.2222   29.55565 \' ?$ P+ Q6 E% x5 M) f+ S6 o- r
) `$ \  L. n) w$ y/ A( F( Y
>> C = cov(A)
/ Y5 W; F$ G  V5 ?. {- k' P: G% N6 i9 Z6 S$ h' ?  W
C =  \" E' ]2 b/ m+ Q8 \
$ q' o/ @1 r( w# w" q! s
   17.3333    7.6667  -15.33339 J4 f: @6 V$ ~* _
    7.6667   10.3333    7.8333
: C) _$ s3 E; ^! \) k  -15.3333    7.8333   44.3333
+ y1 W7 `! O6 b
% w# c4 m2 m, ?, I% A0 b0 `' S0 J9 T( G+ h$ X; Q
Covariance Excluding NaN

3 b) N  ?) q7 u7 x
2 m1 [$ i3 ?6 m$ a0 c创建矩阵并计算其协方差,排除包含NaN值的任何行。, p4 f/ X  O8 P& F/ H( J7 y

; k4 D# O2 U9 rA = [1.77 -0.005 3.98; NaN -2.95 NaN; 2.54 0.19 1.01]

5 h7 @- \, H& V4 `$ x5 Z# Z" s) s! f0 _
  • A = 3×3
  • - O% B# A: k4 l, L
  •     1.7700   -0.0050    3.9800
  •        NaN   -2.9500       NaN
  •     2.5400    0.1900    1.0100
  •   L. T; j2 }& }4 y; S% k

    ( L5 q6 c; ?9 {. B
  
. H# n; v& D( c% v# q, A" s  G, ^0 e. _* H8 Z
C = cov(A,'omitrows')

; u3 I8 x; l6 U4 ~) E. f3 G7 q, q" a$ d( S# r7 l$ u; m
  • C = 3×3
  • - z0 R6 \) S) D$ ~, Y  I% a
  •     0.2964    0.0751   -1.1435
  •     0.0751    0.0190   -0.2896
  •    -1.1435   -0.2896    4.4104

  • # Q$ e2 p1 Y1 j" V( l1 N2 ~7 R- o
    1 E  X" N- ], N) B4 @1 \1 _

7 B4 {% c$ b8 i+ \- e
* R0 f* Q* A1 K- |) Z2 i, s" i

0 t* H0 M4 t0 R3 H
) D0 G1 B: ]/ E+ m& {
( N7 u# g6 D9 P3 L" h7 ~

2 Y1 k( B1 F3 d% C" H1 H
( \, t# u( ]/ F
3 A( ]+ T+ z) l, Z2 ~3 R3 y

- o: V- O) P9 z) b& I
) \4 P$ }. H& g6 b: E; V1 g" T) V ; Z% X7 O8 k6 ]" Z
* g% p. [: V7 N3 d) r

: t4 L- }' V  P& S' ?9 U) ^
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-4 23:50 , Processed in 0.140625 second(s), 26 queries , Gzip On.

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

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

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