728x90
728x90
728x90

각 시행마다 k개의 event(mutually exclusive collectively exhaustive), 각 확률이 p_1, p_2, ..., p_k

n번의 독립시행에서 (kHn개의 가능한 조합 중) 특정 이벤트 개수 조합을 X(random vector)라 할 때 X의 분포를

Multinomial Distribution이라 한다.

(X=(X_1, X_2, ..., X_k), X_i:i번째 event가 n번 중 발생한 횟수)

 

k = 2 and n >= 2일 때 binomial distribution

k = 2 and n = 1일 때 bernoulli distribution

k >= 3 and n = 1일 때 categorical distribution

k >= 3 and n >= 2일 때 Multinomial distribution

728x90

'Math' 카테고리의 다른 글

(미완)Missing data를 어떻게 다룰 것인가  (0) 2020.10.26
[Statistics]Likelihood, MLE, MAP  (0) 2020.10.25
(미완)[Parameter Inference]Sampling based inference  (0) 2020.10.18
[Algorithm]Viterbi algorithm  (0) 2020.10.18
Proxy variable  (0) 2020.10.04
728x90

기본 용어:

Hypothesis tests(=significance tests):확인된 효과가 뽀록으로 인한건지, 레알 효과 있는건지 테스트, 가설검증

Null hypothesis:뽀록때문이다! 라는 가설

Alternative hypothesis:뽀록이 아니다!라는 가설(대개 실험자가 증명하고 싶은 가설)

One-way test:뽀록이 한방향으로? 

Two-way test:뽀록을 양방향으로 ?

 

가설검증이 필요한 이유:

예를 들어, 가격 A, B중 B가 더 순이익이 더 클것이라는 것을 입증하는 데에 있어서

"그냥 A/B testing 돌려서 B가 더 순이익이 큰 것을 확인하면 되지 않느냐?" 라는 물음을 하는 데에 배경에는

인간은 자연적으로 우연히 일어나는 행동의 범위를 과소평가하는 경향이 있다.

예를 들어 extreme events는 예상할 수 있었던 일이라고 생각하는 것처럼, 혹은 우연히 일어난 일을 유의미한 패턴을 갖고 있어 나온 결과라고 잘못 해석하는 경향이 있다.

즉, 가설검증은 이러한 우연히 발생한 것에 대한 잘못된 해석으로 바보짓을 하는 것을 막기 위함이다.

 

랜덤에 관한 오해, 직관적인 예

예를 들어 친구에게 동전 50개를 던졌다고 치고 앞/뒤 수열을 길이가 50으로 적어보라고 요청한다. (FAKE)

그리고 실제로 50번을 던진 결과를 적으라고 요청한다. (REAL)

이 때 둘 중 무엇이 REAL이고 FAKE인지 알아차리기가 쉽다.

왜냐하면 연속적으로 앞, 연속적으로 뒤가 나오는 경향이 FAKE보다 REAL이 더 잦기 때문

즉, 우리가 랜덤으로 50개를 적을 때, 랜덤처럼 보이려고 어느정도 연속적인 앞을 적고나서는 (3,4번 적고나서는)

뒤를 적으려고 한다. "랜덤처럼 보이려고"

그러한 경향을 반대로 생각하면

A폰트로 제목 썻을 때랑 B폰트로 제목 썻을 때 클릭율이 A가 10% 더 높은 상황을 생각하자면

(즉 동전 앞이 6,7번 연속으로 나온 상황을 보자면)

이건 우연이 아니라 A가 정말 더 낫다고 생각한다.

(즉 동전이 not fair이고 앞이 더 나오는 경향이 있을 것이라 생각한다.)

 

가설검증은 기본적으로 다음 로직을 따른다.

"인간은 unusual이지만 우연히 일어난 일에 대해(인간은 우연인지 모르는) 뭔가 의미있다고 해석하려는 경향이 있으니,

우연이 만들어 낼 수 있는 것 보다 더 차이를 만들어 냈는지 테스트하겠다."

따라서, null hypothesis는 treatments가 기본적으로 동일한 효과를 갖고 둘의 차이는 우연이다 라는 형태로 가정을 갖고 간다.

 

예를 들면 "B가 A보다 더 크다, 더 낫다" 형태는 One-way(or one-sided, one-tailed)

