패캠 데이터 분석 14기/통계

[패캠 6일차] 기초 통계 완전 정복: t-test, f 검정, 회귀분석, 귀무가설

Sheryl Yun 2024. 4. 30. 17:57

데이터분석전문가 시험 (준전문가 상위 자격증) 후기

머신러닝

  1. 데이터셋 전처리
    • 1-1 2024-01-13 17:44:56 (연월일 시)
    • 월, 일을 따로 빼라
    • NSM = 자정으로부터 지난 시간 을 분으로 바꿔서 새로운 열을 만들어라
      • 17 * 60 + 44(분)
    • 1-2 ind11, ind22 열을 새로 만드는데 ind11은 NSM이 11의 배수이면서 22의 배수가 아닌 거
    • 1-3 ind22 = 22의 배수인 거

⇒ 엑셀로 하면 1분 30초인데 R을 쓰니 40분 사용

  1. 데이터를 EDA해라
    • 기초 통계량, 데이터의 타입(문자, 숫자, 벡터), 결측치 여부 확인, 이상치 여부를 숫자 열만 확인 ⇒ 박스 플롯
  2. 머신러닝 모델링
    • 3-1 이 데이터를 잘 나눌 수 있을 거라고 기대되는 2가지 분류 방법을 선택하고 왜 선택했는지 작성
    • 3-2 그 중에서 최적의 모델을 하나 선택해서 왜 그런지 작성
    • 3-3 SVM(머신러닝 기법 중 하나)과 랜덤포레스트 방법을 써서 예측한 후 ~를 해라
    • 3-4 ~가 있는데 왜 그런지 써라

통계

  • EDA 해라
  • 회귀분석을 할 때 가정이 틀린 게 없는지 확인해라
  • 확인 후 2가지 이상 가정이 틀린 것을 고쳐라.

 

 

시험 소감: ADSP로 충분하다,

엑셀로 하면 금방 하는데 굳이 R로 할 필요 x

+ 챗 지피티가 더 잘 함 (굳이 필요한 자격증?)

 

합격률 2%이지만

오픈북이라 R이나 파이썬 능숙하면 해볼 수도

 

팁: 시험장에 책을 많이 가져가기보다는 ‘이럴 때는 이런 코드를 사용한다’ 는 걸

코드를 정리해서 출력해가기 (유인물 반입 가능)

 

커트라인이 높은 편 - 75점 이상이어야 합격

 


지난 시간 복습

탐색적 데이터 분석

수행 이유:

데이터가 가진 문제점이나 특성 파악

뒤에 이어지는 데이터 분석 수행에 도움

 

엑셀로 하는 EDA 방법

- ‘데이터분석’ 도구 ⇒ 기초 통계량 계산 (이것만 봐도 데이터 특성을 어느 정도 파악 가능)

- 피벗 테이블 ⇒ 데이터의 요약 통계표 (데이터를 자유자재로 가지고 놀자)

 

피벗 테이블의 경우 행, 열, 값에 어떤 데이터를 넣을 것이냐 가 중요

 

두 방법 모두 표를 만들고 나서 만드는 것에서 끝이 아니라

데이터에서 어떤 정보를 얻을 것인가가 중요 (예: 따릉이 분석)

 

결측치와 이상치 처리

정답 X, 어떻게 하느냐에 따라서 결과가 달라질 수 있음

 

IQR

(3사분위수 - 1사분위수 간의 거리) * 1.5

 

상관계수

-1 < r < 1

 

1에 가까울수록 양의 상관관계

-1에 가까울수록 음의 상관관계

0에 가까울수록 상관관계가 약함

 

주의:

-1에 가까워도 상관관계가 ‘강한 것’

0에 가까운 경우와 헷갈리지 말기

 

 

데이터 리터러시 능력:

사람들에게 어떻게 보여줄 것인지 고민하는 것 

(예: 초록색이 대부분이었던 상관 계수표)

 

