💡 기술 통계란? (Descriptive Statistics)
기본적으로 수치형 열에 대한 요약 통계를 보여주는 describe() 메서드를 가지고 있다.
percentiles 매개변수
- describe() 메서드는 기본적으로 데이터의 25%, 50% 75% 에 위치한 값을 보여준다.
- 원하는 위치의 값을 보고 싶을 때
percentiles 매개변수에 위치를 지정한다.
- 위치를 지정할 때는 소수점으로 지정한다. (e.g. 60% => 0.6)
ns_book7.describe(percentiles=[0.3, 0.6, 0.9])
include 매개변수
열의 데이터 타입이 수치가 아닌 다른 데이터 타입의 열의 기술 통계를 보고 싶을 때 사용
포함 시키고 싶은 열이 여러개일 경우 list 형태로 전달
반대로 제외시키고 싶은 열이 있을 때는 exclude 매개변수를 사용
ns_book7.describe(include='object')
숫자 값을 모두 더해 개수로 나눈 것.
숫자의 합을 구하기 위해서는 합 기호(시그마)를 사용해서 수식으로 표현한다.
e.g.) i=1 부터 376770까지의 합을 구하는 수식
pandas에서는 mean() 메서드를 제공한다.
50% 위치의 값이 중앙값에 해당
한다.drop_duplicates() 메서드를 사용한다.
분위수는 데이터를 순서대로 늘어 놓았을 때 이를 균등한 가격으로 나누는 기준점이다.
사분위수
는 순서대로 정렬된 데이터를 네 구간으로 나누기 때문에 사분위수는 3개가 나오고 각 25%, 50%, 75%에 해당한다.
pandas에서 분위수 값을 계산할 때는 quantile() 메서드를 사용한다.
ns_book7['대출건수'].quantile([0.25, 0.5, 0.75])
보통 비례식을 사용하여 구한다.
)평균 값을 통해서 유사한 결과를 얻을 수 있다.
분산(Variance, ): 평균으로부터 데이터가 얼마나 퍼져있는지를 나타내는 통계량. 데이터가 가운데 모여 있다면 분산이 작고, 넓게 퍼져 있다면 분산이 크다.
: 데이터
: 평균
n: 전체 샘플 개수
=
판다스에는 분산을 계산하는 var() 메서드가 있다.
💡 numeric_only 매개변수
- 데이터프레임에서 수치형 열만 연산할 필요가 있을 때 True로 지정한다.
- 만약 numeric_only 매개변수를 지정하지 않으명 모든 데이터 타입의 열에 대해 값을 계산하기 때문에 시간이 매우 오래 걸린다.
변수
혹은 두 가지 특성
값을 직교 좌표계에 점으로 나타내는 그래프.matplotlib.pyplot 모듈의 scatter() 함수
를 사용해서 산점도를 그린다.💡 변수나 특성이란?
- 데이터 분석이나 머신러닝에서 변수는 한 레코드를 구성하는 개별 측정 값을 의미하며, 특성이라고도 한다.
- 남산도서관 대출 데이터의 경우, '도서명', '저자' 와 같이 각 열이 하나의 특성이 된다.
💡 상관 관계?
- 양의 상관관계: x축이 증가함에 따라, y축이 증가하면 양의 상관관계
- 음의 상관관계: x축이 증가함에 따라, y축이 감소하면 음의 상관관계
히스토그램은 수치형 특성의 값을 일정한 구간으로 나누어 구간 안에 포함된 데이터 개수를 막대 그래프로 그린 그래프.
💡 히스토그램의 도수분포표
- 히스토그램에 나오는 구간과 도수를 표로 요약한 것을 도수분포표라고 한다.
hist() 함수
💡 정규분포와 표준정규분포
- 정규분포: 종 모양처럼 가운데가 볼록하고 평균을 중심으로 대칭인 분포
- 표준정규분포: 평균이 0이고, 표준편차가 1인 정규분포
구간 조정하기
hist() 함수에는 특별히 로그 스케일로 히스토그램을 그릴 수 있도록 log 매개변수
를 제공한다.x축의 구간을 세밀하게 나누기 위해서는 bins 매개변수의 값을 크게 설정하면 된다.
히스토그램은 하나의 특성에 대한 분포를 확인할 때 사용하면 좋다.
상자 수염 그림은 최솟값, 세 개의 사분위수, 최댓값 이렇게 다섯 개의 숫자를 사용
해 데이터를 요약하는 그래프를 그린다.
이 영역의 데이터를 이상치(Outier)라고 부른다.
=> 관측 범위에서 아주 많이 벗어난 값 혹은 데이터 상자 수염 그림은 여러 개의 특성을 시각적으로 비교하기 좋다. 특히 데이터가 어떤 방향으로 더 많이 늘어져 있는지 한 눈에 파악할 수 있다.
boxplot() 함수
상자 수염 그림 수평으로 그리기
vert 매개변수를 기본값 True에서 False로 바꾼다.
=> x-y축이 바뀐다.수염 길이 조정하기
pandas 데이터프레임에서도 여러 가지 그래프를 그릴 수 있는 메서드를 제공한다.
판다스 데이터프레임 객체의 plot 속성은 여러 가지 그래프를 그릴 수 있는 메서드를 제공한다.
산점도 그리기
# x축: 도서권수, y축: 대출건수, alpha: 투명도
ns_book7.plot.scatter('도서권수', '대출건수', alpha=0.1)
히스토그램 그리기
ns_book7['도서명'].apply(len).plot.hist(bins=100)
상자 수염 그리기
df = ns_book7[['대출건수', '도서권수']]
df.boxplot()
plt.yscale('log')
ns_book7 남산도서관 대출 데이터에서 1980년~2022년 사이에 발행된 도서를 선택하여
'발행년도'열의 히스토그램을 그려 보세요.
8가지 기술 통계량의 개념에 대해 정리하기
1. 평균: 데이터 값을 모두 더한 후 데이터 개수로 나눈 값.
2. 중앙값: 전체 데이터를 크기 순서대로 일렬로 늘어 놓았을 때 중간에 위치한 값.
3. 최솟값: 전체 데이터 중에서 가장 작은 값.
4. 최댓값: 전체 데이터 중에서 가장 큰 값.
5. 분위수: 순서대로 나열된 데이터를 일정한 간격으로 나누는 기준점.
6. 분산: 평균으로부터 데이터가 얼마나 퍼져있는지를 나타내는 통계량.
- 데이터가 가운데 모여 있으면 분산이 작고, 넓게 퍼져 있으면 분산이 크다.
7. 표준편차: 분산의 제곱근으로 분산과 마찬가지로 데이터의 분포 정도를 나타내는 통계량.
8. 최빈값: 데이터에서 가장 많이 등장하는 값.