Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 28 |
29 | 30 | 31 |
Tags
- Linux
- 통계학
- 파이썬 시각화
- 한빛미디어
- Blog
- 월간결산
- python visualization
- Google Analytics
- Ga
- 매틀랩
- 파이썬
- 시각화
- Tistory
- tensorflow
- 티스토리
- Pandas
- 독후감
- 한빛미디어서평단
- 리눅스
- 서평
- SQL
- matplotlib
- Python
- MATLAB
- 텐서플로
- 딥러닝
- Visualization
- MySQL
- 서평단
- 블로그
Archives
- Today
- Total
pbj0812의 코딩 일기
[통계학] python을 통한 왜도 / 첨도 구현 본문
0. 목표
- python으로 왜도와 첨도를 구현하고 scipy 함수와 비교
1. 사전이론
1) 왜도
- 사진링크
2) 첨도
- 사진링크
2. 사전 함수 준비
1) 평균
def mean(inp):
result = 0
len_inp = len(inp)
for i in inp:
result += i
result = result / len_inp
return result
2) 분산
def var(inp):
result = 0
len_inp = len(inp)
for i in inp:
result += (i - mean(inp)) ** 2
result = result / len_inp
return result
3) 제곱근
def sqrt(inp):
result = inp/2
for i in range(30):
result = (result + (inp / result)) / 2
return result
4) 표준편차
def std(inp):
result = sqrt(var(inp))
return result
3. 왜도
1) 함수 제작
def skewness_self(inp):
# 길이
len_inp = len(inp)
result = 0
for i in inp:
result += ((i - mean(inp)) / std(inp)) ** 3
result = result / len_inp
return result
2) 확인
- inp1 의 데이터는 왼쪽으로 치우치게, inp2의 데이터는 오른쪽으로 치우치게 생성
- 결과 : 1.0606601717798216 -0.7680464255426249
inp1 =[1, 1, 1, 1, 1, 1, 2, 3, 4, 5]
inp2 = [1, 2, 3, 4, 5, 6, 6, 6, 6, 6]
print(skewness_self(inp1))
print(skewness_self(inp2))
3) scipy 함수와 비교
- 결과 : 1.0606601717798212 -0.7680464255426249
from scipy.stats import skew
print(skew(inp1))
print(skew(inp2))
4. 첨도
1) 함수 제작
def kurtosis_self(inp):
# 길이
len_inp = len(inp)
result = 0
for i in inp:
result += ((i - mean(inp)) / std(inp)) ** 4
result = (result / len_inp) - 3
return result
2) 확인
- inp1의 데이터는 균등하게 숫자를 배분, inp2의 데이터는 중앙에 밀집하게 제작
- 결과 : -1.2242424242424241 2.351887069895109
inp1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
inp2 = [1, 2, 3, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 7, 8, 9, 10]
print(kurtosis_self(inp1))
print(kurtosis_self(inp2))
3) scipy 함수와 비교
- 결과 : -1.2242424242424244 2.351887069895106
from scipy.stats import kurtosis
print(kurtosis(inp1))
print(kurtosis(inp2))
5. 참고
'Science > 통계학' 카테고리의 다른 글
[통계학] python을 통한 자유도에 따른 카이제곱 분포 그리기 (0) | 2020.08.19 |
---|---|
[통계학] python으로 포아송 분포 함수 구현하기 (0) | 2020.08.18 |
[통계학] 동전 던지기 게임을 통한 정규분포 그래프 만들기 (0) | 2020.08.15 |
[통계학] Python으로 피어슨의 상관계수 구현하기 (0) | 2020.08.14 |
[통계학] 변동계수(CV) 구현하기 (0) | 2020.08.13 |
Comments