미국 항공운영 데이터를 시각화 해보기

changsubchang·2020년 10월 8일
1

2020 가을학기 데이터시각화 수업 과제 1.
수업 링크
노션으로 쓰다보니 컬러코딩을 많이 쓰는데 벨로그에서는 복붙하면 안된다... ㅠㅠ 감안하고 읽어주세요

1. Data Abstraction and Exploration

총 데이터의의 레코드는 1,048,575 개이며, 컬럼의 개수는 29개다.

데이터의 각 필드별 의미를 우선적으로 정확히 무엇인지를 파악해야만 한다. 몇몇 캐글 데이터셋에서는 기본적으로 이와 같은 정보를 제공하기도 하나, 본 캐글 데이터셋에서는 기본으로 제공하지 않아, 공유된 노트북 중 잘 정리한 친구의 설명을 참고하였다.

  • 각 컬럼 별 상세한 설명
    1. Year 2008
    2. Month 1-12
    3. DayofMonth 1-31
    4. DayOfWeek 1 (Monday) - 7 (Sunday)
    5. DepTime actual departure time (local, hhmm)
    6. CRSDepTime scheduled departure time (local, hhmm)
    7. ArrTime actual arrival time (local, hhmm)
    8. CRSArrTime scheduled arrival time (local, hhmm)
    9. UniqueCarrier unique carrier code
    10. FlightNum flight number
    11. TailNum plane tail number: aircraft registration, unique aircraft identifier
    12. ActualElapsedTime in minutes
    13. CRSElapsedTime in minutes
    14. AirTime in minutes
    15. ArrDelay arrival delay, in minutes: A flight is counted as "on time" if it operated less than 15 minutes later the scheduled time shown in the carriers' Computerized Reservations Systems (CRS).
    16. DepDelay departure delay, in minutes
    17. Origin origin IATA airport code
    18. Dest destination IATA airport code
    19. Distance in miles
    20. TaxiIn taxi in time, in minutes
    21. TaxiOut taxi out time in minutes
    22. Cancelled *was the flight cancelled
    23. CancellationCode reason for cancellation (A = carrier, B = weather, C = NAS, D = security)
    24. Diverted 1 = yes, 0 = no
    25. CarrierDelay in minutes: Carrier delay is within the control of the air carrier. Examples of occurrences that may determine carrier delay are: aircraft cleaning, aircraft damage, awaiting the arrival of connecting passengers or crew, baggage, bird strike, cargo loading, catering, computer, outage-carrier equipment, crew legality (pilot or attendant rest), damage by hazardous goods, engineering inspection, fueling, handling disabled passengers, late crew, lavatory servicing, maintenance, oversales, potable water servicing, removal of unruly passenger, slow boarding or seating, stowing carry-on baggage, weight and balance delays.
    26. WeatherDelay in minutes: Weather delay is caused by extreme or hazardous weather conditions that are forecasted or manifest themselves on point of departure, enroute, or on point of arrival.
    27. NASDelay in minutes: Delay that is within the control of the National Airspace System (NAS) may include: non-extreme weather conditions, airport operations, heavy traffic volume, air traffic control, etc.
    28. SecurityDelay in minutes: Security delay is caused by evacuation of a terminal or concourse, re-boarding of aircraft because of security breach, inoperative screening equipment and/or long lines in excess of 29 minutes at screening areas.
    29. LateAircraftDelay in minutes: Arrival delay at an airport due to the late arrival of the same aircraft at a previous airport. The ripple effect of an earlier delay at downstream airports is referred to as delay propagation.

각 필드에 대해서 분석하면, 노란색 으로 표기되어 있는 부분은 지연과 관련된 부분이다. 이륙지연도 문제지만, 이륙 지연은 비행중에 메꿀 수 있기 때문에 대개 비행기의 지연은 도착지연으로 계산된다. 15번 항목: ArrDelay 는 실제로 도착 지연이 발생했는지에 대한 정보를 표현하고 있다. 15번 항목의 숫자는 보다 상세하게 25 - 29번의 항목에서 표현되는데 즉, 15 = {25 + 26 + 27 + 28 + 29} 라고 볼 수 있다. 왜 지연이 발생했는지 - 기체와 항공사의 이슈인지, 날씨 때문인지, 관제의 문제인지, 보안의 문제인지, 항공편 연결에 의한 것인지에 대해 설명해주고 있는 것이다. 그리고 이는 23번 Cancellation Code와도 관련이 있어야 할 것 같은데, 주어진 데이터에서는 모든 데이터가 Null값으로 표현되어 있었다.

