AIVLE School DX 3기

[에이블스쿨 4주차] 데이터 분석3

김보통김보름 2023. 2. 22. 20:01
728x90
반응형

큰일 났다
어제 배운 거 하나도 기억나지 않습니다

 

과거는 과거일 뿐이다
-갓기영-

네, 오늘 수업 열심히 듣겠습니다❗❗

 

 

 


🤔histogram을 예쁘게 보이게 bin을 조정하는 게 맞는 건가요?

아니요!
듬성듬성 빈 부분은 감안하고 보셔야 합니다.

 

 

🤔단변량과 이변량 둘 다 분석해야 되나요?

네!
단변량만 분석하면 분석을 제대로 한 게 아닙니다(가설 검증을 하지 않음)
시간이 없어서 이변량만 먼저 분석하는 경우도 있지만!! 짧게나마 단변량 분석하는 걸 권장합니다.

 

🤔분석단위를 빠르게 파악하는 방법이 있을까요?

문제정의(혹은 분석 목표)에 따라서 분석 단위가 결정되고 거기에 맞게 데이터가 정리가 되어있을 겁니다.
현업에서는 문제정의부터 시작하기에 여러분이 분석단위를 결정할 것입니다!


문제정의 → 분석 단위

 

🤔bins에 어떤 값을 주는 게 좋나요?

정해진 답은 없습니다!
값의 구간에 따라 나눠보고, 여러 가지 값을 넣어 비교해 보세요.

 

😥그래프 해석이 너무 어려워요

그래프 축을 먼저 보세요!

 

😥 get_dumies에서 drop=True하는 이유가 뭔가요

더미들을 만들었기 때문에 첫 번째 열을 드롭해도 나머지 열들로 첫 번째 열 값이 특정 가능해서 드롭합니다!


🔄 복습

  기초통계량 그래프
숫자 min, max,
mean, std,
사분위수
histogram
kde plot
box plot
범주 번주별 빈도수
범주별 비율
bar
sns.countplot

 

display : 기초통계량을 데이터프레임 형식으로 볼 수 있음

kdeplot : 두 개 이상을 비교할 때 유용

sns.kdeplot( x = Data1, data = data) # 기본색 : 첫번째 - 파랑
sns.kdeplot( x = Data2, data = data) # 기본색 : 두번째 - 주황

data[var].value_counts() : 시리즈가 나옴. 첫 번째 열에 해당하는 내용이 인덱스

 

 

  y
x 숫자 숫자 범주
산점도 상관분석
(상관계수)
(p-value)
   
범주        
       

🔧도구

✔ 도구(시각화, 수치화)
모든 도구들은 뒷받침하는 가정(전제)이 있다.

1️⃣숫자 VS 숫자

산점도(Scatter) 
공분산(convariance)

상관계수(correlation efficient)

 

산점도

두 숫자형 변수의 관계를 나타내는 그래프
직선(Linearity)
plt.scatter(DataFrame['columns'], DataFrame['columns'])
plt.tight_layout()	# figure로 여러 그래프를 그렸을 때 간격 예쁘게
plts.how()

# plt.scatter('cloumns', 'columns', data=DataFrame)
sns.scatterplot(x='columns', y='columns', data=DataFrame)
plit.show()

 

  • 얼마나 직선에 모여 있는가?
  • x와 y의 관계를 얼마나 직선으로 잘 설명할 수 있는가?

한 번에 산점도 그리기

# 변수와  데이터가 많다면,
# 시간이 많이 걸리고  일일이 확인하기 쉽지 않음
sns.pairplot(datafrmae)
plt.show()

sns.pairplot(data = tips, kind='reg')  # 회귀선과 함께 그리기
plt.show()

산점도와 각각의 히스토그램 그리기

sns.jointplot(x='total_bill', y='size', data = tips)
plt.show()


상관계수, 상관분석

상관계수(correlation coefficient) : 관계를 수치화(-1 ~ 1)
상관분석 : 상관계수가 유의미한 지를 검정
경험에 의한 대략적인 기준
강한 0.5 < |r| <= 1
중간 0.2 < |r| <= 5
약한 0.1 < |r| <= 0.2
(거의)없음 |r| <= 0.1

 

상관분석을 통한 검정(test)

# 값에 NaN이 있으면 계산이 되지 않음.
# notnull()로 제외하고 실행해야 됨.
import scipy.stats as spst
spst.pearsonr(DataFrame['columns1'], DataFrame['columns2'])

결과 : (상관계수, p-value)

한꺼번에 상관계수 구하기

df.corr()

⭐p-value

그래프로 판단하기 어려운 관계를 유의미한지 판단하는 숫자
p-value < 0.05면 유의미하다(두 변수 간에 관계가 있다.)

✔summary


2️⃣범주 vs 숫자

평균 비교(barplot)
범주가 2개 : 두 평균의 차이 비교
범주가 3개 이상 : 전체 평균과 각 범주의 평균비교

 

두집단(범주) → 숫자

# 세 집단(범주) → 숫자도 동일한 함수 사용, 해석
sns.barplot(x="columns1", y="columns2", data=DataFrame)
plt.grid()
plt.show()

검은선은 95% 신뢰구간

전수조사를 하면 오차가 없다.(하지만 표본을 구할 수 없으니 모집단으로 추정한다.)

추정치에는 표준오차가 존재한다

..👥👤👥👤👥👤👥표본..👥👤👥👤👥👤👥모집단..👥👤👥👤👥👤👥,,..표본👥..모집단👥👤👥👤👥👤👥

 

 

중심극한정리(Central Limit Theorem)

 동일한 확률분포를 가진 독립 확률 변수 n개의 평균의 분포는 n이 적당히 크다면 정규분포에 가까워진다는 정리

t-test, anova(분산분석)

  T-test anova
범주의 수 2개 3개 이상
비교 방법 두 그룹간 평균
(두 평균의 차이)
[전체평균과 그룹평균의 차이(분산)]와
[그룹 내 차이(분산)] 를 비교
차이(관계)의 유의미 P-value < 0.05
|t 통계량| > 2
 

 

 

 

 

 

 

barplot 평균값 비교, countplot 빈도수 비교


💙회고

함수 사용이 매우 어려웠습니다😂

지금 이 회고를 적는 시점에서 강의를 3번 정도 다시 봤습니다...

처음엔 이론이 너무 이해가 가지 않아 배속으로 실습을 빼고 다시 보니 이해가 안 되었던 부분도 다시 이해가 되는 것 같습니다. 두어 번 보고 나니 한기영 강사님께서 정말 핵심만 집어서 쉽게 설명해 주신 것을 알 수 있었습니다

한 가지 아쉬운 점이 있다면 수업 영상이 다음날 수업 끝나고 올라오기 때문에 바로바로 복습이 어려웠습니다

오히려 수업에 더 집중을 하자는 마음을 다지게 되면서도 다음날 수업의 진도나 셀프테스트 시험을 칠 때는 힘들었던 순간도 있었습니다.(만약 이 글을 보게 되신다면 영상 당일날 올려주시면 안될까요...?🥺)

 

 

 

추천사이트

https://school.coding-x.com/lesson/120

728x90