아재도 하는 데이터분석

[데이터분석] 한우 사육현황 데이터 시각화 feat by ggplot2 & Excel

열심남 2020. 5. 16. 13:21
반응형

들어가며

 

간만에 돌아왔습니다. 

오늘은 한우 사육량 데이터를 가지고 데이터 시각화를 통해서(쉬운 말로 그림과 도표를 잘 그려서)  인사이트(Insight)를 도출해보도록 하겠습니다. (데이터에서 어떤 의미를 알아내어 보자)

 

R에서는 기본적인 plot 외에도 ggplot2라는 막강한 패키지가 데이터 시각화를 주도하고 있습니다.

ggplot의 gg의 의미가 grammar of Graphics라는 의미로 그래픽을 문법(텍스트 명령어)으로 나타낸다는 의미입니다.

그래서 각종 명령어와 함수를 익혀놓으면 강력한 시각화가 가능합니다만, 역시 익숙해지기 전까지는 어려운 영역이기도 합니다.  제가 전에 포스팅했던 대부분의 데이터 분석 포스팅에도 미약하지만 ggplot을 대부분 사용했었습니다. 그만큼 필수적이기도 합니다.

한우 마당 이미지

데이터셋 소개

 

오늘 데이터는 한우 사육현황 데이터입니다. 제 막내 처제가 최근에 귀농과 더불어 한우 사육을 하게 되어서 급 관심을 가지고 데이터를 찾아보았습니다. (그래서 이 포스팅은  저희 막내 처제에게 바칩니다. ㅋㅋㅋ)

 

공공데이터 포털에 '한우' 관련  키워드 검색을 해보았습니다. 4개의 오픈 API와 30개의 파일 데이터가  나왔습니다. 제가 알고 싶은 건 전국적으로 한우 사육량이 얼마나 되는지, 이왕이면 시도별로 사육량 규모를 알고 싶었는데 그런 데이터가 보이지 않았습니다. 그래서 다음으로 통계청 국가통계포털(KOSIS)로 갑니다.

'한우'로 검색하니 226개의 통계표가 보입니다.  이중에 가축동향조사 : 한우 시도/사육규모별 농장수 및 마리수 란 데이터와 가축동향조사 : 한우 시도/연령별/성별/마리수 란 데이터가 눈에 들어옵니다. 심지어 2020년 데이터까지 들어있고 통계청 자체 자료인듯하니 공신력도 있어 보입니다.( 지자체나 기관 제공 데이터들이 있는데 간혹 데이터가 ... 할많하않..)

해당 데이터셋을 직접 확인해봅니다.

시도별로 구분이 되어 있고, 분기별 기준으로 2014년 1분기부터 2020년 1분기 데이터까지 제공되고 있습니다.

해당 데이터를 엑셀로 다운로드하여서 적절히 가공을 하면 될 것 같아 보입니다.

 

해당 데이터를 가지고 제가 궁금했던 질문들은 아래와 같습니다.

1. 어떤 지역이 한우 사육을 가장 많이 할까? 강원도일까? 시도별 비중은 어떻게 될까?

2. 전국적으로는 한우가 얼마나 많을까? 2014년부터 지금 현재까지 한우 사육량은 어떤 변화가 있을까?

3. 막내 처제가 있는 전남 지역의 한우 사육량은 전국에서 어느 정도의 비중이며, 사육량은 어떻게 바뀌고 있을까?

4. 전국적으로 앞으로 사육량은 어떻게 될까? 전남의 사육량은 어떻게 될까? (예측) 

 

이미 만들어진 잘 정제된 통계청의 통계표는 데이터 처리를 많이 하지 않아도 엑셀에서도 쉽게 변경해서 그래프를 그리기도 좋습니다. 하지만 데이터 분석을 공부하는  사람으로서 R의 ggplot2를 이용해 보기로 합니다.

 

해당 질문에 답이 될만한 그래프를 그려보았습니다.

 

1. 어떤 지역이 한우 사육을 가장 많이 할까?

한우 사육량을 막대그래프로 2020년 1분기 기준으로 보면 경북, 전남, 전북, 충남, 경남, 경기, 강원, 충북 순이었습니다.

강원도가 제가 생각하기에 '횡성한우' 이런 이미지로 각인되어 있었는데 실제는 경북이 65만 마리로 가장 많습니다.

제가 관심 갖는 전남은 무려 2위입니다. 

한우 사육량이 시도별 순위(2020년 1분기)

이번에 비율을 살펴보겠습니다. 왠지 그래픽 퀄리티가 높죠? 엑셀에서 했습니다. ㅠㅠ

(슬프게도 제 실력이 아직 낮아서 엑셀이 이쁘게 잘 그려줘요.)

