Post List

레이블이 Statistics인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Statistics인 게시물을 표시합니다. 모든 게시물 표시

2025년 7월 8일 화요일

[Bayesian] 산악회 회원



산악회원의
  • 60%는 남성, 기혼은 50%
  • 40%는 여성, 기혼은 40%

회원 중 임의로 뽑은 한명이 기혼일 때, 이 회원이 여성일 확률은?


  • P(여성|기혼) = P(기혼|여성)P(여성)/P(기혼) = 0.4 * 0.4 / 0.46 = 0.139
    • P(여성) = 0.4
    • P(기혼) = 0.6*0.5 + 0.4*0.4 = 0.46
    • P(기혼|여성) = 0.4


[Bayesian] 유전 확률

[Bayesian] 카드 뽑기


문제출처: http://ncity.egloos.com/4794313
우리 앞에 위와 같이 52 장의 카드가 있고 A, B, C, D 각각이 13장씩 있다. 그리고 지금 나는 이 중 임의로 한장을 뽑으려고 한다. 그런데 마침 뽑으려는 순간 나는 모종의 방식으로 내가 미래에 뽑을 카드 몇 가지를 알아버렸다. 타키온 트랜스미터로 정보가 전달되었든, 라플라스의 악마가 귀띔을 해 줬든, 혹시 신을 믿는 사람이 있다면 신이 갑자기 심심해서 알려줬든 여하간 나는 2 번째 뽑기 부터 4번째 뽑기 까지 전부 A 가 나올 것이라고 알게 되었다. 적어도 이 문제에 나오는 사람이 사는 세계는 결정론적 세계이기 때문에 실재로 그 일은 일어날 것이다. 자 나는 지금부터 카드를 한장 뽑을 것이다. 내 앞에는 여전히 52장의 카드가 있고, 그 중 13 장이 A 이다. 내가 지금부터 뽑을 카드가 A 일 확률은 얼마일까? 1/4? 10/49?



2가지 결론
  • 알고 있는 3장을 제외하고 임의로 한 장 뽑을거면, (13-3) / (52-3) = 10/49
  • 그냥 임의로 한 장 뽑을거면, 13/52 = 1/4
  • A를 뽑을거면 100%, 2번째에서 4번째 카드를 선택할 것이니까


[Bayesian] 3연패한 과금자



게임 유저 100명이 있다.
3연패하고 과금한 사람이 이탈할 확률은?



P(이탈|3연패 and 과금) = P(3연패 and 과금|이탈)P(이탈)/P(3연패 and 과금)

* P(이탈) = 0.7
* P(3연패 and 과금) = 0.1
* P(3연패 and 과금|이탈) = 0.05
* P(이탈|3연패 and 과금) = 0.05 * 0.7 / 0.1 = 0.35


[Bayesian] 쿠키문제




그릇1에는 바닐라쿠키 30개와 초코쿠키 10개가 들어있고, 그릇2에는 바닐라쿠키와 초코쿠키가 각각 20개씩 들어 있다. 임의로 쿠키를 집었는데 바닐라 쿠키였다. 그릇1에서 나왔을 가능성은?

  • P(그릇1|바닐라쿠키) = P(바닐라쿠키|그릇1)P(그릇1) / P(바닐라쿠키) = 0.75 * 0.5 / 0.625 = 0.6
    • P(바닐라쿠키) = 50/80
    • P(그릇1) = 40/80
    • P(바닐라쿠키|그릇1) = 30/40

R code
prior <- c(0.5, 0.5)
names(prior) <- c("Bowl1", "Bowl2")
Bowl1 <- c(30, 10)
Bowl2 <- c(20, 20)
names(Bowl1) <- c("B", "C")
names(Bowl2) <- c("B", "C")

Lik <- c(Bowl1["B"]/sum(Bowl1), Bowl2["B"]/sum(Bowl2))
names(Lik) <- c("Bowl1", "Bowl2")