또 흥미롭게 볼 수 있는 부분이, 초록색으로 표기된 영역이다. 각 FlightNum 과 TailNum으로 표기되는데, FlightNum 은 항공편의 번호다. OZ123, KE101 등 도시에서 도시를 연결하는 항공편에 항공편의 번호가 붙는다. 반면, TailNum 은 비행기의 등록번호다. 위키피디아에 의하면 비행기 등록번호는 아래와 같이 설명되는데 우리가 보고 있는 데이터는 미국의 데이터셋이므로 N으로 시작됨을 확인할 수 있다. 즉, 특정 비행기가 시카고에서 LA를 갔다가, LA에서 뉴욕을 갔다가, 뉴욕에서 워싱턴을 갈 수도 있다. 이 때 비행별 FlightNum 은 상이하지만, TailNum 은 동일하다. 이를 통해서 (가설적으로) 지연의 원인을 기체에서 찾을 수 있을지, 특정 항로에서 찾을 수 있을지 검증할 수 있을 것이다.

대부분의 데이터의 필드값이 String(수업에서의 Categorical), Numbers(수업에서의 Quantitative)로 잘 정렬이 되어 있던 반면, 보라색으로 색인된 지리적인 정보를 담고 있는 공항 코드들은 단순하게 String 으로 구분되어 있었다. 이에 태블로 가이드를 참고하여 지리적인 정보로 전환하였다. (태블로는 맵뷰에서 기본적으로 공항코드를 지원한다고 한다)

이외 캐글의 데이터 익스플로러를 확인하여 각 데이터의 분포를 한번 훑어 본 결과 아래와 같은 즉각적인 Finding 을 얻을 수 있었다.

  • 단일값만 존재하는 경우
    • Year: 2008
    • Cancelled
    • CancellationCode
    • Diverted
  • 시간의 형태로 표현된 경우 (HHMM)
    • DepTime
    • CRSDepTime
    • ArrTime
    • CRSArrTime
    • 각 시간이 시간의 형태로 표현되었으나, 태블로에서 해당 3자리 혹은 4자리 숫자를 시간으로 변화하는 방법은 아쉽게도 찾지 못하였다. 이에 엑셀에서 Right 와 Left 함수를 각각 활용하여 숫자를 변화하여 새로운 컬럼을 만들어서 정보를 추가하는 방법을 택하였고 각 컬럼별 시간과 분은 아래와 같이 HH, MM 으로 추가되었다.

  • 음수의 데이터가 존재하는 경우
    • CRSElapsedTime : 컴퓨터로 판단된 수행(?) 시간
    • ArrDelay : 예상보다 빨리 도착하는 경우, 음수는 더 빨리 도착하는 것으로 판단

2. Data Visualization

A. 특정 공항이나 지역이 지연이 될 가능성이 높을까?

  • Data encoded : ArrDelay의 1) 카운트 와 2) 평균값을 지리적 코드로 변환한 (도착지 기준) 공항의 위치와 같이 도시하였다. 카운트는 크기로 도시되었고, 지연 발생시의 평균값은 색으로 도시하였다.
  • Why : 이를 통해 특정 공항이나 지역이 빈번하게 지연이 발생하는지 확인하고자 하였다. 특히, 카운트와 평균값을 동시에 도시함으로써 본 데이터셋이 갖고 있는 근본적인 한계 (전체 항공편의 숫자를 알지 못하기 때문에 전체 지연율을 확인할 수 없으므로, 지연 횟수만으로 판단시 왜곡된 정보가 전달 될 수 있음) 을 최대한 극복하고자 하였다.
  • 이를 통해 얻은 Finding은 :
    • 인구가 많이 거주하는 동부, 및 서부 지역에서 지연 횟수가 많이 발생하고, 중부에도 일부 허브 공항 : 예, 덴버 등에서도 지연횟수가 다수 발생함을 확인할 수 있다. (원의 크기) 인구수와 항공편에 비례하여 지연 횟수가 높게 나타나는 것으로 보이는데, 따라서 특정 공항이 지연율이 높다고 섣불리 판단할 수는 없다
    • 다만, 평균 지연시간 (색)을 살펴 보았을 때 동부쪽이 비교적 어둡게 나타남을 확인할 수 있다. 특히 ORD (시카고 오헤어 공항) 이 압도적으로 높게 나타났으며, ATL (아틀란타 공항), DTW (디트로이트 공항) EWR (뉴욕 뉴어크 공항) 도 어둡게 나타나, 상대적으로 인구수가 많은 대도시의 경우 높은 지연시 간을 보임을 확인할 수 있었다.
    • 이외 미국의 영외영토 - 알라스카, 하와이, 푸에르토리코 등이 유의미하게 차별적인 지연 횟수나 지연 시간을 보이지는 않았다.