EDA에서 상관 분석의 역할

인과 관계가 있을 것으로 예상되는 변수 선별 가능

⇒ 데이터 분석 전 분류에 시간 절약

 

데이터 전처리

데이터 분석가가 가장 중요하게 생각하는 단계

가장 많은 시간과 비용 요구

 

목적에 맞게 전처리했는지의 여부가

최종적인 데이터 분석의 결과를 결정

 

데이터를 수집했을 때 데이터 질이 낮다면

결과의 질도 낮을 수 밖에 없음 (GIGO 원칙)

 

데이터 분석에 도움이 되는 데이터를 수집하는 것이 중요

(아무 데이터나 모은다고 해서 데이터 수집이라고 하지 X)

 

VLOOKUP

열을 기준으로 데이터를 불러오는 것

 

- 열 번호를 절대 값으로 참조하거나

- 열 번호에 MATCH 함수를 대입하는 방법 2가지

 

세 번째인 열 번호를 어떻게 자동으로 바뀌게 하느냐가 중요 (=> MATCH 활용)

 

INDEX(전체, 행 번호, 열 번호)

 

행 번호 또는 열 번호 불러오기를 MATCH로 대체

 

COUNTIFS

인원 구하기

 

팁:

- 맨 아래 새 데이터 추가될 때를 대비하여 열 전체를 잡기

- 나중에 옆으로 데이터 채울 때를 대비하여 항상 열 참조 시 절대 참조

 

COUNTBLANK

열 전체 선택 x (테이블 바깥의 빈 행도 인식해서)

 

열 선택하기:

CTRL + 방향키는 빈 칸 전까지만 잡을 수 있음

⇒ 마우스를 한 번은 써야 함

 

⇒ 첫 칸(열 이름 바로 아래) 데이터부터

마우스로 스크롤을 맨 아래로 쭉 내린 뒤

shift로 범위 잡기 (엑셀의 스크롤 맨 마지막에는 항상 마지막 데이터가 있다는 걸 이용)

 

SUMIF

특정 조건을 만족하는 데이터의 합계 계산

예: 1월 지출 내역 중 식비 값 합계

 

숫자를 많이 다루는 실무는 VLOOKUP보다 SUMIFS를 더 많이 씀

 

데이터를 볼 때 사람들이 가장 궁금해하는 것:

총합계, 총갯수, 부분별(지역별, 월별 등) 합계, 부분별 갯수 등

 

SUMIFS

POINT: '더할 값들의 범위'가 맨 앞에 있음

맨 뒤로 가면 여러 개의 조건이 붙으면서 계속 뒤로 밀림

 

SUMIFS(더할 값들의 범위, 더할 조건 범위 1, 조건 1, 더할 조건 범위 2, 조건 2, …)

 

SUMIFS는 조건이 1개일 때도 가능하므로 SUMIF 섞어 쓰지 말고

SUMIFS 하나로 통일해서 쓰기

 

SUMIFS도 열 전체로 선택하는 습관 들이기

 

** 팁:

합계 구하려고 Sales 열 전체 선택할 때 데이터 중 문자열이 포함되어 있다면

SUMIFS가 문자열은 알아서 빼고 숫자만 더해줌 (에러 발생 x)

 

** 팁:

수식 작성하다가 수식 미리보기로 열 제목이 가려질 때

미리보기의 컴마 부분에 커서를 갖다대면 모양이 바뀜 - 미리보기 위치를 드래그로 옮길 수 있음

 


 

Chat GPT

3.5 버전 (무료)

월 구독료 20달러 내면 4.0 버전

 

가장 큰 차이: 속도? (체감상 그렇게 차이 없음)

 

3.5는 명령이나 결과를 텍스트로만 주고 받을 수 있음

4.0은 파일 업로드와 다운로드가 가능 (예: CSV 파일로 만들어달라 - 10개 중 7,8개 바로 성공)

 