p1 <- (Lik["Bowl1"] * prior["Bowl1"]) / ((Bowl1["B"] + Bowl2["B"]) / sum(Bowl1 + Bowl2))
p2 <- (Lik["Bowl2"] * prior["Bowl2"]) / ((Bowl1["B"] + Bowl2["B"]) / sum(Bowl1 + Bowl2))
posterior <- c(p1, p2)
names(posterior) <- c("Bowl1", "Bowl2")

print(posterior)



[Bayesian] 베이즈 정리

Contents

1 정의
2 약간 다르게1
3 약간 다르게2
4 약간 다르게3
5 예제: 흡연율 조사
6 참고자료



1 정의 #

  • 두 확률 변수의 사전 확률(prior probability)와 사후 확률(posterior probability)사이의 관계를 나태는 정리

  • 새로운 자료가 제시되면 사후 확률을 갱신함.


원인(C), 결과(R) 일 때,
  • P(C) - 원인이 발생할 확률, 사전 확률
  • P(R|C) - 원인 C가 발생했을 때, 결과 R이 될 확률, 우도(likelihood)
  • P(C|R) - 결과 R이 발생했을 때, 원인 C가 될 확률, 사후 확률

베이즈 정리
  • 사전 확률 P(C)와 우도 P(R|C)를 알면 사후 확률 P(C|R)을 알 수 있다
  • 사전 확률 P(C)와 사후 확률 P(C|R)를 알면 우도 P(R|C)을 알 수 있다

2 약간 다르게1 #

P(H|D) = P(D|H)P(H) / P(D)
  • 데이터 D의 관점에서 봤을 때, 가설 H의 확률을 수정해 준다.
  • P(H): 사전 확률
  • P(H|D): 사후 확률
  • P(D|H): 우도
  • P(D): 한정 상수


3 약간 다르게2 #

P(T|E) = P(E|T)P(T) / P(E)
  • P(T): 이론
  • P(T|E): 사후 확률
  • P(E|T): 이론이 이랬는데, 실험에서는 이랬다.
  • P(E): 실험

ex) 100번 동전을 던졌는데, 70번 앞면이 나왔다. 이론상 앞면이 나올 확률은 0.5다.

P(T=0.5|E=0.7) = P(E=0.7|T=0.5)P(T=0.5) / P(E=0.7)

4 약간 다르게3 #

P(H|E) = P(E|H)P(H) / (P(E|H)P(H) + P(E|~H)P(~H))

  • P(H): 가설이 참일 확률
  • P(~H): 가설이 거짓일 확률
  • P(E|~H): 가설이 거짓일 경우 이 증거가 참일 확률
  • P(E|H): 가설이 참일 경우 이 증거가 실현될 확률

5 예제: 흡연율 조사 #

통계청의 자료를 보니 청소년 남자의 흡연율은 50%이고, 여자의 경우 25%(실제는 안 그렇다)였다. A고등학교에서 학생 주임 선생님이 흡연율을 조사하려고 한다. 2학년 1반에 30명이 있다. 남자는 20명, 여자는 10명이다. 메모지를 나눠주고 성별과 흡연여부를 물었다.

흡연의 사전 확률
  • 남자 = 50%
  • 여자 = 25%

메모지를 거둬 펼쳐았는데 다음과 같은 결과가 나왔다.
  • 남자, 흡연 = 18명 (18/30, 60%)
  • 여자, 흡연 = 10명 (10/20, 50%)

사후 확률은
흡연 비흡연
남자 0.5*0.6 0.5*0.4
여자 0.3*0.5 0.7*0.5

다음과 같이 계산된다.
흡연 비흡연 합계
남자 0.3 0.2 0.5
여자 0.15 0.35 0.5

흡연 비흡연 합계
남자 0.3/0.5 0.2/0.5 0.5
여자 0.15/0.5 0.35/0.5 0.5

첫 데이터를 받아 보고 계산된 사후 확률이다.
흡연 비흡연 합계
남자 0.6 0.4 1.0
여자 0.3 0.7 1.0

학생 주임 선생님은 아직도 흡연율이 남자가 50%, 여자가 25%라고 생각할까?
조금은 선생님의 생각이 바뀌어 있을 것이다.