B. 각 공항에서 그렇다면 지연이 발생하는 주된 원인은 무엇일까?

  • Data encoded : 도착지 기준으로, 각 지연이 발생하는 원인 NAS, 항공편 연결, 기체 문제, 기상 문제, 보안 문제 등을 모두 도시하였다. 붉은 색으로 표기된 Arr Delay의 값은 이외 5개 값의 총합이다. 따라서 붉은 색 Arr Delay를 통해 전체 공항의 발생 빈도를 확인한 뒤, 해당 지연이 발생한 원인을 뒤에 도시하였는데, Scale이 극명하게 다른 것을 확인할 수 있다. 이에 Scale 순서대로 도시하였다.

  • Why : 공항별로 왜 지연이 발생하는지, A 에 대한 In-depth Study 의 일환으로 진행하였다.

  • 이를 통해 얻은 Finding은 :

    • 시카고 공항의 경우 관제 이슈로 인한 지연이 많이 발생함을 확인할 수 있었다. 이어 지연, 기체 문제 등의 순으로 나타났다.
    • 다만, 그래프의 개형을 살펴보면, 몇몇 결측치를 제외하고 관제, 항공편 연결, 기체 문제, 기상 문제 는 전체 지연의 분포와 유사하게 도시되는 반면, 보안 이슈의 경우 다른 개형을 보임을 확인할 수 있다. 이를 통해 보안으로 인한 지연의 경우 각 지역별 TSA의 인력 수, 숙련도, 승객 중 TSA Precheck를 이용하는 상용 고객 등의 숫자 (비즈니스가 활성화 되어 있는 대도시의 경우 확률이 높으나, 오히려 중소도시는 해당 이용 승객이 적어 전체 승객이 TSA를 활용해야 할 수 있음 - 현재 보이는 데이터가 이를 대변하는 것일 수도 있다고 판단된다.) 등 여러 가설적인 생각을 기반으로 데이터를 수집하여 함께 확인 해봐도 흥미로운 결과를 얻을 수 있을 것 같다.

    C. 도착 기준 시간대별로 도착 지연에 영향이 있을까? (관제 요인 및 기상요인 동시 비교)

    • Data encoded : 도착 시간에서 HH (시) 를 추출하여 생성한 컬럼을 기준으로 각 도착 지연 횟수 및 평균 지연 시간을 도시하였다. 아울러 컬러코딩으로 각각 1) 관제 요인, 2) 기상 요인을 도시하였다.

    • Why : 도착 시간대에 따라서 지연시간이 다를지 궁금했다. 특히 비행기의 러시아워 라고 생각되는 아침이나 저녁시간대에 지연이 많을 것이라고 판단했으며, (미국 국내선이기 때문에) 만일 새벽이 지연이 발생하는 경우에는 안개에 의한 지연이 많을지 궁금하여 컬러코딩으로 기상요인을 확인해보고자 하였다.

      • 단, HH 데이터를 추출하는 과정에서 0026 등으로 표현된 값이 26으로 표현되어 분리시 Null 값으로 표현되기도 하였다. 다행히 Null 값의 레코드 수가 많지 않고, Null 의 평균값과 0 의 평균값이 대동소이 하기 때문에 Null 값을 무시하고 분석을 진행해도 무방할 것이라 판단하였다.
    • 이를 통해 얻은 Finding은 :

      • 예상 했던 것처럼 지연이 많이 발생하는 경우는 비즈니스가 마치고 이동이 몰려 있는 저녁시간대였다. 19시 - 21시 사이
      • 아울러 관제시간을 컬러코딩으로 넣어 보았더니 관제로 인한 평균 지연 시간이 지연이 몰려 있는 시간에 어둡게 나타났다. 단, 같은 그래프에 기상으로 인한 지연을 컬러 코딩으로 도시하였을 때는 옅은 색으로 표현되었는데, 이를 통해 기상으로 인한 이유 보다는 NAS (관제) 로 인한 이유가 큰 것으로 판단된다.

      • 아울러 시간별 도착 평균 지연 시간을 도시하였던, 오히려 새벽시간대에 평균지연시간이 큰 것으로 나타났다. 이를 통해, 지연이 발생하는 경우, 새벽에 지연으로 인한 타격이 가장 크게 나타남을 확인할 수 있었다.
      • 기상으로 인한 평균 지연 시간을 도시하였을 때도, 새벽 시간이 짙게 나타나 안개 등 기상요인으로 인해 새벽에 지연이 발생하고, 이로 인한 영향이 큼을 확인할 수 있었다. (특히 4시가 짙게 나타나 기상으로 인한 이슈를 더 명확하게 확인할 수 있다.)

      D. 특정 비행기에서 문제가 있을까?

      • Data encoded : Tail Number (비행기의 고유 번호) 비행기 고유 번호와 Carrier Delay의 평균값을 박스플롯으로 도시하였다. 아울러 Carrier Delay 의 카운트를 원의 크기로 도시하였다.

      • Why : 이를 통해 특정 비행기가 특별하게 1) 문제가 많이 발생하는지 - 횟수, 원의 크기로 표현 2) 발생한다면 그 영향의 크기는 어떠한지 - Y축으로 표현 등을 확인하고자 하였다.

      • 이를 통해 얻은 Finding은 :

        • 일반적인 수준보다 평균 지연 시간이 긴 비행기가 간혹 존재한다. 아래의 그래프에서는 결측치로 분류될 수 있는 (평균 15분 보다 20배 많은 300분 위치에 도시되어 있는 경우) 점이 함께 나타나 있기 때문에 상대적으로 중요하지 않게 보일 수 있지만, 일반적인 수준 대비 ~4배 이상의 평균 지연 시간을 보이는 기체, 지연 횟수가 50~ 회 이상인 경우도 존재한다
        • 다만, 평균 지연 시간의 박스가 상대적으로 작게 형성되어 있으며, 다수의 지연이 발생하는 비행기 역시 해당 구간 안에 존재함을 확인할 수 있다.
        • 이를 통해, 특정 기체에 대해 집중적으로 점검하거나, 해당 기체를 교체 우선순위로 삼으면 전체 평균 지연시간을 줄이는 데 도움이 될 것이다.

