KPMG Future Academy AI 활용 데이터 분석가 3기 37일차 수업을 2025년 1월 9일에 참석했다.
가설을 통한 검정 과정에서 보이는 것이 전부가 아님을 유의해야함.
x 연속형, 연속형
시각화 : scatter
수치화 : 상관분석
x 연속형, 범주형
시각화 : boxplot, histogram, density plot
수치화 : (NaN)
x 범주형, 범주형
시각화 : barplot
수치화 : 카이 제곱 검정
x 범주형, 연속형
시각화 : 평균 비교, barplot(sns.barplot)
수치화 : T 검정, 분산분석(ANOVA)
이변량 분석 : 숫자 vs. 숫자
scatter
pairplot
jointplot
범위 크로스(range cross) :
회귀분석에서 상관관계의 방향이 바뀌는 현상.
데이터의 특정 범위에서는 양의 상관관계를 보이다가 다른 범위에서는 음의 상관관계를 보이는 것. 이를 시각적으로 설명하자면:
이러한 현상이 발생하는 주요 원인들은:
비선형관계: 변수들 간의 관계가 단순한 선형이 아닐 때
하위집단 효과: 데이터가 서로 다른 특성을 가진 하위집단들로 구성되어 있을 때
교란변수의 영향: 제3의 변수가 관계에 영향을 미칠 때
이런 경우에는 단순 선형회귀보다는 비선형 회귀나 구간별 분석 등 더 적절한 분석 방법을 고려해야 함. 범위 크로스가 발견되면 데이터의 특성을 더 자세히 살펴보고, 현상의 원인을 파악하는 것이 중요.
상관계수, p-value(유의 확률)
상관계수 𝑟
경험에 의한 대략의 기준(절대적인 기준이 절대 아니다.)
분모 : 표준편차를 곱함. 즉 분산의 제곱근
평균과의 차이를 구하는 것은 데이터의 분포를 중심화(centering)하는 과정으로, 상관관계를 더 정확하게 계산하는데 도움이 됨
x̄ (x바)는 x의 평균(mean)
x̄ (x바)는 x의 평균(mean)을 의미한다. 마찬가지로 ȳ (y바)는 y의 평균을 의미함.
이 상관계수(r) 공식:(x - x̄)는 각 x값에서 x의 평균을 뺀 편차
(y - ȳ)는 각 y값에서 y의 평균을 뺀 편차예를 들어, x값들이 [2, 4, 6, 8]이라면:
x̄ (x의 평균) = (2 + 4 + 6 + 8) ÷ 4 = 5
(x - x̄)는 각각 [-3, -1, 1, 3]
데이터를 중심화하는 이유 :
1. 공분산 계산의 정확성
원점(0,0)을 기준으로 변수들 간의 관계를 파악할 수 있음
데이터의 실제 패턴과 관계를 더 정확하게 파악할 수 있음
2. 수치적 안정성
매우 큰 값들을 다룰 때 계산 오차를 줄일 수 있음
예를 들어 x값이 모두 1000 이상인 경우, 중심화하면 작은 수들로 계산할 수 있어 정밀도가 높아짐
3. 해석의 용이성
변수들의 스케일에 관계없이 순수한 관계를 볼 수 있음
평균을 0으로 맞추면 변동(variation)을 더 쉽게 해석할 수 있음
간단한 예시:
기온(섭씨) = [25, 26, 27, 28]
아이스크림 판매량 = [100, 110, 120, 130]
이 데이터를 중심화하면:
기온 편차 = [-1.5, -0.5, 0.5, 1.5]
판매량 편차 = [-15, -5, 5, 15]
이렇게 되면 두 변수의 증감 패턴을 더 명확하게 볼 수 있음.
p-value (유의확률): 두 변수 간의 상관관계가 우연에 의해 발생했을 확률을 의미함
판단 기준(유의수준)
상관계수와 p-value를 한 마디로 정리하자면:
통계 및 확률분포와 관련된 기능 제공하는 모듈
2.1977698002001793e-22 (e-22 = 10^-22)
히트맵
color map 변경 :
cmap(color map) : https://matplotlib.org/stable/tutorials/colors/colormaps.html
오존(Ozone)과 태양복사(Solar.R)의 피어슨 상관계수를 구할 때 한 데이터 열에 결측치가 있어서 전처리가 필요했다. 우선 선형보간법으로 태양복사를 채워서 상관계수를 구해보았다.
그러나 태양복사는 일관된 선형 데이터가 아니어서 적합하지 않은 방법인 것으로 파악된다.
비선형적인 변화를 가진 데이터의 경우 다항식 보간법, 스플라인 보간법 등을 활용.
여기서 Solar.R은 선형적인 변화임.
그러므로 데이터프레임을 새로 만들 때 아래와 같이 태양복사의 결측치가 있는 오존의 행도 함께 제외했다.
결측치를 채운 것에 비해 더 높은 상관도를 보인다.
지구 자기장과 태양복사의 관계 :
종합 연습문제
보스톤
범죄율과 집값의 상관
음의 상관관계
함수로 만듦
세금과 집값의 상관
음의 상관관계
하위계층 비율과 집값의 상관
강한 음의 상관관계
교사 1명 당 학생수와 집값의 상관
음의 상관관계
전체 상관도 파악 (히트맵)
변수설명
재산세와 고속도로와의 접근성은 강한 양의 상관관계
직업센터 접근성과 일산화질소 농도는 음의 상관관계
추가 분석 : 직업센터 접근성과 일산화질소 농도가 음의 상관관계인 것은 이상하다.
추가로 일산화질소 단변량 분석을 수행.
중간에 비어있는 값이 많음.
전처리
통계 관련 책 추천
[교양 서적]
[전공 서적]
신뢰구간이 겹치면 대립가설 상 유의도가 낮음.
신뢰구간 선은 95%의 신뢰수준을 나타냄. 평균값이 신뢰구간 내에 들어갈 확률이 95%.
중앙값의 차이가 클 수록 대립가설이 유의함.
t-test (t 검정)
두 집단의 평균 비교
주의사항 : 데이터에 NaN이 있으면 계산이 안된다. .notnull()
등으로 NaN을 제외한 데이터를 사용해야 한다.
t 통계량(t-statistic)
생존자, 비생존자 그룹으로 나누기
귀무가설 : 타이타닉 탑승객 생존 여부별 나이의 차이가 없다.
대립가설 : 생존여부에 따른 나이의 차이가 있다.
기본 문법 : ttest_ind(B,A, equal_var=False)
2.0066이 2와 차이가 있으나 크지는 않다.
p-value : 0.05보다 작으므로 유의미하지만 크게 유의미하지 않다.
연습 1
성별에 따른 운임차이
대립가설 성립. 즉 유의미하게 차이가 있다.
연습 2
생존여부에 따른 운임차이
대립가설 성립. 즉 유의미하게 차이가 있다.
파라미터 : 분포의 형태를 정하는 숫자. 모수.
정규 분포 : 평균과 표준편자 두 개의 파라미터로 된 확률밀도함수를 가짐.
표준화 : z값 도출. 평균과의 거리가 표준편차의 몇 배인가를 나타냄.
추론통계 : 얻은 실현값으로 이 값을 발생시킨 확률분포를 추정한다.
모집단 = 확률 분포
표본 = 확률분포를 따르는 실현값
무작위 추출 : 단순무작위추출법, 층화추출법
표본오차
표본 평균과 모집단 평균 간의 관계 : 큰 수의 법칙 성립. 표본크기가 커질수록 표본평균이 모집단 평균에 가까워짐.
중심극한정리
일치추정량
비편향추정량
표준오차 : 표본오차의 분포는 모집단의 표준편차와 표본크기 등 2개의 값만 정해지면 구할 수 있음.
p값이란 관찰한 값 이상으로 극단적인 값이 나올 확률로 0.02 이하로 적은 경우 귀무가설은 기각된다.
ALCHERA : 산불 관련 AI 솔루션 도입한 기업
ANOVA
Pclass의 3개 범주에 따라 Age에 차이가 있을 것이다 가설 검정
신뢰구간 겹치는지 확인
F-statistic 57.443 집단 간 평균차이가 유의미하게 큼.
p-value가 유의미하게 작기 때문에 귀무가설을 기각.
승선지와 운임 차이
객실등급과 운임 차이
주말 여부와 오존의 분산 분석
주말 여부 열 생성
귀무가설 채택.
요일 숫자로 열 생성
요일별 오존의 분산 분석
귀무가설 채택.
월별 오존의 분산 분석
귀무가설 기각.
오차막대 : SEM (Standard Error Mean 표준오차)를 시각화.
SE(표준 오차) 구하기
t-검정에서 오차(표준오차, SE)는 statistic 값과 그룹 평균을 알고 있을 때 계산 가능.
ANOVA에서 오차(그룹 내 변동성)는 F-statistic과 관련된 MS 값들을 알면 계산할 수 있음.anova에서 구한 그룹 내 변동성으로 표준오차를 구할 수 있다.
실습
carsheat Sales 변수(타깃)에 대하여 각 변수의 유의도 측정하기.
참고
상관계수(r) : -1 혹은 1에 가까울수록 유의
p-value : 0.05 이하 유의
t 값 : -2보다 작거나, 2보다 크면 유의
참고
spst.pearsonr()은 함수는 Series 객체나 array-like 객체 (예: 리스트, 배열 등)를 기대함. SciPy는 숫자 리스트나 NumPy 배열을 사용한다.
그런데 실수로 문자열을 인자로 전달했더니 튜플로 인식하였음.
그 이유는 파이썬의 기본 동작 때문. 파이썬에서 문자열(string)은 시퀀스 타입의 하나로, 개별 문자들의 반복 가능한(iterable) 컬렉션임. 따라서 문자열을 함수에 전달할 때, 각 문자가 별도의 요소로 취급됨.
이렇게 되는 이유는:
pearsonr 함수(SciPy 라이브러리)는 두 개의 동일한 길이를 가진 시퀀스를 기대함.
문자열은 시퀀스이므로 각 문자가 개별 데이터 포인트로 해석됨.
각 문자는 내부적으로 ASCII/Unicode 값으로 변환되어 계산에 사용됨.
튜플의 핵심 특징:
불변성(immutable) - 한번 생성되면 내용을 수정할 수 없다.
소괄호 () 사용 (리스트는 대괄호 [] 사용)
메모리를 더 적게 사용
딕셔너리의 키로 사용 가능 (리스트는 불가능)