이제 2학년 2반으로 가서 다시 메모지를 나눠주고 흡연여부를 조사하자.
단, 2학년 2반의 사전 확률은 2학년 1반 데이터가 반영된 다음이 사전 확률이다.

흡연 비흡연
남자 0.6 0.4
여자 0.3 0.7

나 같으면, 그냥 남자는 60%, 여자는 50% 흡연한다고 생각할텐데..
엇.. 통계청의 자료가 없을 때 이것이 사전확률이겠군.


[Bayesian] 3연패


P(이탈|3연패) = P(3연패|이탈)P(이탈) / P(3연패)


레이싱 게임이 있다. 이 게임에 오늘 신규가입자가 100명이다. 이들 100명이 3연패시 이탈할 확률은?
  • P(이탈): 신규가입자들의 1일차 잔존율은 0.5(50%) 다.
  • P(3연패): 3연패할 확률은 승률 0.5라 가정했을 때에 0.5 * 0.5 * 0.5 = 0.125 다.
  • P(3연패|이탈): 이탈했는데 3연패한 확률은 0.2 다.
  • P(이탈|3연패): 3연패했는데 이탈할 확률, (0.2 * 0.5) / 0.125 = 0.8



[Bayesian] 정신병 진단도구



정신병 진단 도구가 있다. 진단 도구의 성능은 다음과 같다.


        진단
검사결과 정상인 정신병환자
    양성     10        374
    음성    680         14

검사 결과 양성일 때에 진짜로 정신병일 확률은?

  • P(정신병환자|양성) = P(양성|정신병환자)P(정신병환자) / P(양성) 또는
  • P(정신병환자|양성) = P(양성|정신병환자)P(정신병환자) / P(양성|정신병환자)P(정신병환자) + P(양성|정상인)P(정상인)

  • P(양성|정신병환자) = 374 / (374+14) = 0.9639175 --> 민감도
  • P(양성|정상인) = 10 / (680 + 10) = 0.01449275 --> 1-특이도
  • P(정신병환자) = ? --> 실제 정신병 환자가 얼마의 확률인지는 모른다.
  • P(정상인) = ? --> P(정신병환자) 또는 P(정상인) 둘 중에 하나만 알아도 된다.

정신병에 걸릴 확률을 가정해야 한다. 여기에서는 0.01 ~ 0.1까지 가정해 보자.
#민감도
sensitivity <- 374 / (374+14)

#특이도
speccificity <- 680 / (680 + 10)

#정신병에 걸리 확률(유병율)
r <- seq(0, 0.1, 0.01)

y <- (sensitivity * r) / (sensitivity*r + (1-speccificity)*(1-r))
plot(r, y)
text(r, y, paste0("(", r, ", ", round(y, 2), ")"), cex=0.8, pos=4, col="red")
1.png

결과를 보면,
  • 정신병에 걸릴 확률이 1%(0.01)인 경우 40% 정도이며, 5%만 되도 거의 80%다.
  • 정신병에 걸릴 확률에 따라 진단 결과가 맞았는지 틀렸는지 확신할 수 있는 정도가 매우 다르다.
  • 진단 도구의 성능은 매우 좋은 편이다.


[Bayesian] 공장의 불량품


문제출처: http://blog.cyworld.com/lunavampire/3725225
--> 링크의 숫자가 잘못됬다. 어찌되었건 구 공장일 확률이 높다.




신공장의 생산량: 60%
구공장의 생산량: 40%
구공장의 불량품 생산량은 신공장의 2배 --> 대수적으로 하면 어려우니 .. 신공장의 불량은 10%, 구공장의 불량은 20%로 하자.


불량품인 경우 어느 공장에서?

  • P(신공장|불량) = P(불량|신공장)P(신공장) / P(불량품) = 0.1*0.6/0.14 = 0.4285714
    • P(신공장) = 0.6
    • P(불량) = 0.6 * 0.1 + 0.4 * 0.2 = 0.14
    • P(불량|신공장) = 0.1


  • P(구공장|불량) = P(불량|구공장)P(구공장) / P(불량품) = 0.2*0.4/0.14 = 0.5714286
    • P(구공장) = 0.4
    • P(불량) = 0.6 * 0.1 + 0.4 * 0.2 = 0.14
    • P(불량|구공장) = 0.2