3. Misc.

  • 파일 형식이 csv 인 경우, 파일을 로드하는데 소요되는 시간이 더 적게 소요되는 것을 확인하였다. 즉, 엑셀을 통해서 데이터를 전처리 하는 경우 저장 확장자를 엑셀로 하게 되기 때문에 발생하는 문제인 것으로 생각된다. 이후 대용량의 데이터를 처리할 때 Pandas 등으로 일괄 처리하여 태블로에 로드하는 것을 고려해야 겠다.
  • 다중 데이터를 한 그래프 안에 표현할 때, 색깔과 크기를 통해서 표현하는 것이 직관적 이면서 편하게 정보를 전달 할 수 있다.
  • 모든 지역에 대한 정보를 보유하고 있는 것이 아니라면, 특정 지역에서 만의 정보를 전체 지도에 표현하는 것은 유의미한 정보를 추출하는데 어려움이 있을 수 있다.
    • 전체 인구 대비 / 면적 대비 등 인문사회적인 정보가 함께 전달되지 않는다면 정보의 편향을 야기할 수 있으므로, 이를 통한 분석이 유의미하지 않을 수 있다.
  • 전체 항공편 대비 지연 정도를 판단하지 못했다는 점에서, 보다 통합적인 분석이 되지 못했던 점이 아쉽다.
profile
데린이임니다

0개의 댓글