데이터셋 검증 등 여러 가지로 활용 가능 (프로젝트 때 Chat GPT 써 보기)

 

예전에는 삼성 → 엘지 색상 바꾸는 데 3시간 걸림

슬라이드 250장 정도.. 하나하나 마우스로 바꿔서

이제는 챗 지피티로 5분 만에 가능

 

예: ppt에서 전체 슬라이드에 있는 도형 윤곽선 색, 채우기 색 한 번에 바꿀 수 있는 vba 코드를 달라

(vba 코드 말고 파이썬으로도 가능)

 

주의: ppt에서 그룹화되어 있지 않은 요소에만 적용됨

 

엑셀 VBA(Visual Basic for Application)

베이직 — 옛날 초기의 코딩 언어 (오피스쪽)

원래 함수에 없던 새로운 함수 생성 가능

배우려고는 하지 x

 

나중에 프로젝트 할 때 챗 지피티로 파이썬 코드 요청 많이 할 수 있음

 

 

엔씨소프트 - 리니지 게임

JD: 사람들 반응을 보고 '분석'을 할 줄 알아야 한다

 

커뮤니티 리뷰 크롤링 조금 복잡해서

구글 스토어 리뷰 크롤링함

 

게임 리뷰어의 가장 불만 — 과금 유도 (현질)

 

하지만 일부 광고 외에 게임 회사가 돈을 벌 수 있는 유일한 방법이어서

과금 유도를 안 할 순 없음

 

그러나 면접에선 과금 유도를 하지 말라는 얘기 하면 (X)

과금 관련해선 면접에서 할 수 있는 얘기가 없음

 

결론: 과금 유도 얘기한 사람들 얘기는 빼고

나머지 사람들은 무슨 얘기를 하고 있나

 

과금 유도 불만 유저를 빼려면?

리뷰에 '과금', '현질' 등의 단어가 포함된 유저 제거

 

결과: 과금 관련 언급한 사람 - 4명 중 1명

걷어내고 언급 안 한 사람은 무슨 얘기를 했나

- 게임에 대한 질문, 그래픽(장점), 게임 장애 등 언급

 

5점과 1점이 가장 많음

이런 양극단은 리뷰를 익명으로 남길 수 있을 때 많이 보이는 현상

악성 리뷰 남기고 사람들에게 노출되려고 점수는 5점 주는 경우도 있음

 

 

조언: 사람들의 반응을 분석해봤다,

사람들이 이렇게 생각하고 있더라,

이런 걸 반영해서 회사에 가서도 일해보고 싶다

 

위 얘기를 할 타이밍이 없다면 마지막 하고 싶은 얘기 물어볼 때 하기

 

뽑힐 확률 up

분석을 해봤다는 거 자체가 면접관 입장에서는 기특

 

합격했고 면접 공고 때보다 더 분석적인 직무로 바뀌어서 입사

 

데이터 분석할 때 분석의 주제를 거창하게 할 필요 x

작지만 진짜 분석을 할 것

작은 문제를 다른 방법으로 해결해보려는 시도가 중요

 


 

챗 지피티는 언어 모델

⇒ 텍스트 분석에 특화되어 있음

 

리뷰 데이터를 챗 지피티와 분석

챗 지피티에게 Role이나 역할을 주면 성능이 더 좋음

예: 이제부터 너와 나는 게임 리뷰를 분석하는 리뷰 분석 전문가야

 

리뷰를 복사해서 지피티에 붙여넣고

'이게 우리가 분석할 게임 리뷰야'

 

감정 분석: 리뷰가 긍정적/부정적/중립적 감정을 가지고 있는지

'이 데이터로 감정 분석을 해줘봐'

 

표로도 주고 각 항목의 갯수도 세줌

⇒ 엑셀도 있지만 챗 지피티에게 요청해도 됨

 