"B랑 A랑 다르다" 형태는 two-way(or two-sided, two-tailed)

실생활 예로,

"영문과 학생이 토익 성적이 더 높다"->one-way

"남자랑 여자는 토익 성적 차이가 존재한다"->two-way

"여자가 남자보다 토익 성적이 더 높다"->one-way

 

Permutation Test 방식

예를 들어 웹사이트 디자인을 A방식으로 했을 때, B방식으로 했을 때,

B방식일 때가 A방식일 때 보다 평균 체류시간이 36초 더 높았다고 하자. (Observed difference)

(B방식일 때 samples개수가 21, A방식일 때 samples개수가 15)

이 때, 총 36개의 samples을 섞어가지고 21개를 비복원추출로 뽑아서 B라고 relabel, 남은 15개를 A라고 relabel

그리고 B에서의 평균 체류시간, A에서의 평균 체류시간의 차이를 계산한다.

이 relabel부터 평균 체류시간 차이계산을 약 1000번 시뮬레이션 돌린다.

그러면 평균 체류시간 차이의 frequency distribution을 그릴 수 있고,

그 때 Observed difference보다 더 차이를 보인 simulation의 개수가 적으면 statistically significant, 많으면 not.

(즉 Observed difference보다 더 큰 차이를 보인 simulation의 개수가 전체 1000개 대비 5%이하면 B방식이 A방식보다 더 낫다고 통계적으로 유의함을 알 수 있다.)

 

Permutation Test방식의 종류(Random, Exhaustive, Bootstrap)

위의 예(예에 쓰인 방식을 Random permutation test or Randomization test라 함)에서

"samples을 섞어가지고 21개를 비복원추출로 뽑아서 B라고...남은 15개를 A라고..."

이 부분에서 B 21개, A 15개 주는 "모든 경우의 수"를 다 simulation해보는 것을 "Exhaustive permutation test"라 하고

이 부분에서 "비복원추출"을 "복원추출"로 바꿔버리면 "Bootstrap permutation test"라 한다.

즉, 복원추출로 21개의 B를 만들고 복원추출로 15개의 A를 만들고 하는 방식으로 subject들이 무슨 label로 relabel될 지도 random이지만 어떤 subject들이 쓰일 지도 random인 상황이다.

Exhaustive permutation test를 exact test라고도 함, 왜냐하면 test statistic이 n에 대한 근삿값을 활용하는 것이 아니기 때문

 

이러한 Permutation test방식의 장점은 

-easy to code, interpret, explain

-공식위주의 접근보다 나은 점은 오용하여 결과낼 가능성이 적고 data가 numeric/binary, 정규분포, sample size제한 등의 가정들을 요구하지 않는다는 점이다.

728x90
728x90

기본용어:

frequency distribution:y축은 빈도수, x축은 어떤 value

tail:frequency distribution에서 대개 x값이 아주 작거나 아주 큰 부분에서 low frequency를 보이는데, 이러한 부분을 가리킴(대개 long narrow 형태를 띔)

long-tail distribution: heavy-tailed, fat-tailed distribution이라고도 불린다. 극단적으로 큰 y값 또는 극단적으로 작은 y값이 상대적으로 더 자주 발생하는 분포를 가리킴.

skew:two tails에서 하나가 나머지 하나보다 긴 경우를 가리킴

 

highly skewed의 예:소득분포(이 경우 x축은 연봉 같은 소득 값, y축은 빈도수)

 

대부분의 data는 정규분포를 따르지 않는다. 해당 도메인에 대한 지식과 통계적인 지식을 함께 활용하여 어떠한 분포로 모델링을 해야할 지 선택해야 한다. 특히 그렇지 않는다면 extreme events가 발생할 수 있다.

즉 long-tailed 부근의 사건이 정규분포로 예상했던 것 보다 더 자주 일어날 것이다 라는 것

 

728x90
728x90

기본 용어:

Treatment:subject에게 노출될 something(약물, 뉴스제목, 가격 등)

Treatment group:특정 treatment에 노출된 집단, 실험군

Control group:standard treatment에 노출된 집단(e.g. no drug나 현재 기본적으로 사용하는 약물을 사용하는 집단), 대조군

