728x90
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from plot_util import plot_var_interact, plot_std_interact
# Jupyter Notebok 의 출력을 소수점 이하 3자리로 제한
%precision 3
%matplotlib inline
# DataFrame의 출력을 소수점 이하 3자리로 제한
pd.set_option('display.float_format','{:.3f}'.format)
# 데이터 불러오기
df = pd.read_csv('data/ch2_scores_em.csv',index_col = 'student number')
# DataFrame 작성하기
# 학번 순서대로 10명의 영어 점수를 array 데이터 구조 scores에 저장
scores = np.array(df['english'])[:10]
# DataFrame scores_df 작성
scores_df = pd.DataFrame({'score':scores},
index=pd.Index(['A','B','C','D','E','F','G','H','I','J'],
name = 'student'))
▷ 편차
- 각 데이터가 평균으로부터 떨어져 있는 정도
- 편차의 평균은 0
mean = np.mean(scores)
deviation = scores-mean
deviation
# 복사본 만들기 - 깊은 복사
# 얕은 복사: 원본 데이터가 변하면 똑같이 변함 & 깊은 복사: 복사 당시의 데이터프레임 상태만 복사
summary_df = scores_df.copy()
summary_df['deviation'] = deviation
summary_df
summary_df.mean()
▷ 분산
- 편차 제곱의 평균값
- 변량들이 퍼져있는 정도를 의미
# 여기서 deviation 은 편차를 뜻함.
np.mean(deviation ** 2)
# numpy의 var 함수 이용
np.var(scores)
scores_df.var(ddof=0)
# DataFrame 작성하기
summary_df['square of deviation']=np.square(deviation)
summary_df.mean()
plot_var_interact(scores[:4])
- 여기서 분산은 중앙 정사각형의 면적
- 중앙의 가로선& 세로선 : 4명의 평균점수
- A,B,C,D : 각각은 시험점수, 각 회색의 정사각형: 편차 제곱, 정사각형의 평균: 중앙의 정사각형
▷ 표준편차
- 분산에 제곱근을 취한 것
# 여기서 sqrt는 제곱근, ddof 는 자유도를 뜻함.
np.sqrt(np.var(scores,ddof=0))
# std는 표준편차함수
np.std(scores,ddof=0)
# 표준편차 출력하기
scores_df.std(ddof=0)
plot_std_interact(scores)
▷ 표준화
- 상대적 결과가 다르므로 통일된 지표로 변환하는 정규화
- 데이터에서 평균을 빼고 표준편차로 나눔.
- 표준화된 데이터는 표준화 변량 혹은 Z로 나타냄.
z=(scores-np.mean(scores))/np.std(scores)
# z의 평균값과 표준편차 구하기
np.round(np.mean(z),3),np.round(np.std(z,ddof=0))
▷ 편찻값
- 평균이 50, 표준편차가 10이 되도록 정규화한 값
z = 50+10*(scores-np.mean(scores))/np.std(scores)
# z의 평균값과 표준편차 구하기
np.mean(z), np.std(z)
# 점수와 편찻값의 관계 : 어떤 학생이 평균 성적을 얻었고, 어떤 학생이 우수한 성적을 얻었는지 알 수 있음.
scores_df['deviation value'] = z
scores_df
'개념정리 > Python' 카테고리의 다른 글
▷ 이산형 확률변수 - 1 · 2차원 이산형 확률변수 (0) | 2023.03.22 |
---|---|
▷ Python 추측 통계의 기본 - 표본추출방법, 확률 분포 (0) | 2023.03.20 |
▷ Python 2차원 데이터 정리 - 공분산, 상관계수, 산점도, 회귀직선, 히트맵 (0) | 2023.03.19 |
▷ Python 1차원 데이터 정리(PART 3) - 도수분포표, 히스토그램, 상자그림 (0) | 2023.03.18 |
▷ Python 1차원 데이터 정리(PART 1) - 평균값, 중간값, 최빈값 (0) | 2023.03.18 |