'형태소 분석을 해서 가장 많이 등장하는 5개 단어들 말해줘봐'

 

=> 간단한 데이터는 챗 지피티로 엑셀, 파이썬보다 충분히 분석 가능!

 

궁금한 분야의 샘플 데이터, 복잡한 작업을 대신해주는 코드를 짜는 것 등

챗 지피티 폭넓게 사용하기

 

 

기업 가면 챗 지피티를 못 쓰게 하는 경우도 있음

삼성 원래 사용 가능했는데 삼성 기밀 같은 제품 규격 등을 공유하는 걸 막고자 금지

 

CJ 그룹의 경우 인터넷에서 네이버 뉴스도 안 열림

 

=> 즉, 보안 이슈가 걸릴 수 있음

 

 

 

Q. 앱 회사가 아니고 일반 기업일 경우에 산업조사를 데이터 분석으로 하는 케이스들이 있는지 궁금합니다..!

 

아마 있을 것

산업 조사 = 산업에 대한 전반적 특징 파악

 

제일 좋은 건 증권사 리포트

산업의 전반적인 특성과

산업에서의 리딩하는 기업들의 특징이 잘 정리되어 있음

 

산업 관련 동향 공유하는 자리도 있음

 

 

미국의 엑셀 세계 챔피언쉽 대회 (라스베가스)

 

저런 걸 엑셀로 해? 하는 것들이 있음

 

수상자들이 가장 많이 쓴 함수:

VLOOKUP, SUMIFS, COUNTIFS

 

500개 함수 중 10~15개 함수 (2~3%)

파렛토 법칙 : 이걸로 엑셀의 70~80% 업무 처리 가능

함수 한번만 써서 작업을 끝내는 것

 

 

코파일럿 나왔지만 대표 함수 기능들은 알고 있기

⇒ 잘 알고 있는 만큼 명령도 잘 내릴 수 있음

 

 

데이터 유효성 검사

저장하면 지워짐 - 눈으로 확인하는 용도

빨간색 동그라미가 안 뜨는 게 베스트

 

데이터의 맞춤법 검사 같은 기능

 

사용법:

데이터 - 데이터 유효성 검사

 


 

데이터 분석/모델링

코파일럿이 할 수 있는 것

⇒ 초안 작성, 데이터 분석, 슬라이드 작성, 이번 분기에 가장 잘 팔렸던 것 (그래프로) 등

 

코파일럿의 등장으로 앞으로 우리가 일하는 방법이 바뀔 것

아직 한국어 버전은 지원하지 않지만 근시일 내에 가능할 것

 

기존에 엑셀에서 불가능하다고 생각했던 작업들 (머신러닝 등)

손으로 하나하나 했던 전처리도 더 빨리 가능할 듯

 

네이밍 센스

파일럿 = 메인 조종사

코파일럿 = 부조종사 

 

코파일럿이 파일럿 역할을 할 순 없음

AI는 어디까지나 인간의 의사결정을 도와주는 지원자

파일럿은 인간이 되어야

 

 

모델 = 모형

모델링 = 모형을 만드는 것

 

데이터 분석에서 모형을 만든다는 것

데이터 분석의 수식 = 공식을 만든다

수식으로 이루어진 공식을 찾는 것 = 모델링

 

예: 회사의 매출액 예측하려면

어떤 원리로 계산을 할 것인지 => 판매수량 * 평균단가

이런 식으로 공식을 찾아내는 것

 

머신러닝 모델 =

어떤 데이터를 넣더라도 일정한 결과 값을 내놓을 수 있는 모형

 

통계 용어

확률

주사위를 던질 때

눈이 얼마 나올 지 모르고 던짐

 

동전의 앞면

어떤 행위를 했을 때 결과를 알 수 없이 진행하는 것

= 실험

 

전체 나올 수 있는 경우의 수 = 표본 공간

 

여기서 하나의 눈(요소) = 사건

 