[Bayesian] 기침과 감기


기침을 하면 감기걸린건가?
  • 겨울에 이 지역 주민의 15%가 감기에 걸림

  • 일반적으로 감기 걸리면 50%는 기침을 함

  • 지역 주민 20%는 감기와 상관없이 기침을 함

풀이
  • P(감기) = 0.15
  • P(기침|감기) = 0.5
  • P(기침) = 0.2
  • P(감기|기침) = P(기침|감기)P(감기) / P(기침) = 0.5 * 0.15/0.2 = 0.375

문제 출처: http://contents.hufs.ac.kr/comm/vod_view.asp?idx=3380


[Bayesian] 몬티 홀 문제(monty hall problem)


몬티 홀 문제는 조건부 확률에 대한 유명한 예다. 네이버나 구글에서 검색을 하면 친절한(?) 설명들이 많다. 문제는 다음과 같다.


문 3개가 있다. (각각의 문은 A, B, C 라고 적혀 있다고 생각해 보자)
문 뒤에는 염소 또는 자동차가 있다. 염소는 2마리, 자동차는 1대가 배치되어 있다.
당신이 선택한 문 뒤에는 것은 당신의 소유가 되는 기회를 얻었다.

당신은 문 1개를 골랐다.
이 때, 염소가 있는 다른 한개의 문을 열어 당신에게 보여줬다.
당신은 선택한 문을 바꿀것인가?

어려운 문제다. 얼핏 생각하면 문 3개 중에 자동차가 있을 확률은 1/3이다. 1/3이란 확률은 위의 문제를 무한 반복했을 때에 나타날 수 있는 확률이다. 하지만 이런 생각은 빈도주의적 접근(frequentist approach)이다. 빈도주의적 접근은 '무한 반복 시행'을 가정으로 한다. 이렇게도 생각 할 수 있다.

  • A에 자동차가 있는데 선택을 바꿀 경우 -> 후회
  • A에 자동차가 없는데 선택을 바꿀 경우 -> 만족

'만족'할 확률 1/2. 이것도 '무한 반복' 시행 했을 때의 확률이다. 그러므로 빈도주의적 접근을 하면 어떤 선택을 하던지 같은 확률이므로 굳이 선택을 바꾸는 수고를 하지 않아도 된다. 하지만, 위 문제를 다시 보자. 어디에도 무한 반복이나 확률 분포를 추정할 수 있을 만큼의 충분한 시행이라는 내용은 없다. 이런 기회가 인생에 몇 번이나 오겠는가? 많아야 한 두번일 것이다. 빈도주의적 접근에서의 가정(assumption)이 현실과는 매우 다름을 알 수 있다.

베이즈주의 접근(bayesian approach)을 해보자. 당신은 문 A를 선택했다. 그럼 A에 자동차가 있을 확률이 높은가? 아니면 B 또는 C에 자동차가 있을 확률이 높은가? 당연히 B 또는 C에 자동차가 있을 확률이 높다. 그런데 내가 선택한 문 A를 열기도 전에 친절하게도 B, C 중에 염소가 있는 문 1개를 더 열어서 보여주고 선택을 바꿀 기회도 주는 것이 아닌가! 선택을 바꾸면 자동차가 당신의 소유가 될 확률이 높아진 것이다. 정리하자면..

  • A에 자동차가 있을 확률: 1/3
  • B 또는 C에 자동차가 있을 확률: 2/3
    • B를 열어서 염소가 있음을 보여줬다면 C에 자동차가 있을 확률은 2/3
    • C를 열어서 염소가 있음을 보여줬다면 B에 자동차가 있을 확률은 2/3

monty_hall.png

만약 당신이 '합리적'이라면 주어진 조건에서 가장 확률이 높은 선택을 해야 한다. '이성'을 가진 인간이니 우리는 선택을 바꾸어야 한다. 하지만, A에 자동차가 있을 수도 있다는 불안감은 없앨 수 없다. 왜냐하면 '감성'도 가진 인간이니까.