비율과 사육 수량을 보여준 차트인데 경북이 22%, 전남이 17% 전북 13% 로 3개 도의 합계가 50%가 넘습니다.

강원도의 비중이 7%밖에 안 되는 건 의외입니다.

시도별 한우 사육 수량 및 비율

통계청 데이터셋 중에 농장수에 대한 정보도 있어서 한번 같이 도표로 보겠습니다.

이번에 ggplot으로 이중축으로 왼쪽은 막대그래프로 사육량을 오른쪽은 라인 그래프로 농장수를 표시했습니다.

순서는 역시 사육량 순서대로입니다. 경남과 울산이 농장수가 사육량보다는 약간 많아 보이는 걸 보면 규모가 작은 농장이 상대적으로 있나 봅니다. 광역시중에 울산이 3만 4천 마리로 청정지역이라는 제주보다 한우가 사육량이 많네요.

아마도 소불고기로 유명한 언양이 있는 울주군 지역에 대부분 농장이 있지 않을까 생각해봅니다.

시도별 한우 사육수 및 농장수

실제 1개 농장별 사육 수량을 한번 간단히 체크해보았습니다.

전체 사육량을 농장 수로 나눈 평균 데이터입니다. 순서는 사육량 순위이고요. 

서울이 92로 압도적으로 높게 나왔지만 농장수 자체가 1개라 아웃라이어(이상치)로 봐도 될 것 같습니다.

전국 평균이 33.6마리인데 40마리 이상인 전북, 경기, 제주의 경우는 아무래도 규모(사육 수량이 많은)가 있는 농장이 조금 더 있는 것으로 보입니다. 

농장 1개당 한우 사육수량

산점도 x축은 농장수 y축은 사육수로 해서 한번 표현해보겠습니다. 파란색 선을 기준으로 위쪽에 있는 곳들이 규모가 평균을 넘는 곳으로 보면 되는데 역시 전북, 경기가 여기서는 눈에 띕니다. 제주는 사육규모가 3만 마리 정도밖에 안돼서 산점도상에서는 눈에 띄지는 않네요. 

산점도 농장수 vs 사육수

 

2. 전국적으로는 한우가 얼마나 많을까?  2014년부터 지금 현재까지 한우 사육량은 어떤 변화가 있을까?

통계청 제공 자료가 2014년부터 분기별 자료이니 지금부터는 시계열 데이터로 한번 살펴보겠습니다.

 

아래 그래프는 시도별 분기별 사육 수량을 전체 막대그래프로 표현해본 겁니다. 

뭔가 화려해 보이지만 이렇게 봐서는 어떤 변화가 있었는지 시도별 비율 변화가 있는 건지도 파악하기는 조금 어렵네요

대충 느낌상으로는 시도별 변화 비율이 크게 보이지는 않고 전체 사육규모가 300만 마리 언저리로 유지되고 있고 2019년 이후 기준으로 보면 약간 전체 사육량이 증가하고 있다는 느낌적인 느낌??

한우 분기별 시도별 사육량 추이 막대그래프

이걸 다른 버전으로 그려보겠습니다. 시계열 그래프를 ggplot으로 구현한 상태인데

상위권인 경북, 전남, 전북, 충남을 제외하면 역시 시도별 한꺼번에 확인을 해보면 파악하기는 어렵네요.

다만 여기서 보면 느낌적인 느낌으로 분기별로 사육량이 감소하다가 증가하다가 하는 패턴이 약간 보입니다.

뭐 이런 걸 계절성 요인(Seasonal factor)란 용어를 쓰기도 합니다. 시계열 데이터에서 나타나는 패턴이지요.

 

시계열 시도별 사육량 추이(ggolot2 line chart)

상위 7개 지역의 사육 수량을 상자 그림으로 한번 보겠습니다. 2014년부터 2020년까지의 데이터를 지역별로 상자 그림으로 그려본 내용입니다. 사육량의 분포를 간단히 살펴볼 수 있겠습니다.

3. 전남 지역의 한우 사육량은 전국에서 어느 정도의 비중이며, 사육량은 어떻게 바뀌고 있을까?

이제 관심지역인 전남지역을 사육규모별로 한번 시계열로 표현해보겠습니다.

전체 합계(sum)를 같이 표현한 건데 2016년에 약간 하락했다가 2019년 이후 전체 사육 수량은 증가하는 것으로 보입니다. 

규모별로 봐도 100마리 이상(g100) 키우는 농가의 사육 수량이 좀 더 증가하는 걸 보면 추세상으로는 농장의 사육규모가 조금씩 커지고 있는 것으로 보입니다. 반대로 20마리 이하(u20) 사육농가는 꾸준히 하락하고 있는 것으로 보입니다.

