카테고리 없음

파이썬으로 분산 공분산 구하기

문베디드 2020. 12. 8. 10:01

파이썬으로 분산과 공분산을 구하려 합니다.

 

분산은 $Var(X) = E[(X-\mu)^2]$

공분산은 $Cov(X,Y) = E((X -\mu)(Y-\nu)$

 

제가 짠 파이썬 코드와 파이썬 모듈인 numpy 제공함수 cov를 사용하여

모듈의 분산, 공분산 값을 비교합니다.

 

일단 분산을 구하는걸 짜고 실행해봤는데 결과가 일치하지 않네요 ㅠㅠ

나중에 다시 시도해봐야겠습니다.

 

 

###코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import numpy as np
 
Input = [681685647722742671689657706722# 10년간 유기질 비료 투입량
Output = [193184168245250182201178213234# 10년간 벼 생산
 
def mean(l):
    return sum(l) / len(l)
def var(l):
    m = mean(l)
    s = 0
    for x in l:
        s = s + (x - m) ** 2
    result = s / len(l)
    return result
 
print(var(Input))
 
def cov(l1, l2):
    result = 0    
    m1 = mean(l1)
    m2 = mean(l2)
    
    for i in range(111):
        result = sum(l1[i])
np.cov(Input, Output)
 
 
cs

###결과

#자체 수식 결과

836.5600000000001 

 

#cov 함수 결과

array([[929.51111111, 868.48888889],

        [868.48888889, 861.95555556]])

 

cov함수의 설명대로라면 929.51111111가 Input의 분산인데 왜 다르게 나온걸까요? ㅎㅎ

일단 회사 업무를 해야하니 나중에 다시..