자, 당신은 선택을 바꿀 것인가?
(개인적으로는 이런 짜증나는 기회가 없었으면 좋겠다)

이런 생각도 해 볼 수 있다.

이건희(삼성전자 회장)와 만수르(아부다비 왕가의 석유 재벌), 이재학(가난한 글쓴이)는 베이지안이다. 이 세 명은 몬티 홀 문제를 접했다. 문 뒤에는 쉐보레 스파크(경차) 1대와 염소 2마리가 배치되어 있다. 이들이 선택을 바꿀까? 쩝.. 이건희와 만수르는 염소를 더 갖고 싶어 할지도 모른다.

2014.11.12 추가
몬티 홀 문제는 그 자체도 문제다. 왜냐하면 어쨌든 선택은 두 개 중에 하나이니까.
문제를 이렇게 냈어야 한다.

1번: A를 선택할래? 1/3 확률
2번: 아니면 B,C를 선택할래? 2/3확률

인간이 합리적이라면 2/3확률을 선택해야 한다. 그런데도 불구하고 1/3쪽 확률을 택하는 사람도 많을 것이다. 왜냐하면 1/3과 2/3의 차이가 별로 안나기 때문일 것이다. 아마도 66%의 확률은 그리 높은 것은 아닐수도 있고, 합리적으로 선택했지만 결과적으로 잘못된 선택이라면 인지부조화(우리의 신념 간에 또는 신념과 실제로 보는 것 간에 불일치나 비일관성이 있을 때 생기는 것, 네이버 실험심리학용어사전)로 우리는 괴로울 것을 알기 때문일 것이다.

만약 1/4과 3/4라면어떨까? 만약 1/5과 4/5 라면? 1/n, (n-1)/n 이렇게 계속 숫자를 늘려나가면 2번쪽으로 선택이 쏠릴 것이다. n이 100이라도 1번을 선택하는 사람이 있을 것이다. 인간은 알 수 없다는 사실만 알 수 있다.



[Bayesian] 조건부 확률


다음과 같이 집합A,B가 있다.


ab.png


사건 B가 발생했을 때 A가 발생할 확률을 구하는 게 문제다. 여기서 '사건 B가 발생했을 때'라는 조건이 붙었다. 다음과 같이 표기한다.

P(A|B)

이 식을 위 그림을 보며 풀어보자.

P(A|B) = P(A∩B) / P(B)
P(A∩B) = P(A|B)·P(B)

라고 쓸 수 있다. 그럼 P(B|A)는 어떻게 쓸 수 있나?

P(B|A) = P(A∩B) / P(A)
P(A∩B) = P(B|A)·P(A)

와 같이 된다. 그러므로

P(A|B) = P(A∩B) / P(B)
P(A|B) = P(B|A)·P(A) / P(B)

의 공식이 도출된다.


2025년 6월 13일 금요일

검정력(power)

Contents

1 검정력이란?
2 검정력 파라미터
3 예제1: 표본수
4 예제2: 그룹이 3개인 경우 샘플수
5 예제3: 비율
6 예제4: 효과크기에 따른 표본수



1 검정력이란? #

  • 특정 표본에서 유의한 결과를 얻을 가능성

  • 실험을 100번 했고, 80번 유의한 결과를 얻었다면 검정력은 80% (귀무가설이 거짓일 때)


2 검정력 파라미터 #

검정력 = f(표본크기, 산포, 효과크기)
  • 표본크기가 클수록 검정력이 커진다.
  • 산포(분산 or 표준편차)가 좁을수록 검정력이 커진다.
  • 효과크기가 클수록 검정력이 커진다.

3 예제1: 표본수 #

  • 기각하고자 하는 차이가 2
  • 표준편차는 5
  • 검정력 80% 이상
인 경우 샘플은 몇 개 필요한가?

#install.packages("pwr")
library(pwr)

차이 <- 2
표준편차 <- 5
검정력 <- 0.8
power.t.test(delta = 차이, sd = 표준편차, power = 검정력, type = 'paired')