전남 분기별 농장사육규모별 사육수량 추이

 

엑셀에서는 어떻게 시계열 데이터를 그래프로 이쁘게 해 줄까요?

역시 색상은 깔끔하네요. 그래프를 100% 기준으로 시도별로 상위인 곳을 아래에 포진시켜서 확실히 시도별 비율 변화는 어느 정도 잘 보입니다. 대부분 여기서도 대동소이한 변화를 보이는 것 같습니다.

 

한우 사육량의 변화를 시점 기준으로 정확히 보려면 이때는 실제 데이터를 단순하게 비교하는 게 가장 좋습니다.

2014년 1분기와 2020년 1분기 데이터만을 가지고 비교를 해보면 아래와 같습니다.

2014 vs 2020  한우 사육 증감 수량 및 증감 비율 

전국적으로 5만 마리가 증가했고 약 1% 증가를 했습니다. 시도별로 증가 수량과 비율을 살펴보면 전북이 3만 마리 8% 정도가 증가했고, 경남의 경우는 반대로 2.5만 마리가 감소했습니다. 약 8% 감소를 했네요. 수량으로는 강원도가 2만여 마리로 2위 증가이지만 비율상으로 보면 10% 넘게 증가를 한셈이네요. 강원도가 전체 비율은 7% 수준인데 꾸준히 사육수를 늘리고 있는 것으로 보이고 전북 역시 사육 수량이 늘고 있습니다. 반대로 광역시 단위의 비율은 세종을 제외하면 모두 감소 추세입니다.

 

관심지역인 전남의 경우도 2014년에 비해 약 5%, 2만 5천 마리가 증가했네요.

 

성별/연령별 통계를 활용해서 좀 더 살펴보겠습니다.

한우의 경우 암컷과 수소의 비율을 보면 압도적으로 암컷이 많네요. 65%의 비중입니다.

전남 쪽만 보면 상대적으로  71% 암소의 비중이 전국 평균보다는 살짝 높습니다.

근데 왜 수컷의 비중이 이렇게 낮은 걸까요?

암수 성별 연령별 현황 2020년 1분기 현재

연령별로 살펴보면 2살까지는 암수의 비율이 동일하다가 2세 이상을 보면 압도적으로 수컷의 비율이 줍니다.

그렇네요. 암소는 송아지를 계속 낳을 수 있으니 유지가 되고, 수컷들은 2세 이후에 아마 출가(?)하는 거 같습니다.

전국의 식탁과 식당에 ㅠㅠ(삼가 고 한우에 명복을 빕니다.)

부가적으로 관심지역인 전남의 성별 추이를 한번 보겠습니다. 비중상으로 69~70%가 암소, 29~31% 정도가 수소를 유지하고 있습니다. 

전남 분기별 성별 마리수 추이

 

4. 전국적으로 앞으로 사육량은 어떻게 될까? 전남의 사육량은 어떻게 될까? 

이제 시계열 데이터를 보는 이유 이후 흐름이 어떻게 될지 한번 예측(forecast)을 해보겠습니다.

시간의 흐름으로 만들어진 데이터들은 여러 가지 특성을 가지고 있고, 그런 부분들을 제거(?) 함으로써 예측이 가능합니다. 다른 많은 요인이 있겠지만 단순하게 데이터의 흐름으로 예측할 때 시계열 분석만 한 게 없는 것 같습니다.

 

R에서 forecast나 TTR 등의 패키지를 이용하면 ts란 타임 시리즈(시계열) 객체로 분석이 가능합니다.

이론적인 부분은 본 포스팅에서 제외하고 전국과 관심지역인 전남을 기준으로 간단히 내용만 보겠습니다.

왼쪽은 전국 오른쪽은 전남지역에 대한 그래프입니다.

첫 번째는 현재 데이터만으로 단순하게 그린 시계열 그래프입니다.

두 번째는 분해(decompositon)를 통해 나타낸 추세(trend), 계절성(seasonal), 랜덤워크(random)를 보여주는 그래프입니다. 시계열의 모형에 따라서 비정상 시계열을 정상 시계열로 바꾸어주는 작업을 해야 정확한 예측이 가능합니다.

자세한 이론적인 부분은 함께 보면 좋을 글 링크를 참조하시면 됩니다.

위 그래프는 전국과 전남이 거의 비슷한 패턴입니다. 전남이 결국 전국 데이터에 포함되는 영역이라 그렇겠지요?

두 번째의 분해도를 잠깐 보면 계절성(seasonal) 요인에 뚜렷하게 증감이 있어 보입니다. 이건 분기별로 사육 수량이 증감이 확실이 있다는 것으로 해석하면 되겠습니다. 추세(trend)에 보면 그래프가 2016년에 저점 그 이후 상승하는 것으로 보입니다. 2014, 2015, 2016년까지 한우 사육량이 감소 추세였다가 그 이후 다시 증가 추세로 바뀌는 것으로 보입니다. 

 