전체 '표본 공간'에서 하나의 '사건'이 일어날 가능성 = 확률

 

통계

데이터를 관찰하고 정리, 분석하는 수학의 한 분야

모집단으로부터 표본을 파악

 

통계가 출발한 곳:

중세 시대의 어느 가게

매출 올리기 위해 고객에 대해 궁금했을 것

 

하루에 10명씩 30일 간 관찰 (연령대, 나이, 성별, 사간 물건 등)

= 300명의 표본 추출

 

일부 고객을 관찰하여 전체 고객들도 이와 비슷할 것이라고 결론 내리는 것

⇒ 통계의 출발

 

 

모집단에서 표본 일부를 뽑아서 ‘추론’하는 것이 통계

일부분을 가지고 전체를 파악하려는 노력

⇒ 매우 효율적인 도구

 

그러나

일부분으로 전체를 유추한다는 것 자체가 100%의 정답을 보장하지는 않음

틀릴 수 있다

 

통계를 100% 믿고 맹신하면 안 됨

 

옛날에는 기술적 한계로 전수 조사가 불가능했지만 요즘은 가능

 

 

기술 통계학

Technology가 아니라 descriptive 의 '기술'

요약 통계량 등을 이용하여 데이터의 전반적인 특성 파악

 

평균, 최소/최대값, 합계 구하고

꺾은선, 막대 그래프 등으로 정리하는 것

 

추론 통계학

말 그대로 '추론'하는 것

 

모집단

가설 검정 파트

가설

귀무 가설

대립 가설

 

예:

천동설 - 지구가 중심이고 하늘이 돈다

갈릴레오 갈릴레이 - 지구가 돈다 (지동설)

⇒ 사람들에게 맞다고 주장해서 납득시키는 것 (⇒ 대립 가설)

 

맞다고 증명할 방법이 별로 없음

⇒ 귀무 가설로 대체

 

기각을 할 대상 (= 천동설)

지동설이 무조건 맞다가 아니라

천동설이 맞지 않다 를 증명

 

목적: 귀무 가설을 기각

 

귀무 가설 = 키 평균이 170일 것이다

제 1형: 양측 검정 (귀무 가설이 같다/아니다)

제 2형: ~보다 작다

제 3형: ~보다 크다

 

가설 검정의 목표: 귀무 가설을 기각시켜서 대립 가설의 손을 들어준다

 

기준 값: p-value (유의 확률)

 

귀무 가설이 기각될 확률 - 보통 5%(0.05, = 유의 수준) 미만으로 잡음

엄격하게 하려면 0.01도 쓰지만 보통은 0.05

 

이 범위에 해당하면 귀무 가설 기각 가능

 

대립 가설: 돼지 만 마리의 평균이 100kg이 아니다 라고 잡으면

기각역은 양 극단 각각 2.5% (합쳐서 5%)

 

이 극단의 어디라도 위치하면 ‘아니다’ 라고 결론

 

그러나 대립 가설을 >100 kg 또는 < 100 kg 라고 잡으면?

 

정리

1) 유의 확률이란 유의 수준보다 '같거나 낮은' 경우의 수가 발생할 확률

2) 돼지 평균 체중의 유의 수준 = 평균 체중이 30kg로 관측될 확률 (5%)

3) 돼지 농장의 사례에서, 유의 수준 '이하'로 관측될 확률(5% 이하)을 가진 지표(평균 체중 20kg)가 나타나면, '돼지 1만 마리의 평균 체중은 100kg'라는 귀무 가설은 기각

4) 따라서 유의 확률은 '평균 체중 20kg와 같거나 낮은 지표가 관측될 확률'이니까, 유의 확률은 5%

 

 

t-test

p-value(유의 확률)를 활용하는 가장 대표적인 통계 분석법

집단이 반드시 2개일 때만 가능

(3개 이상이면 ANOVA 라는 분산 분석 사용)

 