결과
> power.t.test(delta = 차이, sd = 표준편차, power = 검정력, type = 'paired')

     Paired t test power calculation 

              n = 51.00957
          delta = 2
             sd = 5
      sig.level = 0.05
          power = 0.8
    alternative = two.sided

NOTE: n is number of *pairs*, sd is std.dev. of *differences* within pairs
  • 52개 필요하다.

4 예제2: 그룹이 3개인 경우 샘플수 #

  • 3개 그룹에 대한 비교
  • 그룹간 분산 3
  • 그룹내 분산 2
  • 검정력 80% 이상
인 경우


그룹 <- 3
그룹간분산 <- 3
그룹내분산 <- 2
검정력 <- 0.8
power.anova.test(groups = 그룹, between.var = 그룹간분산, within.var = 그룹내분산, power = 검정력)

결과
> power.anova.test(groups = 그룹, between.var = 그룹간분산, within.var = 그룹내분산, power = 검정력)

     Balanced one-way analysis of variance power calculation 

         groups = 3
              n = 4.38143
    between.var = 3
     within.var = 2
      sig.level = 0.05
          power = 0.8

NOTE: n is number in each group
  • 그룹당 5개 샘플이 필요하다.

5 예제3: 비율 #

  • 그룹1은 0.25
  • 그룹2는 0.5
  • 검정력 80%

그룹1 <- 0.25
그룹2 <- 0.5
검정력 <- 0.8
power.prop.test(p1 = 그룹1, p2 = 그룹2, power = 검정력)

결과
> power.prop.test(p1 = 그룹1, p2 = 그룹2, power = 검정력)

     Two-sample comparison of proportions power calculation 

              n = 57.67344
             p1 = 0.25
             p2 = 0.5
      sig.level = 0.05
          power = 0.8
    alternative = two.sided

NOTE: n is number in *each* group
  • 각 그룹당 58개의 샘플 필요

6 예제4: 효과크기에 따른 표본수 #

m1 <- 25 #그룹1의 평균
sd1 <-5 #그룹1의 표준편차
n1 <- 20 #그룹1의 표본수

m2 <- 31 #그룹2의 평균
sd2 <-5 #그룹2의 표준편차
n2 <- 21 #그룹2의 표본수

d <- abs((m1 - m2) / sqrt(((n1-1) * sd1^ 2 + (n2-1) * sd2^2) / (n1 + n2 - 2)))
d #효과크기

pwr.t.test(d=d,power=.8,sig.level=.05,type="two.sample",alternative="two.sided")

결과
> pwr.t.test(d=d,power=.8,sig.level=.05,type="two.sample",alternative="two.sided")

     Two-sample t test power calculation 

              n = 11.94226
              d = 1.2
      sig.level = 0.05
          power = 0.8
    alternative = two.sided

NOTE: n is number in *each* group

데이터 분석


데이터 분석이란, 어떤 데이터를 여러 요소로 쪼개어 보고, 요소들끼리의 관계를 파악하여, 데이터가 어떻게 만들어졌는지 종합하여 이해하는 행위를 말합니다.
이해는 데이터 분석의 목적이죠.



예를 들어, 평소에는 매출액이 50만 원인데 오늘은 어찌된 일인지 매출액이 100만 원이나 되었습니다.
매우 희귀한 일입니다.

왜 매출액이 100만 원이나 발생했는지 상품별로 쪼개어 봤더니 단팥빵의 매출이 크게 늘었던 것입니다.
담당자에게 물어보니 어떤 동호회에서 야휴회 간다고 대량 주문을 했던 것입니다.

이제 왜 매출액이 100만 원이라는 숫자가 되었는지 이해하게 되었습니다.
데이터 분석을 통해서 말이죠.

그럼 무엇을 어느 정도 상세하게 쪼개어 봐야 할까요?
많은 경우 내가 이해하려는 데이터가 어떤 변수들에 영향을 받았는지 알기는 쉽지 않습니다.
또한 얼마나 깊게 쪼개어봐야 하는지도 애매모호하죠.
이런 경우 다음과 같은 방법으로 데이터를 탐색합니다.


