멋쟁이사자처럼 AI스쿨 기초 통계 강의 내용을 정리한 포스팅입니다.
단순 무작위 표집(simple random sampling) : 모든 사례를 동일 확률로 추출
계통 표집 (systematic sampling)
-첫 번째 요소는 무작위로 선정한 후, 목록의 매번 k번째 요소를 표본으로 선정
-ex) 선거 출구 조사시, 나오는 사람 7번쨰마다 질문
-ex) DB에서 쌓이는 거에서 k번째마다 추출
층화 표집 (stratified random sampling)
-모집단을 이루는 각 계층별로 무작위 추출
-ex) 여론조사 : 지역별, 연령별, 성별로 나누어 추출
-남,녀의 연령별로만 하면 특정 집단에서 조사가 안 될수도 있으니... 비율이 채워질때까지 조사를 계속함
집락 표집 (cluster random sampling)
-모집단을 집락으로 나눈 후, 집락 중 일부를 무작위로 선택
-ex) 전국 고등학교에 고등학생 다 조사할 수 없으니, 랜덤하게
-ex) 특정 서버에 들어온 고객만 조사
표집 분포
-모집단이 같아도, 통계량이 표본에 따라 달라짐
-표본의 분포 vs. 표집 분포(통계량의 분포)
: 1이 3번, 2가 1번, 3이 2번 (표본의 분포) -실제로 관찰
: 표본을 계속 추출했을 때, 표본 평균 내봤는데 4.4(40%), 5.6(50%), 3.8(70%) 등으로 바뀌는 것 (표집 분포)-이론적 가능성
Q.평균을 왜 자꾸 내지?
평균말고 다른 거 (중간값 등)는 어느 정도 다르게 나올지 알 수가 없어서..
Q.데이터를 많이 모아야 하는 이유
-데이터가 많을수록 표준 오차가 작아짐
-표본의 통계량이 모수에 더 가깝게 나옴
-표준오차가 루트엔 분의 1로 줄어듦... (데이터가 많을수록 오차가 줄어드는 정도가 점점 줄어듦)
!.이런 관점은 버려야한다.
-척 보면 안다. -> 못 본 측면이 있지 않을까?
-관상은 과학이다. -> 얼굴이 계속 변하는데
-사람은 안 바뀐다. -> 보지 못한 부분이 있지 않을까?
---> 우리가 본 건 "일부분"이다.
추정
-통계량(표본)으로부터 모수를 추측하는 절차
-통계량에 따라서 추정이 달라짐...ㅠㅠ 어떻게 하면 잘 추정할 수 있을까?
점 추정 : 하나의 수치 (숫자를 하나 얘기)
구간 추정 : 어디부터 어디까지 구간으로
신뢰구간 (confidence interval) : 믿을 수 있다로 해석하면 안됨...
-대표적인 구간 추정 방법
-모수가 있을 법한 범위로 추정
-신뢰구간 = 통계량 + 오차범위, 통계량 - 오차범위
(보통 평균의 신뢰구간을 많이 구함. 이론적으로 간단히 구할 수 있어서...)
-95%신뢰구간 : 5%의 극단적인 경우는 배제한다.
ex)중고차 시장 300대 통계량(가격 평균)이 860만원이다. 10,000대 팔면 860억 될 거 같다.
아니 300대만 보고 어떻게 알지? 900만원이 될 수도 1,000만원이 될 수도 있지 않나ㅡㅡ?
그럴 때, 오차범위까지 감안해서 800만원에서 900만원 사이에 평균 가격이 형성되는 것으로 보인다.
라고 추정하는 것
신뢰수준
-내가 어느정도의 케이스를 반영할 것인가
-신뢰수준이 낮다 -> 적은 표본 -> 더 좁은 오차범위 -> 정보가 많음
ex) 수명 예측 (신뢰수준을 높이면 더 많은 다양한 가능성을 보고, 신뢰수준 낮추면 확실한 가능성 위주로)
60살까지 살 것?
90살까지 살 것?
어떤 약이 좋다고 하는데, 나쁠 수도 있어. 데이터가 부족함.
목숨이 경각에 달렸을 때는 확률이 낮아도 먹어보는 선택을
건강한 상태에서 굳이 먹을 필요 없을 때는 안 먹는 선택을.
!.신뢰수준이 100%이면 안되는 이유
-> 결정을 할 수가 없음...
#- 주행거리(mileage)의 평균의 95% 신뢰구간
pg.ttest(df.mileage, 0, confidence=.95)
#- 주행거리(mileage)의 평균의 99% 신뢰구간
pg.ttest(df.mileage, 0, confidence=.99)
#- model == 'Avante'인 경우의 가격의 평균의 95% 신뢰구간
pg.ttest(df[df.model == 'Avante'].price, 0, confidence=.95)
#- model == 'K3'인 경우의 가격의 평균의 95% 신뢰구간
pg.ttest(df[df.model == 'K3'].price, 0, confidence=.95)
->데이터가 적으면 신뢰구간이 더 넓게 측정.
부트스트래핑 (신발끈)
-서부시대 카우보이... 울타리 넘을 때 신발끈 묶고 잡고 뭐 하면 넘어간다.
-자기 혼자 북치고 장구치면서 구해진다.
-컴퓨터공학에서 booting (컴퓨터 켜기) : 프로그램 키려면 그 프로그램이 필요하고,,, 자기 스스로 키는 프로그램
-중간값, 최빈값 등의 통계량은 표집분포의 형태를 간단히 알기가 어려움
-부트스트래핑이라는 시뮬레이션 기법을 사용해서 신뢰구간을 추정함
-표본이랑 모집단이랑 비슷하다고 퉁치고, 표본에서 표본을 다시 뽑는다. 많이 뽑아보면서 오차를 구함
scipy.stats.bootstrap([df.price], np.mean)
#가격의 평균의 95% 신뢰구간
#통계 이론 : 814.1, 893.22
#부트스트랩 (시뮬레이션 돌릴때마다 값이 조금씩 다름) : 815.1, 892.5
신뢰구간에 영향을 주는 요소
-신뢰구간이 좁을수록 예측된 모수의 범위가 좁으므로 유용하다
ex) 배달 언제오나요? 5분에서 2시간 정도 걸린다 --> 의사결정에 도움이 안됨...
-표본의 변산성 낮추기
(실험과 측정을 정확히 해서 변산성을 낮춤
ex: 날씨 측정할 때, 기압을 정확히 측정한다던지)
-데이터에 내재한 변산성은 없앨 수 없음
ex) 배달 시간을 임의로 바꿀 수는 없음...
-표본의 크기를 키우기 (데이터를 많이 모으기 / 전수조사가 아니라 생기는 문제를 해결 / 가장 쉬운 방법이나 시간과 비용이 증가함)
여론조사의 표본오차(모집단과 표본의 차이) -> 오차범위(표본오차의 범위)
조사 대상이 1000명일 때,
오차범위 3.1%포인트
A당 지지율 40% (연령, 성, 지역별로 나눴을 때 한정되는 인원이 얼마 안되서... 통계량에 따라 오차범위 차이가 발생함)
Q. 신제품 개발을 위해 여론조사를 하려고 함.
대략적인 여론만 알면되기 때문에, 오차 범위가 +-10%p 정도만 되면 괜찮을 듯
여론조사를 몇 명에게 하면 될까?
인원수= (98 / 오차범위)**2
"통계적" 가설검정 (statistical hypothesis testing)
- 제일 어려움 ㅠㅠㅠㅠ 이름이 이상함
-일반적/과학적 가설검정은 "실증주의" (주장이 있으면 지지하는 근거를 가져와서 입증해라)
-통계적 가설검정 "반증주의" (미운놈을 찾아서 그거에 반대되는 근거를 찾아서 박살내는 방법...?)
-통계적 가설검정은 많은 비판이 있으나, 오랫동안 쓰여와서 여전히 많이 쓰임.
- 로날드피셔(농학자)의 홍차 사건 일화
: 브리스톨과 다툼 (홍차에 우유를 타야함) 피셔는 우유에 홍차를 타나, 홍차에 우유를 타나 구분 못한다.
: 브리스톨의 약혼남이 실험하자고 제의
: 홍차에 우유탄 거 4잔, 우유에 홍차탄 거 4잔
: 몇 잔까지 구분을 해야 정확한 건가? --> 피셔의 정확 검정 방법론을 만듦
통계적 가설 검정의 절차
- 귀무가설(없애버릴 가설)을 수립한다
- 유의수준을 결정
- p 값을 계산
- p 값과 유의수준을 비교
- p > 유의수준
: 결론을 유보 (귀무가설이 맞을 가능성도 있지만, 데이터를 더 모아서 다시 가설 검정)
: 말은 되지만 다른 가능성도 있으므로 유보
: 귀무가설을 채택하지는 않음..!
- p < 유의수준
: 귀무가설을 기각한다. (말도 안되니까 부숴버림ㅋㅋ)
: 통계적으로 유의하다라고 표현
통계적 유의함
현실적으로 유의미한 것은 아님
ex) 신약 개발하고, 약의 효과가 없다는 귀무가설을 보냈음. 효과가 있긴 있는데,,, 1억짜리 약인데 살 10g빠진거면
판매할 만큼 효과가 있냐는 것은 얘기할 수 없음
A/B테스트
-두 집단으로 나눠서 비교 (A집단, B집단)
-과학 분야에서 무작위 대조군 시험
-이중맹검 / 삼중맹검
ex) 빈곤문제 "가난한 사람들이 더 합리적으로 판단한다"
독립표본 t검정
귀무가설 : 차이가 없다. (차이=0)
single = hr[hr.marriage == 'single'].overtime
married = hr[hr.marriage == 'married'].overtime
pg.ttest(single, married)
p= 0.6183
p < 0.05
-0.72 -0.6 , -0.5, -0.4, 0, ... ,1.1 , 1.21 다 살아있으니까 귀무가설을 채택하지 않는다. (결론을 유보한다)
귀무가설이 채택될 일은 없음...
데이터가 무한히 많아서 다 재껴서, 0 혼자 살아 남아야함. (가능성이 없는 일이니까)
# 귀무가설: Avante와 K3의 평균이 같다(차이 없음)
# 기각하면 -> 차이가 있기는 있다
Avante = df[df.model == 'Avante'].price
K3 = df[df.model == 'K3'].price
pg.ttest(Avante, K3)
0.028187 < 0.05 # p < 유의수준 -> 귀무가설 기각 -> 평균에는 차이가 있다
평균 차이의 신뢰구간 -152.11 ~ -8.69
모집단에서는 Avante 평균이 많으면 152만원, 못해도 8만원은 싸다
하여간 Avante가 K3보다 싸다
'데이터 사이언스 스터디 > 통계' 카테고리의 다른 글
[데이터 분석 통계] A/B Test Summary (0) | 2024.12.11 |
---|---|
데이터분석을 위한 기초 통계3 (2) | 2024.12.11 |
데이터분석을 위한 기초 통계1 (3) | 2024.12.11 |