파이썬으로 분산과 공분산을 구하려 합니다.
분산은 $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 = [681, 685, 647, 722, 742, 671, 689, 657, 706, 722] # 10년간 유기질 비료 투입량
Output = [193, 184, 168, 245, 250, 182, 201, 178, 213, 234] # 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(1, 11):
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의 분산인데 왜 다르게 나온걸까요? ㅎㅎ
일단 회사 업무를 해야하니 나중에 다시..