일단 비지니스에 대한 이해를 해야 겠죠. 나름대로의 비지니스 모델을 만들어야 합니다.
변수들을 나열하고, 분산을 봅니다.
분산이 크지 않은 변수들은 분석에서 제외합니다.
그리고 분산이 큰 변수들을 분산이 작아질때까지 쪼개어 보면 됩니다.

분석하려는 데이터 셋의 분산이 크다면 그 데이터 셋은 정보를 많이 가지고 있는 것입니다. (= 엔트로피가 높다 = 복잡하다)
즉, 분석을 해 볼만하다는 이야기죠.
분산이 크지 않다면 데이터들이 비슷비슷 고만고만하단 얘기입니다.
즉, 예측 가능하단 얘기 입니다.

정규분포를 가정했을 때 평균=100, 표준편차=1이라면 거의 대부분의 데이터는 100에 가까운 수치란 얘기입니다.
이런 경우 분석할 필요가 없죠. 왜냐하면 거의 비슷하게 예측 가능하기 때문입니다. 예측 가능하단 소리는 이해했다는 말로 해석할 수 있지요.
하지만, 표준편차가=1000이라면 거의 대부분의 데이터는 -1900 ~ 2000 사이에 넓게 분포되어 있어 예측하기 어렵습니다.
예측하기 어렵단 얘기는 이해할 수 없단 얘기이고, 이해 할 수 없다면 분석해야죠.




대표값과 편차


대표값은 중심경함치다.평균, 중앙값, 최빈값이 있다.
편차는 대표값과의 차이다. 절대평균편차, 분산이 있다.



편차 = 대표값 - 값
값이 n개가 있으면 편차의 합은 0이다.
그래서 편차에 절대값을 취하거나 제곱을 한다.

편차가 자료의 분포를 잘 설명하려면 절대평균편차, 분산 중에 어떤 것을 사용해야 할까?
그것은 (편차 = 대표값 - 값)이기 때문에 대표값을 무엇으로 사용하느냐에 따라 다르다.
결론적으로 절대평균편차는 대표값이 중앙값일때 가장 작고, 분산은 대표값이 평균일 때 가장 작다.
즉, 대표값이 무엇이냐에 따라 자료가 얼마나 퍼져 있는지 적절하게 말해주는 편차는 다른 것이다.

예를 들어,

x = {1,4,9,16,25}

대표값에 1,2,3,..., 25까지 넣어 절대평균편차와 분산을 각각 구해봐라.
어떤 값에서 가장 작은 값을 나타내는지..


조사 결과를 믿기 전에 물어야 할 질문들


  • 누가 조사를 수행하였는가? 전문적인 표본조사 회사를 고용해야 함

  • 무엇이 모집단이었는가? 누구의 의견을 알고자 한 것인가?

  • 표본은 어떻게 선택되었는가? 임의로 추출된 표본인가?

  • 표본 크기는 얼마인가? 오차를 생각하자
  • 응답률[1]은 얼마인가? 응답률이 저조하면 결과를 의심해봐야 한다.
  • 실험대상들은 어떻게 접촉했나? 전화? 우편? 개별인터뷰?
  • 조사는 언제 수행되었나? 사건 직후에 조사하여 그 사건에 대한 의견에 영향을 주지 않았는가?
  • 질문이 정확하게 무엇을 묻고 있는가?

--출처: 저자 David S. Moore, William I. Notz|역자 심규박, 조태경, 신미영|홍릉과학출판사 |2009.09.01

