반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 유학생
- 윈도우함수
- 다항회귀
- sql연습문제
- 코딩공부
- SQL
- 코드잇TIL
- 데이터분석
- 머신러닝
- 코딩
- 행렬
- for반복문
- numpy
- 코딩독학
- CSS
- HTML
- 영국석사
- 판다스
- 나혼자코딩
- 결정트리
- 경사하강법
- Seaborn
- 오늘도코드잇
- 로지스틱회귀
- 코드잇
- 코드잇 TIL
- 파이썬
- 선형회귀
- 런던
- matplotlib
Archives
- Today
- Total
영국 척척석사 유학생 일기장👩🏻🎓
(데이터분석) 산점도(scatterplots) 개념 및 matplotlib, seaborn으로 그리기 본문
코딩공부/Data analysis
(데이터분석) 산점도(scatterplots) 개념 및 matplotlib, seaborn으로 그리기
life-of-nomad 2024. 5. 26. 16:01728x90
반응형
두 숫자 변수 사이에 존재하는 관계를 조사할 때 대표적으로 활용하는 차트는 산점도입니다.
이번 글에서는 산점도와 matplotlib으로 그리는 방법에 대해 알아보겠습니다.
1. 산점도
- 산점도에서 각 데이터 포인트는 하나의 점으로 표현되며, x축과 y축에서의 위치는 각각 서로 다른 변수에 따라 결정됩니다.
- 산점도는 두 개의 정량적 변수 간에 존재하는 관계를 나타낼 때 사용합니다.
- 이 때 두 변수는 각각 x축과 y축을 통해 표시됩니다.
- 산점도를 작성하면 두 변수 사이에 존재하는 상관관계를 분명하게 확인할 수 있습니다.
2. 상관관계
- 두 변수 사이에 존재하는 상관관계의 강도는 상관계수로 나타냅니다.
- 피어슨 상관관계 (Pearson correlation coefficient) : 선형적인 관계를 반영하며 그 값은 최소 -1부터 최대 +1입니다.
- r이 양수라면 한쪽 변수의 값이 증가할 때 다른 변수의 값이 함께 증가하는 경향이 있다는 뜻입니다.
- r이 음수라면 한쪽 변수의 값이 증가할 때 다른 변수의 값은 감소하는 경향이 있습니다.
- 반면, r이 0에 가깝다면 상관관계가 약하다는 의미이며, -1또는 +1에 가깝다면 상관관계가 강하다는 뜻입니다.
- 다음은 pearson 상관계수가 동일하지만 매우 다른 형태의 여러 데이터 세트입니다.
- 숫자가 데이터에 의미가 있는지의 여부도 고려하는 것이 중요합니다.
- 목표 중 하나가 데이터를 중심으로 회귀 모델을 만드는 것인 경우, 비선형에서 선형으로 배율을 바꾸면 유용합니다.
- 아래의 산점도에서는 x값이 증가할수록 y값이 크게 증가합니다.
- y변수의 배율을 로그 배율로 변경하면 선형패턴이 나타납니다.
- 즉, x값을 사용하여 회귀 접근법에서 y의 로그값을 예측하고자 한다는 것을 알려줍니다.
3. matplotlib.pyplot.scatter()
- 예시로, 연료 효율에 대한 데이터세트를 사용하여 이변량 시각화를 알아보겠습니다.
- 먼저, 필요한 라이브러리와 데이터세트를 불러옵니다.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sb
fuel_econ = pd.read_csv('fuel_econ.csv')
print(fuel_econ.shape)
fuel_econ.head(6)
- 이 데이터세트에서 엔진 배기량(리터)와 전체 연료 주행거리(갤런당 마일수)라는 두 가지 정량 변수 간의 관계를 살펴보겠습니다.
- 엔진이 클수록 연료 효율이 높은지, 낮은지 산점도를 통해 알아보겠습니다.
- 산점도 생성 방법 중 하나는 matplotlib의 scatter 함수를 사용하는 것입니다.
- 이 함수의 인수는 지난 글에서 막대그래프, 히스토그램에서 사용한 것과 비슷하지만 x축, y축 모두에서 변수를 지정합니다.
- 🔻(지난글) 막대그래프, 히스토그램🔻
- 통합 연료 효율에 대해 data매개변수를 fuel_econ으로, x를 dispel으로, y를 comb로 설정합니다.
- 또한 각 축에 표시된 변수를 알아볼 수 있도록 x레이블과 y레이블을 추가하겠습니다.
plt.scatter(data=df, x='displ', y='comb');
plt.xlabel('Displacement (1)')
plt.ylabel('Combined Fuel Eff. (mpg)')
- 이 도표는 일반적으로 엔진 크기와 연료 효율간의 음의 상관관계를 나타냅니다.
- 큰 배기량보다 작은 배기량에서 가변성이 더 큽니다.
4. seaborn.regplot()
- 산점도 생성 방법 중 또 다른 한가지는 seaborn의 regplot 함수를 사용하는 것입니다.
- 이 함수는 데이터에 대한 회귀선 적합과 산점도 생성을 결합합니다.
- regplot 함수의 기본적인 매개변수는 'data', 'x', 'y'로 matplotlib의 scatter와 동일합니다.
sb.regplot(data = fuel_econ, x='displ', y='comb')
plt.xlabel('Displacement (1)')
plt.ylabel('Combined Fuel Eff. (mpg)');
- 이 선을 보면 배기량이 낮고 효율이 높은 차량이 선의 왼쪽에 표시됨을 알 수 있습니다.
- fit_reg = false를 이용하여 회귀선을 해제할 수도 있습니다.
728x90
반응형
'코딩공부 > Data analysis' 카테고리의 다른 글
(데이터분석) matplotlib으로 heatmap(히트맵) 작성하기 (0) | 2024.05.27 |
---|---|
(데이터분석) seaborn의 투명도, 지터링으로 산점도 과다중첩 해결하기 (0) | 2024.05.27 |
(데이터 분석) seaborn, matplotlib에서 축의 scale(척도) 변환하기 (0) | 2024.05.25 |
(데이터분석) seaborn, matplotlib으로 axis(축) 범위 변경 (0) | 2024.05.25 |
(데이터분석) 불연속 데이터에서의 히스토그램, 막대그래프 나타내기 (0) | 2024.05.25 |