데이터 분석 - 8

CYSSSSSSSSS·2023년 8월 17일
0

데이터분석

목록 보기
11/19

이변량 분석 (숫자 -> 숫자)

도구

시각화 : 산점도 (scatter)
수치화 : 상관 분석

산점도

  • 점을 찍어서 그래프를 그린다
  • 각 점들이 얼마나 직선에 모여 있는지를 직선을 그린다

산점도

  • 두 숫자형 변수의 관계를 나타내는 그래프 는 무조건 산점도 이다.
  • 직선의 관계 가 있는지 확인해야 한다.

code

  • plt.scatter(x값 , y값)
  • plt.scatter('x변수' , 'y변수' , data = df)
  • sns.scatterplot('x변수' , 'y변수' , data = df)
plt.scatter(air['Temp'] , air['Ozone'])
plt.show()

plt.scatter('Temp' , 'Ozone' , data = df)
plt.show()

sns.scatterplot('Temp' , 'Ozone' , data = df)
plt.show()

강한 관계 vs 약한 관계

sns.pairplot(dataframe)

  • 숫자형 변수들에 산점도를 한꺼번에 그린다.
sns.pairplot(air)
plt.show()

jointplot , regplot

  • 산점도와 히스토 그램을 한꺼번에 보여주는 jointplot
  • seaborn 에서만 제공해 준다.
sns.jointplot(x='Temp', y='Ozone', data = air)
plt.show()

  • regplot 은 회귀 선을 그어주는 방법이다
  • 무조건 직선을 그어서 정확하지는 않다.
sns.regplot(x='Solar.R', y='Ozone', data = air)
plt.show()

상관계수 , 상관분석

  • 그래프를 눈으로 파악하는 것 보다 수치화 하는것이 정확하다
  • 관계를 숫자로 계산하여 비교
  • 유의미 하는것을 검정하는것이 상관분석이다

r

  • 상관계수의 값
  • -1 ~ 1 사이의 값이다.
  • -1(음) or 1(양) 이여야 강한 상관관계를 나타냄

  • 강한 : 0.5<r<=10.5 <|r| <=1
  • 중간 : 0.2<r<=0.50.2 <|r| <=0.5
  • 약한 : 0.1<r<=0.20.1 <|r| <=0.2
  • 없음 : r<=0.1|r| <=0.1

scipy.stats

  • 상관계수를 수치화 하기위한 방법
  • 통계 모듈
  • 피어슨 상관계수를 구하는 함수
  • 결과 : (첫번째 값은 상관계수 , 관계가 있냐 없냐 를 나타내는 p-value)
import scipy.stats as spst# 상관계수와 p-value 
spst.pearsonr(air['Temp'], air['Ozone'])

p-value

  • 어떻게 사용하는지에 초점
  • 수치화 한 값이 유의미한 지 판단하는 숫자 -> p-value

판단 기준

  • p-value < 0.05 이면 , 두 변수 간에 관계가 있다. (r not equal 0)
  • p-value >= 0.05 이면 , 두 변수간에 관계가 없다고 본다. ( r equal 0)

pd.corr()

  • 모든 데이터 프레임의 컬럼들간의 상관계수를 출력하는 함수
pd.corr()

sns.heatmap()

  • 상관계수를 heatmap 으로 실행
  • 상관계수를 시각화 한것이라고 보면 된다.
plt.figure(figsize = (8, 8))
sns.heatmap(air.corr(), 
            annot = True,            # 숫자(상관계수) 표기 여부
            fmt = '.3f',             # 숫자 포멧 : 소수점 3자리까지 표기
            cmap = 'RdYlBu_r',       # 칼라맵
            vmin = -1, vmax = 1)     # 값의 최소, 최대값값
plt.show()

profile
개발자 되고 싶어요

0개의 댓글