두 집단평균에 통계적으로 유의미한 차이가 있는지 검정

 

예: 제약 회사에서 신약 개발

한쪽 집단에만 약 복용 / 다른 집단에는 약 복용 x

=> 두 집단의 간 수치 평균 사이에 유의미한 차이가 있는지 확인

 

 

또는 같은 집단의 전후 비교도 가능

한 집단에서 복용 전 간 수치 → 복용 후 간 수치가 유의미한 차이 있는지

 

 

** t-test 시행 전 F-검정 시행

 

f-test (F-검정)

두 집단분산유의미한 차이가 있는지 검정

 

유의미한 차이 기준: P > 유의수준

 

평균 검정(t-test) 전 분산을 먼저 검정하는 이유:

수치는 전반적으로 떨어져도 분산은 안 변할 수 있음

평균을 먼저 보면 수치가 떨어졌으니 약 효과가 있구나 라고만 생각할 수 있음

 

그러나 3명의 환자만 신약 복용으로 간 수치가 확 떨어지고

나머지는 복용 전과 수치가 비슷하다면

전체적으로 수치가 떨어진 것과는 분산이 아예 다른 것

 

 

분산이 같을 때는 50만 떨어져도 유의미

분산 모양이 다를 때는 50이 떨어져도 유의미하다고 간주하지 x

 

정리

f-검정을 시행하는 이유:

분산이 같은지 여부를 판단해서

각 상황에 맞는 t-test 방법을 선정하기 위해

 

=> t-test에서 등분산 가정을 해야 하는지, 이분산 가정을 해야 하는지가 나옴

 

 

그러나 f-검정 가정을 맹신하면 안 됨

=> 실험하고 있는 가정 외에 다른 변수들은 모두 동일하다고 가정하므로

(실험실에서나 완벽히 가능한 가정)

 

회귀 분석

실무에서 많이 활용

 

예:

종속 변수 (매출액)

독립 변수 (광고비)

 

=> 두 변수 간의 관계를 파악해서

과거 데이터를 기반으로 미래 추세를 예측

 

선형 회귀 분석

단순 선형 회귀 분석

- 독립 변수가 1개일 때 (독립 변수를 광고비 하나로만 선정)

 

다중 선형 회귀 분석

- 독립 변수 여러 개를 동시에 고려할 때 (판매 수량, 단가, 고객 수 등)

 


 

f-검정의 귀무 가설:

두 집단의 분산에 유의미한 차이가 없다

등분산 가정 t-test

 

f-검정의 대립 가설:

두 집단의 분산에 유의미한 차이가 있다

이분산 가정 t-test

 

 

항상 귀무 가설은 유의미한 차이가 없다,

대립 가설은 유의미한 차이가 있다 라고 대부분 사용

 

 

단순 선형 회귀 분석의 원리

오차 = 실제 값 - 예측 값

 

순서가 중요

예측 값 - 실제 값 아님

 

 

오차를 다 더하면 0이 됨 (플러스 마이너스 상쇄)

해결: 각각의 오차들을 제곱 (마이너스 값 제거)

 

 

단순 선형 회귀 분석의 평가와 해석

결정계수:

r(상관계수)의 제곱

 

분산 분석

유의한 F

 

귀무 가설: 회귀 모형이 유의미하지 않다

대립 가설: 회귀 모형이 유의미하다

 

(회귀 분석을 한 이유가 유의미했으면 좋겠어서 제기하는 것이 대립 가설)

 

 

보통 대문자 E = 숫자 천만 정도 뜻함

 

통계학에서는 대문자 E가 포함된 수식의 정확한 결과 값이 중요하지 않음

 

'E - 정수'

= 겁나 작은 수

 

E + 정수

= 겁나 큰 수

 

 

잔차 = 오차

원래 회귀 분석할 때 4가지를 맞춰야 하는데

잔차가 독립적이어야 한다 등의 특성이 있음 (=> 심화)