숫자들의 의미


  • 어떻게 자료가 산출되었는가?
  • 무엇이 정확하게 측정되었는가?





  • -- 논쟁거리로 배우는 통계학 | DAVID S. MOORE , WILLIAM I. NOTZ 지음 | 심규박, 조태경, 신미영 옮김 | 홍릉과학출판사 | 2009년 09월 01일 출간

    주의사항

    Contents

    1 데이터
    2 모델
    3 인식
    4 기타



    통계 & 머신러닝 할 때의 선배들의 그리고 내 경험의 기록


    1 데이터 #

    • 데이터를 모으는 일은 비용이 든다. (저렴하지 않다)
    • 대표성 있는 데이터(샘플)가 중요하다. (데이터가 많아도 대표성이 없으면 안 된다)
    • 알고리즘과 데이터 모두 중요하다. (알고리즘 만으로는 한계가 있다)
    • 충분한 데이터가 주어지면 문제 해결할 가능성이 높아진다.
    • 데이터 품질이 결과에 큰 영향을 끼친다.
    • 단순이 양이 많은 데이터보다는 특징을 잘 표현할 수 있는 다양하고 많은 데이터가 중요

    2 모델 #

    • 오버피팅 문제(개인적인 경험, 게시판의 몇 개의 글들) -> 항상 경계해야 한다.
    • 테스트 셋에 대한 컨닝 금지
    • 가정에 대한 검사가 필요하다. 네가 당연하게 생각한 그게 아닐 수도 있다.
    • 가능하다면 이해 할 수 있는 모델이 좋다.
    • 시각화 가능한 모델이 좋다.
    • 게임 데이터는 매니폴드 가정 (게임 데이터는 고차원에 맵핑되어 있다)
      • 게임의 제약 사항들이 그렇다.
      • 퀘스트 결과 데이터와 채팅 데이터는 자유도가 다르다. (채팅 데이터는 자유도가 높다)

    3 인식 #

    • 머신러닝은 도깨비 방망이가 아니다.
    • 이름만 그럴싸하고 결과는 없거나 별로인 것으로 인식되고 있다. -> 최근(2019년 2월)들어 이런 소리를 많이 들었다.
    • 파이썬, R, 딥러닝.. 이런 것은 중요치 않다. 목적이 무엇인지 명확히 하고, 그 목적을 달성하는 것이 중요

    4 기타 #

    • feature들의 스케일이 많이 다르면 알고리즘들이 잘 안 먹힌다. (min-max 스케일링이 많이 쓰인다)
    • confusion matrix의 정확도만 봐서는 안 된다.


    2025년 6월 12일 목요일

    변수와 언어의 한계


    전산화는 현실 세계를 추상화해서 컴퓨터 세계로 옮기는 것을 말한다.
    이런 추상화는 언어의 표현력에 제한 받는다.
    즉, 컴퓨터 세계로 옮겼을 때 정보가 손실된다.




    동물DB를 구축한다면,
    고양이A는 발이 4개고, 키 30cm, 몸무게 3kg, ..
    이렇게 표현될 것이다.
    그런데, 사진은 어떠한가? 굉장히 상세히 표현하고 있다.

    같은 고양이A를 발이 4개고, 키 30cm, 몸무게 3kg, ..데이터로 인식할 때와
    사진으로 인식할 때 어떤 데이터를 사용하는 것이 더 잘 인식할 수 있을까?
    당연히 사진일 것이다. 사진이 정보가 많기 때문이다. (언어의 해상도보다 사진의 해상도가 높다)

    데이터 다음이 인식하는 방법(알고리즘)에 대한 문제다.
    고양이A를 발이 4개고, 키 30cm, 몸무게 3kg, ..데이터로 아무리 딥러닝 해봐야 의사결정나무와 별 차이가 없다.
    왜냐면 정보가 적기 때문이다.
    그러나 사진으로 딥러닝하는 것과 의사결정나무로 인식하는 것은 큰 차이가 있다.
    딥러닝의 레이어를 많이 두면 레이어별 많은 표현을 인식하고 추상화한다.

    중심 극한 정리(central limit theorem, CLT)


    모집단이 있다.
    모집단의 분포가 어떤 모양이든지 상관없다.
    샘플링을 하여 샘플의 평균을 내보자. 이짓을 겁나게 많이 반복하면 샘플들의 평균들이 나온다.
    이 평균들의 분포는 정규분포다.




    대략 이런 느낌..
    x <- rnorm(10000, mean=100, sd=10)
    x <- c(x, rnorm(10000, mean=70, sd=10))
    
    mu <- c()
    for(i in 1:1000){
      mu <- c(mu, mean(sample(x, 4)))
    }
    
    par(mfrow=c(1,2))
    hist(x, main="모집단")
    hist(mu, main="중심극한정리")
    par(mfrow=c(1,1))
    
    clt.png