파이썬

작업13: Python으로 부산 평균 최고기온 분석하기 4

이석사 중 2022. 12. 4. 21:38
728x90

저번 포스팅에 이어서 히스토그램과 박스플롯을 그려보겠습니다


기간
1973년 ~ 2021년
지점
ASOS 부산 관측 지점
자료
월 별 평균 최고기온

박스플롯)

히스토그램은 제 포스팅 중에 설명해 놓은게 있습니다

그렇기 때문에 박스플롯에 대해서 알아보겠습니다

먼저 박스플롯은 통계치들을 한 눈에 보여주는 그림입니다

이 그림 입니다

가운데 박스가 있고 위아래로 수염이 튀어나와있는 모양이라 수염 그림이라고도 합니다

요소들을 하나씩 알아보겠습니다

먼저 박스 부분입니다

박스의 가장 윗 부분은 Q3, 즉 상위 하위 75%값을 의미합니다 3사분위수라고도 합니다

박스 중간에 있는 실선은 Q2, 즉 중앙값이자 하위 50%값을 의미합니다

그럼 당연하게도 박스 가장 아래 부분은 Q1 하위 25% 값을 의미합니다

수염의 끝 부분은 최대값과 최소값입니다

추가로 수염 밖으로 나가있는 작은 동그라미들은 이상치를 의마합니다

사분위 범위인 IQR을 통해 구합니다

IQR은 q3 - q1인 3사분위수 - 1사분위수로 구할 수 있습니다

최소값보다 작은 이상치는 q1 - IQR x 1.5, 최대값보다 큰 이상치는 q3 + IQR x 1.5로 구할 수 있습니다

이정도면 박스플롯에 구성을 다 알아봤고 직접 제 자료를 가지고 그림을 그려보겠습니다


코드)

tol = [jan8, feb8, mar8, apr8, may8, jun8, jul8, agu8, sep8, oct8, nov8, dec8] fig, ax2 = plt.subplots(figsize = (15, 9)) ax2.boxplot(tol) ax2.set_xlabel('Month(January ~ December)', fontsize = 20) ax2.set_ylabel('Mean Max Temperature($^\circ$C)', fontsize = 20) ax2.set_title('1973 ~ 2021 Busan Mean Max Temperature Boxplot', fontsize = 20) #plt.savefig("/content/drive/MyDrive/기상통계학/Boxplot.png", dpi = 300)

코드 자체는 정말 간단합니다

박스플랏은 x, y 값 2개가 필요한 것이 아닌 자료 x만 넣어주면 그림이 그려집니다

그림이 그려지면 x축에는 각 항목의 이름이 들어가고

y축에는 자료의 실제 값들이 들어가기 때문입니다

자료의 분포를 보여주는 그림이기 때문에 Y 값은 따로 입력해줄 필요가 없습니다

저 코드로 그려진 그림입니다

1월과 6월, 7월, 8월, 11월, 12월 이렇게 6달에서 이상치가 나타났습니다

계절적으로 봤을 때 여름과 겨울이라고 생각할 수 있고

여름은 우리나라의 여름철 많은 강수량 때문에 이상치가 많이 나타날 수 있다고 생각했습니다

겨울철은 최대값보다 높은 쪽으로는 이상치가 없기 때문에 이상 저온 현상만 나타났습니다

또 볼 수 있는 특징은 이상치가 나타나는 여름과 겨울에는 수염이 다른 월 보다 길게 나타나는 걸 볼 수 있습니다

하위 25%와 하위 75% 값들이 최소, 최대값과 멀다는 건 편차가 크다고 생각할 수도 있습니다

이렇게 부산 평균 최고기온 분석을 마치게 됐습니다

다음 포스팅부터는 라이브러리 만들기를 도전해보려고 합니다

이번에 기상통계학이라는 과목에서 회귀 분석 과제가 나오면서

회귀 모델 적합성 검정 부분을 라이브러리처럼 만들어서 값이 출력되도록 만들었습니다

제가 만든 라이브러리로 통계량을 구해보면서 얼마나 유의하고 적합한지 판단해보겠습니다

감사합니다!

728x90