그리고 마지막 그래프는 그런 정상 시계열 데이터로 된 상태에서 2020년 2분기 이후 데이터를 예측해본 겁니다.

예측 데이터는 파란색 실선이고요. 그 주변 색은 신뢰구간에 따른 예측 영역입니다.

역시 R의 기본적인 분석에서의 시각화는 조금 눈에 띄게 확인은 어려워 보입니다.

 

여기서 예측으로 나온 데이터를 엑셀에서 한번 다시 그려보았습니다.(엑셀에서 예측한 게 아닙니다.)

 

시계열 전국 사육량 예측(Excel)

전국기준은 분기별 요인(계절성)에 따라 확실히 1분기, 3분기에 감소하고 2분기에 대폭 증가 3분기에 소폭 증가하는 추세인데요. 올해 2분기 기준으로  320만 마리까지 증가할 거로 예상됩니다. 2021년 3분기에는 330만 마리로 예측됩니다.

 

관심지역인 전남의 예측 데이터를 살펴보겠습니다. 전국과 비슷한 패턴이고요. 2020년 6월 말에는 54만 마리가 조금 넘게 예측이 되고 2021년 9월에는 약 56만 마리까지 증가하는 걸로 예상이 됩니다.

전국과 전남을 같이 한번 보겠습니다. 꽤 비슷한 추세인데 라인 기준으로 보면 전국 기준량보다 낮은 위치에 있다가 2019년 이후에는 근접하거나 넘거나 하는 식으로 나타납니다. 사육량의 비중이 증가하고 있음을 역시 확인해볼 수 있겠지요?

 

마무리

통계청의 제공하는 시계열 통계표를 가지고 이렇게 시각화를 통해서 데이터를 살펴보았습니다.

어떤 생각이 드시나요? 저 같은 경우는 데이터를 이렇게 보고 나니 아래와 같이 정리가 되었습니다.

 

1. 한우 사육량은 일정 수준에서 유지가 잘 되고 있다.(전국 평균 300만 마리)

2. 계절적 추세로 설과 추석 시즌에 도축이 많이 되어 사육량은 일시적으로 감소한다(1분기와 3분기 감소)

3. 암소의 비중이 압도적으로 많다. 

4. 경북에 이어 전남이 한우 사육량 2위이며 사육량이 증가 추세에 있다.

5. 100마리 이상 사육 농가는 규모 기준에서 상위 7%에 속한다.(이 부분은 시각화 데이터에 좀 빠져 있긴 합니다.)

6. Excel로 그래프가 이쁘게 나온다 ggplot2는 공부를 좀 더 해야 이쁘게 나올 수 있다.

 

향후 추가로 분석하고 싶은 내용

1. 지역별 상세 데이터(시군구 단위)로 확인해보고 한우 사육 농가의 위치를 시각화해보고 싶다. 

2. 도축량 혹은 전체 소 소비량 대비 한우의 차지 비율(아무래도 한우는 비싸서 수입육으로 훨씬 많이 소모가 되겠지요?)

3. 한우 등급 관련 데이터와 실제 경매 및 소비자가 추이

아빠가 들려주는 ggplot2+α 데이터 시각화 시작하기, 북앤에듀

 


함께 보면 좋을 글 

한우마당

 

한우마당

이 땅위의 자존심 한우

www.ihanwoo.kr

전국한우협회(통계관측정보)

 

전국한우협회(통계·관측정보)

안전한 먹거리, 품격있는 한/우/산/업 8만 한우농가가 함께 만들어가겠습니다.지속가능한 한우산업, 국민 모두의 안전한 먹거리 한우

www.ihanwoo.org

한우자조금관리위원회 통계자료실

 

한우자조금관리위원회

한우자조금관리위원회는 한우의 안전성을 제고하고 소비를 촉진하는 등 한우산업의 발전을 도모하기 위해 한우농가가 납부한 금액을 주요 재원으로 하여 조성·운용되는 관리위원회입니다.

www.hanwooboard.or.kr

 

탐색적 시계열 분석

 

Software Carpentry: 데이터 과학 – 기초 통계

정상성을 갖는 시계열 데이터는 랜덤한 움직임을 갖지만 시점마다 유사하게 동작하는 특징이 있어 시간에 따라 안정된 분포를 갖는다. 약정상성은 시간에 따라 일정한 평균, 분산, 공분산을 갖�

statkclee.github.io

데이터 사이언티스트 : 백색 잡음과 랜덤워크

 

Data Science School

Data Science School is an open space!

datascienceschool.net

 

반응형