Randomization:subjects에게 treatments를 랜덤하게 assign하는 과정

Subjects:treatments에 노출된 items(웹 방문자들, 환자들 etc)

Test statistic:특정 treatment의 효과를 measure하기 위한 metric

 

Randomization으로부터 treatment A가 B보다 낫다는 결론이 나오는 것에서

-정말 A가 B보다 낫거나

-randomization으로부터 뽀록으로 A가 B보다 좋게 나왔거나

 

대개 A/B test에서는 treatment의 효과를 확인하기 위한 metric을 binary로 쓴다면

예를 들면 click or no click, buy or don't buy 등, column에는 treatments를, row에는 metric을 사용하여 table을 작성한다.

만약, 가격A(as treatment)와 가격B, 그리고 페이지 방문당 순이익을 따지는(continuous을 metric)경우라면

Revenue/page with price A, mean:3.87, std:51.10

Revenue/page with price B, mean:4.11, std:62.98 

형태로 비교

 

Control group이 필요한 이유, 즉 "그냥 treatment A 적용하고, 적용하기 이전과 비교하면 되잖아?"라는 물음에

->control group이 없다면 "all other things are equal."이란 보장을 받기가 힘들다.

 

blind test란, subjects가 어떤 treatment를 택하는지 모르게 두는 테스트로, 이는 subject가 이것을 aware한다는 사실이 response에 영향을 줄 수 있기 때문

double-blind test란, subject뿐만 아니라 조사관, 즉 의사나 간호사 등도 subject가 어떠한 treatment를 assign받았는지 모르게 하는 테스트

treatment가 너무 명료할 때(transparent), blind test가 불가능하기도 하다.

 

Test statistic은 반드시 test전에 정해져야한다. 테스트 이후엔 일종의 편견이 생기기 마련이다.

그리고 Treatment A or B 둘 중 하나를 택해야 한다면, 결국 multiple test statistics(수집은 하되)가 아니라 single test statistic이 필요하다.

 

A/B testing, 꼭 A와 B, 2개여야만 하냐? Nope, 여러개 가능

 

 

 

 

728x90
728x90

IDA, EDA, CDA를 알아보자.

 

IDA란,

 

The most important distinction between the initial data analysis phase and the main analysis phase, is that during initial data analysis one refrains from any analysis that is aimed at answering the original research question.

특히 다음 4개의 과정을 따른다. 각 과정은 EDA/CDA에서 어떠한 analysis를 할 것이냐에 따라 선택적으로 사용

