[에이블스쿨 4주차] 데이터 분석3
큰일 났다
어제 배운 거 하나도 기억나지 않습니다
과거는 과거일 뿐이다
-갓기영-
네, 오늘 수업 열심히 듣겠습니다❗❗
🤔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'])
한꺼번에 상관계수 구하기
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()
전수조사를 하면 오차가 없다.(하지만 표본을 구할 수 없으니 모집단으로 추정한다.)
추정치에는 표준오차가 존재한다
..👥👤👥👤👥👤👥표본..👥👤👥👤👥👤👥모집단..👥👤👥👤👥👤👥,,..표본👥..모집단👥👤👥👤👥👤👥
중심극한정리(Central Limit Theorem)
동일한 확률분포를 가진 독립 확률 변수 n개의 평균의 분포는 n이 적당히 크다면 정규분포에 가까워진다는 정리
t-test, anova(분산분석)
T-test | anova | |
범주의 수 | 2개 | 3개 이상 |
비교 방법 | 두 그룹간 평균 (두 평균의 차이) |
[전체평균과 그룹평균의 차이(분산)]와 [그룹 내 차이(분산)] 를 비교 |
차이(관계)의 유의미 | P-value < 0.05 |t 통계량| > 2 |
barplot 평균값 비교, countplot 빈도수 비교
💙회고
함수 사용이 매우 어려웠습니다😂
지금 이 회고를 적는 시점에서 강의를 3번 정도 다시 봤습니다...
처음엔 이론이 너무 이해가 가지 않아 배속으로 실습을 빼고 다시 보니 이해가 안 되었던 부분도 다시 이해가 되는 것 같습니다. 두어 번 보고 나니 한기영 강사님께서 정말 핵심만 집어서 쉽게 설명해 주신 것을 알 수 있었습니다
한 가지 아쉬운 점이 있다면 수업 영상이 다음날 수업 끝나고 올라오기 때문에 바로바로 복습이 어려웠습니다
오히려 수업에 더 집중을 하자는 마음을 다지게 되면서도 다음날 수업의 진도나 셀프테스트 시험을 칠 때는 힘들었던 순간도 있었습니다.(만약 이 글을 보게 되신다면 영상 당일날 올려주시면 안될까요...?🥺)
추천사이트