데이터프레임에 포함된 수치형 데이터간의 상관관계는 corr 메소드로 간단하게 살펴볼 수 있습니다. 수치형만 적용 가능하므로 numeric_only = True 파라미터를 넣어줘야 합니다.
# 변수들간 상관계수 살펴보기
df.corr(numeric_only=True)
이 데이터셋에 포함된 수치형 칼럼 3개 서로간의 상관계수들이 도출되었네요.
duration(비행시간) - price(비행편 가격) 간 상관계수는 약 0.2로 약한 약의 상관관계를 보여주고 있습니다. 나머지 상관계수들은 0에 가까워서 거의 상관관계가 없다고 봐도 무방할 정도입니다.
2️⃣ 데이터 그룹별로 상관계수 살펴보기
예시 데이터셋을 살펴보면, 범주형 데이터 칼럼이 대부분입니다. airline(비행사), source_city(출발도시), departure_time(출발시간), ..., class(좌석클래스) 까지 다양해요.
범주형데이터의 고유값마다 그룹으로 묶어서 상관계수를 다시 뽑아보면 다르게 나올겁니다.
예를 들어서 class(좌석클래스) 마다 뽑아보면 어떨까요? 아래처럼, 비즈니스석과 이코노미석을 groupby()으로 나눠서 상관계수를 다시 보았습니다. 이코노미석의 경우, days_left(남은일수) - price(가격) 간 상관계수가 약 -0.56로 음의 상관관계가 꽤나 있습니다. 비행까지 남은 일수가 적을수록 즉, 출발일자가 가까울수록 티켓가격은 비싸지는 거네요. 비즈니스석은 그렇지도 않지만요.
# 좌석클래스 그룹별로 상관계수 확인
df.groupby('class').corr(numeric_only=True)
하나 더 테스트 해보겠습니다. 출발시간별로도 가격과의 상관관계가 달라질지 궁금하네요.
groupby() 를 'departure_time' 칼럼을 기준으로 해서 뽑아보니 아래처럼 나옵니다. 전체적으로 비행시간과 티켓가격이 양의 상관관계, 나머지는 약한 음의 상관관계를 보여주는데요, 출발시간이 심야(Late_Night)인 경우, 특히 비행시간과 티켓가격 간 corr=0.50으로 양의 상관관계가 비교적 강합니다.