Quality of data(frequency counts, descriptive statistics(평균, 표준편차, 중앙값 등), normality(skewness, kurtosis, frequency histograms etc), 현재 데이터의 coding scheme을 다른 데이터에 쓸 수 있는지(A국가에 대한 데이터 coding scheme을 B국가에 대해서도 쓸 수 있는지) 등을 체크

(skewness는 데이터의 분포의 비대칭성을 가리킴)

(kurtosis는 데이터의 tailedness를 나타내는 수치인데, 계산식에 따라 다른 해석을 갖는다. Pearson 방식의 경우 클수록 tail이 두꺼움을 나타내며 outliers가 많이 존재함을 나타낸다.)

Quality of measurements(consistency of measurement를 측정, 예를 들면 응답자가 "자전거를 좋아한다"에 yes라고 답변하고, 이후 "자전거를 싫어한다"라는 질문에는 no라고 대답했는 지 등)

Initial transformations(missing data처리하기, variable transformations(square root transformation(정규분포와 살짝 다를 때), log-transformation(정규분포와 많이 다를 때), Inverse transformation(정규분포와 심각하게 다를 때), categorical로 만들기(정규분포와 심각하게 다르며 앞선 transformation이 도움안될 때) 등)

Randomization procedures(종속 변수 외 상당한 background 변수들이 groups마다 골고루 퍼져있는지 확인)

기타

  -dropout(설문 도중 이탈한 데이터 비율)을 확인

  -item nonresponse(설문지 중 응답하지 않음이 많은 설문 문항)을 확인

  -모집단 내 모든 group들이 sample에 존재하는 지

 

EDA란, 

In statistics, exploratory data analysis is an approach to analyzing data sets to summarize their main characteristics, often with visual methods. A statistical model can be used or not, but primarily EDA is for seeing what the data can tell us beyond the formal modeling or hypothesis testing task.

 

CDA란,

 

728x90
728x90

일반적인 Hypergeometric Distribution해석(변인이 1개)

전체 M개가 들어있는 항아리

그 중 내가 좋아하는게 n개, 좋아하지 않는게 M-n개

이 때 M개 중 k개를 비복원으로 뽑을 때 내가 좋아하는게 0,1,2,... 개가 나올 확률 분포

(이게 가장 직관적으로 이해하기 쉬운 해석)

 

 

 

근데 Fisher's exact test를 보다가 변인이 2개인 경우임에도 Hypergeometric distribution으로 해석하는데

바로 이해가 안되어서 정리한다.

 

공부하는 남자가 a명

공부하는 여자가 b명

공부안하는 남자가 c명

공부안하는 여자가 d명, 총원 n = (a+b+c+d)

따라서 남자가 a+c, 여자가 b+d, 공부하는 사람이 a+b, 공부안하는 사람이 c+d

이 때, a,b,c,d 각각을 모르고, a+c, b+d, a+b, c+d만 알 때, 공부하는 남자 수를 확률변수 X라 할 때

X의 분포는 기하 분포를 따른다.

P(X=k)

= {(a+c) choose k * (b+d) choose (a+b-k)} / n choose (a+b)  (1)

= {(a+b) choose k * (c+d) choose (a+c-k)} / n choose (a+c)  (2)

...

Hypergeometric distribution으로 해석할 때

(1)에서, n명 중 (a+b)명을 비복원으로 뽑을 때, 내가 좋아하는게(=남자) (a+c)명 중 a명 뽑는 상황

->n명에 대해서 남자(=내가 좋아하는게)로 만들고 공부하냐 안하냐는 잊고, 

n명에 대해서 (a+b)명을 뽑아 공부하는 사람으로 만들었을 때, 그 때 내가 좋아하는 게 k개 있는 것으로 해석

 

(2)에서, n명 중 a+c명을 비복원으로 뽑을 때, 내가 좋아하는게(=공부하는사람) a+b명 중 a명 뽑는 상황

->n명에 대해서 공부하는(=내가 좋아하는게)로 만들고 남자냐 여자냐는 잊고,

n명에 대해서 (a+c)명을 뽑아 남자로 만들었을 때, 그 때 내가 좋아하는 게 k개 있는 것으로 해석

 

즉, 2변인 중 한 변인으로 먼저 grouping했을 때 나머지 변인으로 분류지을 확률을 생각

 

P.S.

-n, (a+b), (a+c), (b+d), (c+d)가 주어지면, 자유도가 1인 상황이 된다.

-P(X=k)가 a,b,c,d에 대한 대칭식은 아니다. 하지만, n choose (a+b)의 (a+b) 대신 (a+c), (b+d), (c+d) 변형식 얻기 다 가능

 

728x90
728x90

둘 다 가설검증(hypothesis test)에서 쓰이는 용어이다.

 

Exact test와 Approximate test는

p-value를 구할 때 exact한 계산으로 구하냐 approximate한 계산으로 구하냐를 가리킨다.

 

주로

non-parametric이면서 p-value를 exact하게 구하거나

parametric인데도 binomial이나 Poisson분포인 경우는 exact 가능

그 외 대다수는 approximate test일 가능성이 높다.

 

예를 들면

Fisher's exact test가 exact test의 대표적인 예

chi-squared test가 approximate test의 대표적인 예

728x90

'Statistics' 카테고리의 다른 글

[Statistics] p-value, 1종 오류(type I error rate)  (0) 2020.10.03
728x90

p-value는 귀무가설(null hypothesis)이 참이라고 가정했을 때 샘플 데이터를 얻을 확률이다. 그래서 샘플링할 때마다 달라지는 확률 변수이다.

type I error rate는 p-value를 보고 null hypothesis를 기각할지 말지 정하는 확률 threshold

=significance level

=False positive rate(positive를 rejecting null hypothesis라 보고, positive라 예측했지만 실제론 negative할 확률)

=null hypothesis를 reject했지만 실제론 not reject해야할 확률

 

p-value는 실제 sampling(observed data)로 부터 결정지어지며

type I error rate는 테스트상 서로 결과를 받아들이기 위한 일종의 기준 상수이다.

다만 "~~~확률"로 불려지니까 헷갈리게 만든다.

 

예를 들면 한 동전이 fair한지 친구랑 테스트하기로 하자. 친구가 동전을 10번 던져 모두 앞면이 나와서, 친구가 "이 동전은 not fair ㅇㅈ?" 나는 "어 ㅇㅈ" 할 것 같다.

 

앞면 9번 뒷면 1번이라도 난 not fair에 ㅇㅈ할 것만 같다.

앞면 8번 뒷면 2번이면 의심이 갈 것이다. 이게 뽀록이 터져서 앞면이 더 나온게 아닐까?

물론 처음부터 앞면 10번 나와도 뽀록이라 의심할 수 있겠지만 그러기엔...

 

앞면이 10번이나 0번 나올 확률은 2/1024

앞면이 10,9,1,0번 나올 확률은 22/1024

 

즉, 22/1024, 약 0.021로 0.05보다 작다. 그래서 귀무가설(=이 동전은 fair다)를 기각한다.

앞면이 10,9,8,2,1,0번 나올 확률은 112/1024, 약 0.109로 0.05보다 크다. 그래서 귀무가설을 기각하지 않는다.

 

여기서 친구가 동전을 10번 던져서 앞면이 나온 횟수로부터 확률 구한 것이 p-value구하는 과정이고

0.05기준으로 fair냐 not fair냐 할 때, 0.05기준으로 할 것이다 하는 것이 type I error rate(=0.05)를 설정하는 과정이다.

즉 Choosing α = setting a bound on type I error

 

친구와 나는 이 동전이 fair한지 안한지에 대한 기준인 type I error rate를 먼저 결정하고 실험을 해야한다.

그리고 type I error rate를 얼마로 결정했든 p-value는 동전10번 던져진 결과에 의해 결정된다.

둘을 비교하고선 서로 정한 기준(type I error rate)에 따라 결론을 얻을 것이다(fair or not fair)

728x90

'Statistics' 카테고리의 다른 글

[Statistics] Exact test, Approximate test  (0) 2020.10.03
728x90

앞 True/False는 예측(추론)의 맞고 틀림을 가리킨다. True:예측이 맞음, False:예측이 틀림

뒤 Positive/Negative는 예측(추론)의 결과를 가리킨다. Positive:양성으로 예측, Negative:음성으로 예측

True positive:positive라 예측했고 그게 맞음(actual도 positive)

True negative:negative라 예측했고 그게 맞음(actual도 negative)

False positive:positive라 예측했지만 그게 틀림(actual은 negative)

False negative:negative라 예측했지만 그게 틀림(actual은 positive)

728x90
728x90

RNN의 종류

seq2seq:day1, day2, ..., day10 주가 넣고, day2, day3, ..., day11주가 맞추기, 한국어문장 넣고 영어 문장 맞추기 등

seq2vec:영화 리뷰 문장 넣고 감정(-1 to 1)맞추기, encoder

vec2seq:이미지 넣고(혹은 CNN 결과) 문장 맞추기(image caption), decoder

encoder-decoder:seq2vec과 vec2seq 2-step모델, 단순 seq2seq보다 나은 성능을 보임, 그도 그럴 것이,  피번역 문장의 첫 단어보고 번역어 첫단어 맞추기보단, 피번역 문장 전체보고 번역어 첫 단어 맞추는게 맞아보임

 

RNN의 학습방식, Backpropagation Through Time(BPTT) 이해하기

https://en.wikipedia.org/wiki/Backpropagation_through_time

 

Backpropagation through time - Wikipedia

From Wikipedia, the free encyclopedia Jump to navigation Jump to search Technique for training recurrent neural networks "BPTT" redirects here. For the running events originally known as the Bushy Park Time Trial, see parkrun. Backpropagation through time

en.wikipedia.org

https://m.blog.naver.com/infoefficien/221210061511

 

Lesson 1: Recurrent Neural Network - 18. Backpropagation Through Time (part b)

BPTT를 학습하기 위하여 model를 펼쳐보겠습니다. 시간의 흐름에 따른 model 전개(unfold type)는 BP...

blog.naver.com

 

728x90

+ Recent posts