-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathab-test-frequentist-statistical-analysis.html
504 lines (368 loc) · 40.9 KB
/
ab-test-frequentist-statistical-analysis.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
<!DOCTYPE html>
<html lang="ko"><head>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-E4YBHG63E3"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-E4YBHG63E3');
</script>
<!-- Meta Tag for Basic Setting -->
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="locale" content="ko_KR">
<meta name="google-site-verification" content="Q1Gkv54gFGh2MxaT7ehKmua6BROtBIJR_ki_z_1_EwE" />
<meta name="naver-site-verification" content="d9a8213816d39cd0b58123c579fb50704ab632a8"/>
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="theme-color" content="#ffffff">
<meta name="mobile-web-app-capable" content="yes">
<meta name="referrer" content="always"><meta property="og:title" content="그 AB 테스트 결과는 우연일지도 모릅니다. | 매거진 입맛">
<meta property="og:url" content="https://dewberry9.github.io/ab-test-frequentist-statistical-analysis">
<meta property="og:type" content="article">
<meta property="og:site_name" content="매거진 입맛">
<meta property="og:description" content="통계적 유의성, p값, 신뢰구간, Z 점수…. 무슨 말일까요? AB 테스트 결과를 분석하는 빈도주의 통계적 가설 감정에 대해 알아봅니다.">
<meta property="og:image" content='https://dewberry9.github.io/assets/images/design/ab-test-frequentist-statistical-analysis/00.jpg'>
<meta name="by" content="이준환"><meta name="twitter:title" content="그 AB 테스트 결과는 우연일지도 모릅니다. | 매거진 입맛">
<meta name="twitter:description" content="통계적 유의성, p값, 신뢰구간, Z 점수…. 무슨 말일까요? AB 테스트 결과를 분석하는 빈도주의 통계적 가설 감정에 대해 알아봅니다.">
<meta name="twitter:image" content='https://dewberry9.github.io/assets/images/design/ab-test-frequentist-statistical-analysis/00.jpg'>
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:url" content="https://dewberry9.github.io/ab-test-frequentist-statistical-analysis">
<meta name="twitter:site" content="매거진 입맛">
<meta name="twitter:label1" content="Category">
<meta name="twitter:data1" content="">
<meta name="twitter:label2" content="Topic">
<meta name="twitter:data2" content="A/B 테스트">
<!-- Other Basic Meta Tag -->
<meta name="title" content="그 AB 테스트 결과는 우연일지도 모릅니다. | 매거진 입맛">
<meta name="description" content="통계적 유의성, p값, 신뢰구간, Z 점수…. 무슨 말일까요? AB 테스트 결과를 분석하는 빈도주의 통계적 가설 감정에 대해 알아봅니다.">
<meta name="author" content="이준환">
<meta name="article:media_name" content="매거진 입맛">
<meta property="article:mobile_url" content="https://dewberry9.github.io/ab-test-frequentist-statistical-analysis">
<meta property="article:pc_url" content="https://dewberry9.github.io/ab-test-frequentist-statistical-analysis">
<meta property="article:mobile_view_url" content="https://dewberry9.github.io/ab-test-frequentist-statistical-analysis">
<meta property="article:pc_view_url" content="https://dewberry9.github.io/ab-test-frequentist-statistical-analysis">
<meta property="article:talk_channel_view_url" content="https://dewberry9.github.io/ab-test-frequentist-statistical-analysis">
<meta property="article:pc_service_home" content="https://dewberry9.github.io">
<meta property="article:mobile_service_home" content="https://dewberry9.github.io">
<!-- Post Date Tag -->
<meta property="article:published_time" content="2021-09-13T00:00:00+09:00">
<meta property="article:modified_time" content="2021-09-13T00:00:00+09:00">
<meta property="og:regDate" content="20210913000000">
<script type="application/ld+json">
{
"@context":"https://schema.org/",
"@type":"BlogPosting",
"mainEntityOfPage":{
"@id":"https://dewberry9.github.io/ab-test-frequentist-statistical-analysis"
},
"url":"https://dewberry9.github.io/ab-test-frequentist-statistical-analysis",
"headline":"그 AB 테스트 결과는 우연일지도 모릅니다. | 매거진 입맛",
"description":"통계적 유의성, p값, 신뢰구간, Z 점수…. 무슨 말일까요? AB 테스트 결과를 분석하는 빈도주의 통계적 가설 감정에 대해 알아봅니다.",
"author":{
"@type":"Person",
"name":"이준환",
"url":"https://dewberry9.github.io",
"email":"[email protected]"
},
"publisher":{
"@type":"Organization",
"name":"매거진 입맛",
"logo":{
"@type":"ImageObject",
"url":"https://dewberry9.github.io/assets/images/logo.png"
},
"url":"https://dewberry9.github.io",
"email":"[email protected]"
},
"image":{
"@type":"ImageObject",
"url":"https://dewberry9.github.io/assets/images/design/ab-test-frequentist-statistical-analysis/00.jpg"
},
"datePublished":"2021-09-13T00:00:00+09:00",
"dateModified":"2021-09-13T00:00:00+09:00"
}
</script><!-- Fonts -->
<link rel="stylesheet preload prefetch" as="style" crossorigin href="https://cdn.jsdelivr.net/gh/orioncactus/[email protected]/dist/web/static/pretendard-dynamic-subset.css" />
<link rel="stylesheet preload prefetch" type='text/css' as="style" crossorigin href='/assets/fonts/stylesheet.css'>
<!-- Favicons -->
<link rel="apple-touch-icon" sizes="180x180" href='/assets/favicons/apple-touch-icon.png'>
<link rel="icon" type="image/png" sizes="32x32" href='/assets/favicons/favicon-32x32.png'>
<link rel="icon" type="image/png" sizes="16x16" href='/assets/favicons/favicon-16x16.png'>
<link rel="mask-icon" href='/assets/favicons/safari-pinned-tab.svg' color="#363059">
<link rel="manifest" href="/manifest.json">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="msapplication-TileColor" content="#da532c">
<link rel="stylesheet preload prefetch" as="style" type="text/css" href='/assets/post.css'>
<link rel="dns-prefetch" href="https://res.cloudinary.com"><!-- ETC -->
<link rel="canonical" href="https://dewberry9.github.io/ab-test-frequentist-statistical-analysis">
<link rel="alternate" href="https://dewberry9.github.io/feed.xml" type="application/atom+xml" title="Atom 0.3">
<title>그 AB 테스트 결과는 우연일지도 모릅니다. | 매거진 입맛</title>
<script data-ad-client="ca-pub-7525347021497850" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
</head><body>
<header class="top-nav" id="nav">
<nav>
<a href="/" title="Magazine Epmat" class="logo">
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.655 0h-1.31v9.557L6.567 1.28l-1.134.655 4.779 8.277-8.277-4.779-.655 1.134 8.277 4.778H0v1.31h9.557L1.28 17.433l.655 1.134 8.277-4.779-4.779 8.277 1.134.655 4.778-8.277V24h1.31v-9.557l4.778 8.277 1.134-.655-4.779-8.277 8.277 4.779.655-1.134-8.277-4.778H24v-1.31h-9.557l8.277-4.778-.655-1.134-8.277 4.779 4.779-8.277-1.134-.655-4.778 8.277V0Z" fill="#816CF8"/>
</svg>
<span class="nosvg">매거진 입맛</span>
</a>
<div class="dynamic-nav">
<ul>
<li>
<a id="btn-article" href="/article" title="매거진 입맛 • 프로덕트 디자인" class="op75">프로덕트 디자인</a>
</li>
<li>
<a id="btn-review" href="/review" title="매거진 입맛 • 마시다" class="op75">마시다</a>
</li>
<li>
<a id="btn-read" href="/read" title="매거진 입맛 • 읽다" class="op75">읽다</a>
</li>
<!-- <li>
<a href="https://shouk.today?utm_source=mag_epmat" target="_blank" class="op75"><span class="mobile-disappear">인사이트 커뮤니티</span> 슉</a>
</li> -->
</ul>
</div>
</nav>
</header>
<div id="content">
<script>
document.getElementById('nav').classList.add('show')
</script>
<section class="post-content-container space-container">
<div class="space-left">
<div class="post-content-side-container">
<h3 class="post-share-title rise-target">매거진 입맛, 자유롭게 공유하세요.</h3>
<p class="post-share-description rise-target">개인 블로그, 메모, 사내 래퍼런스 공유 채널, 어디든지 좋습니다.
인사이트는
나눌 수록 커지니까요.
</p>
<button id="post-share" class="rise-target copy">
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 16 16" fill="currentColor" class="bi bi-subtract"><path d="M0 2a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v2h2a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-2H2a2 2 0 0 1-2-2V2zm2-1a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1H2z"/></svg>이 글의 공유 링크 복사
</button>
<a rel="noreferrer" class="outerlink-container rise-target" target="_blank" href="https://forms.gle/wvj73q8MWBv2j44h7" title="매거진 입맛 뉴스레터 구독 신청">
<h3>뉴스레터 구독 신청</h3>
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 16 16" fill="currentColor" class="bi bi-arrow-right-short"><path fill-rule="evenodd" d="M4 8a.5.5 0 0 1 .5-.5h5.793L8.146 5.354a.5.5 0 1 1 .708-.708l3 3a.5.5 0 0 1 0 .708l-3 3a.5.5 0 0 1-.708-.708L10.293 8.5H4.5A.5.5 0 0 1 4 8z"/></svg>
</a>
<a rel="noreferrer" class="outerlink-container rise-target" target="_blank" href="https://forms.gle/26d5yuzwQB3D44zm7" title="콘텐츠 주제 제안">
<h3>콘텐츠 주제 제안</h3>
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 16 16" fill="currentColor" class="bi bi-arrow-right-short"><path fill-rule="evenodd" d="M4 8a.5.5 0 0 1 .5-.5h5.793L8.146 5.354a.5.5 0 1 1 .708-.708l3 3a.5.5 0 0 1 0 .708l-3 3a.5.5 0 0 1-.708-.708L10.293 8.5H4.5A.5.5 0 0 1 4 8z"/></svg>
</a>
</div>
</div>
<!-- 본문 -->
<div class="space-right">
<div class="post-content">
<h1 class="post-title">그 AB 테스트 결과는 우연일지도 모릅니다.</h1>
<p class="infor"><strong>AB 테스트 통계분석 시리즈</strong><br />
1부 - 그 AB 테스트 결과는 우연일지도 모릅니다.<br />
2부 - <a title="매거진 입맛 - AB 테스트 인사이트의 수준이 달라지는 베이지안 분석" href="/ab-test-bayesian-statistical-analysis" rel="noopener">매거진 입맛 - AB 테스트 인사이트의 수준이 달라지는 베이지안 분석</a></p>
<p>이전에 연재한 <strong><a title="매거진 입맛 - 매출 만드는 AB 테스트, 시작이 막막한가요? 3단계 가이드" href="/3step-ab-test" target="_blank" rel="noopener">AB 테스트 가이드</a></strong>에서 실행한 AB 테스트의 결과 분석은 실험의 결실을 거두는 일종의 수확이라고 비유한 적 있습니다. AB 테스트의 모든 과정이 결과를 위해 존재하고, 그렇게 도출된 결과는 인사이트화되어 제품과 조직의 성장, 그리고 또 다른 AB 테스트에 기여하는 사이클에 있어서 필수적인 부분이기 때문입니다.</p>
<p>한번이라도 AB 테스트를 돌려본다면 결과 분석이 생각보다 어려운 일임을 깨닫게 됩니다. 뻔히 눈에 보이는 결과, 수치인데 매번 해석하기가 난감합니다.</p>
<p class="full-size"><img src="/assets/images/design/ab-test-frequentist-statistical-analysis/01.jpg" alt="AB Test Calculator" title="AB Test Calculator" loading="lazy" /></p>
<p>위와 같이 AB 테스트 결과의 통계적 유의성을 알려주는 계산기를 몇 번 소개한 적이 있습니다. 이런 복잡한 계산기가 필요한 이유는 ‘이 AB 테스트 결과를 믿을 것인가’를 결정하기 위해서입니다. 원본 A의 전환율이 10건 중 2건으로 20%, 대안 B의 전환율이 10건 중 6건으로 60%가 나왔다면, 대안 B가 3배의 성과를 거뒀으니 실험을 종료하고 대안 B로 고정하자고 이야기할 수 있을까요? 10건 중 6건은 우연일 수 있으니 데이터를 좀 더 모아야 한다는 의견은 충분히 상식적입니다. 그렇다면 데이터를 얼마나 더 모아야 할까요? 1천? 1만? 그 이유는 무엇인가요? 여기서부터 AB 테스트 결과 분석이 어려워집니다. 구글링을 통해 p값, 신뢰구간, 통계적 유의성에 대한 정보를 알게 됩니다. 이해는 안 되지만 아무튼 계산기도 발견합니다. 반신반의하면서도 계산기를 사용해 결과를 분석합니다.</p>
<p><strong><a title="매거진 입맛 - 따라쓰기만 하면 테스트 문화가 만들어진다 - Growth Book" href="/growth-book-and-experiment-culture" target="_blank" rel="noopener">AB 테스트는 문화가 되었을 때 최대의 효과를 내는 전략</a></strong>입니다. 어떤 테스트에 대한 결론을 내리면서 그 이유를 동료에게 설명할 수 없다면 테스트 문화를 만들 수 있을까요? 그전에 ‘AB 테스트 결과가 이렇게 나왔으니 제품에 적용하자’라는 주장이 설득력을 얻을 수 있을까요?</p>
<p>이런 태도가 별다른 문제가 되지 않을 수도 있습니다. 결국 AB 테스트는 제품과 조직을 위한 도구일 뿐입니다. 보닛 아래서 무슨 일이 일어나는지 정확히 설명할 수는 없어도 자동차를 모는 데 문제는 없습니다. 그러나 그 신뢰는 자동차가 지난 몇 세기 동안 굴러다녔다는 사실에서 비롯되었습니다. AB 테스트는 사정이 다릅니다. 좋다고는 하는데 내 제품과 조직에 맞을지는 알 수 없습니다. AB 테스트는 이유 있는 제품을 만듭니다. 어떤 테스트에 대한 결론을 내리면서 그 이유를 설명할 수 없다면 난센스일 것입니다. 이번 글을 통해 풀어내고자 하는 내용이 바로 그것입니다. <strong>이 시리즈를 통해 어떤 AB 테스트 결과를 통계적으로 분석하는 법에 대해 이해하게 될 것입니다.</strong></p>
<ul>
<li>AB 테스트 결과를 결론 내리는 통계학적 과정은 무엇일까요?</li>
<li>통계적 유의성, p값, 신뢰구간, Z 점수…. 이런 용어는 뭘 의미할까요?</li>
<li>이제 이해하면서 계산기를 쓸 수 있을까요?</li>
</ul>
<h2 id="ab-테스트의-원리---모집단과-표본">AB 테스트의 원리 - 모집단과 표본</h2>
<p>좀 멀리 돌아가는 것처럼 보이기도 하지만, AB 테스트의 원리가 뭘까요? 원본과 대안에 각각 10,000명의 고객을 투입하여 2배의 전환율 개선을 이끌어낸 테스트가 있었다고 가정합시다. 이 테스트 결과가 의미하는 바는 제품을 대안으로 개선하면 제품의 전환율이 2배가 된다는 것입니다. 그런데 이게 말이 되나요? 실험에 참여한 고객 10,000명이 2배의 전환율을 보였다고 어떻게 앞으로 제품의 전환율이 2배가 된다고 말할 수 있나요?</p>
<p class="normal-size"><img src="/assets/images/design/ab-test-frequentist-statistical-analysis/02.jpg" alt="Population and Sample" title="Population and Sample" loading="lazy" /></p>
<p>위 사실을 증명하는 게 통계학입니다. 미국 성인 1,000명을 조사해 600명이 매일 1잔 이상 커피를 마신다는 조사 결과는 ‘미국 성인 60%가 하루 한 잔 이상 커피를 마신다’라는 결론을 내릴 수 있지만, ‘한국 학생 60%가 하루 한 잔 이상 커피를 마신다’라는 결론은 내릴 수 없습니다. 이는 ‘미국 성인 1,000명’이 ‘미국 성인 전체’를 대표할 만한 유사성이 있다고 판단했기 때문입니다. AB 테스트에서도 마찬가지로, ‘실험에 참여한 고객’이 <a title="Jacob McMillen, 2016 - A/B Testing Statistics: An Intuitive Guide For Non-Mathematicians" href="https://conversionsciences.com/ab-testing-statistics/?refer=mag_epmat#attachment_35211" target="_blank" rel="noopener">‘앞으로 제품을 사용할 고객 전체’를 대표</a>합니다. 통계학에서는 전자를 표본(Sample), 후자를 모집단(Population)이라고 합니다.</p>
<p>이상적인 표본은 모집단을 완벽하게 반영합니다. 그러나 현실은 다릅니다. 미국 성인 60%가 하루 한 잔 이상 커피를 마시지만, 10명짜리 표본을 추출했더니 우연히 전부 카페인에 약해 한잔의 커피도 마시지 않을 수 있습니다. 반대로 다른 표본에서는 전부 커피 애호가일 수도 있습니다. 첫 번째 표본은 0%, 두 번째 표본은 100%가 하루 한 잔 이상 커피를 마십니다. 모집단의 비율과 큰 차이를 보입니다. 그런데 두 표본을 합치면 50%로, 그 전보다 모집단과의 차이가 훨씬 줄어들게 됩니다. 이처럼 <strong>표본이 규모를 키우면 점점 모집단을 더 잘 반영하게 됩니다.</strong></p>
<p>다시 말해, 충분히 큰 표본은 어느 정도 모집단을 대표할 수 있습니다.</p>
<h2 id="실험-결과가-정말-의미-있나---통계적-가설-검정">실험 결과가 정말 의미 있나? - 통계적 가설 검정</h2>
<p>충분히 큰 표본이 어느 정도 모집단을 대표하는 성질을 이용하면 표본을 가지고 모집단에 대한 어떤 가설이 맞는지 아닌지 추론할 수 있습니다. 이를 <a title="Wikipedia - Statistical hypothesis testing" href="https://en.wikipedia.org/wiki/Statistical_hypothesis_testing?refer=mag_epmat" target="_blank" rel="noopener">통계적 가설 검정(Statistical Hypothesis Testing)</a>라고 합니다. 통계적 가설 검정은 <a title="Khan Academy, 2010 - Hypothesis testing and p-values | Inferential statistics | Probability and Statistics" href="https://www.youtube.com/watch?v=-FtlH4svqx4" target="_blank" rel="noopener">다음 3단계</a>로 진행됩니다.</p>
<ol>
<li>귀무가설, 대립가설, 유의 수준 설정</li>
<li>귀무가설이 참인 상황에서, 표본에서 관측된 통계치와 같거나 더 극단적인 값이 관측될 확률 계산</li>
<li>과정 2의 확률이 유의 수준 이하라면 귀무가설 기각, 대립가설 채택</li>
</ol>
<p class="full-size"><img src="/assets/images/design/ab-test-frequentist-statistical-analysis/03.jpg" alt="AB Test" title="AB Test" loading="lazy" /></p>
<p>예시와 함께 그 뜻을 살펴보도록 하겠습니다. 상품 구매 페이지에서 AB 테스트를 하나 진행합니다. 원본 A는 배송비가 별도 표기되고, 대안 B는 배송비가 상품가에 포함되어 배송비는 별도로 표기되지 않습니다. 각 안에 참가한 고객 수는 1,000명이고, 원본 A는 300명이 구매하여 구매율은 30%, 대안 B는 350명이 구매하여 구매율이 35%로 집계되었습니다.</p>
<p>결론부터 이야기하자면 위 예시에서 원본 A와 대안 B 사이 유의미한 차이가 없다고 가정했을 때 대안 B의 구매율 35%가 관측될 확률이 매우 희박하기 때문에, 원본 A와 대안 B는 통계적으로 유의미한 차이를 가지고 있습니다. 왜 그런지 용어 개념부터 하나씩 살펴보죠.</p>
<p class="full-size"><img src="/assets/images/design/ab-test-frequentist-statistical-analysis/04.jpg" alt="Null Hypothesis and Alternative Hypothesis" title="Null Hypothesis and Alternative Hypothesis" loading="lazy" /></p>
<p><strong>⏸️귀무가설(Null hypothesis)</strong><br />
알아내고자 하는 가설을 확인하기 위해 <a title="Wikipedia - Null Hypothesis" href="https://en.wikipedia.org/wiki/Null_hypothesis?refer=mag_epmat" target="_blank" rel="noopener">기각되는 용도로 세워지는 가설</a>입니다. 따라서 귀무가설은 항상 알아내고자 하는 가설에 반대편에 있는, 가설 제시 이전의 현상태를 반영합니다. 잘 알려진 비유로 무죄 추정의 원칙과 비슷합니다. 피고인은 결정적 증거로 유죄가 확정되기 전까지 항상 무죄입니다.</p>
<p>언급한 예시에서 귀무가설은 ‘대안 B(별도 배송지 미표시)가 적용돼도 구매율은 30%이다.’ 즉, 대안 B가 효과가 없다고 세울 수 있습니다.</p>
<p><strong>🔀대립가설(Alternative Hypothesis)</strong><br />
귀무가설에 맞서는 가설로 알아내고자 하는 가설과 방향이 같습니다. 예시에서 대립가설은 ‘대안 B가 적용되면 구매율이 30%가 아니다.’ 즉, 대안 B가 효과가 있는 겁니다. 이때 ‘구매율이 30%가 아니다.’는 ‘구매율이 30%보다 낮다.’ 그리고 ‘구매율이 30%보다 크다.’의 합성입니다. 이를 제1형 대립가설이라고 합니다. 더 낮은 통계치를 알아보려는 경우를 제2형, 더 큰 통계치를 알아보려는 경우는 제3형이라고 합니다.</p>
<p>과정 2을 따라 귀무가설을 참으로 가정합니다. 즉, 대안 B가 적용돼도 구매율은 똑같이 30%입니다. 이 상황에서 실험 결과처럼 구매율이 35%인 경우와 그보다 극단적인 경우가 발생할 확률을 구합니다. 이 상황을 이해하기 쉽도록 표본 분포를 그려볼 수 있습니다. 1,000명이 참가한 실험에 구매율이 30%인 상황은 독립된 1,000번의 시행에서 각 시행의 확률이 30%인 이산 확률 분포, 곧 이항 분포로 나타낼 수 있습니다.</p>
<p>쉽게 생각해보면 1,000명이 실험에 참여해 300명이 구매한 상황이 실험마다 나올 수는 없을 겁니다. 실험을 반복할 때마다 구매 고객 수는 290, 310, 심하면 그보다 더 극단적인 값이 나오면서 구매율도 29%, 31%, 더 크고 작은 구매율이 집계될 것입니다. 다만 이러한 반복 실험 결과의 평균 구매율은 30%로 분포도는 30%에서 멀어질수록 줄어드는 형상일 것입니다.</p>
<p class="normal-size"><img src="/assets/images/design/ab-test-frequentist-statistical-analysis/05.jpg" alt="Normal Distribution, Mean = 0.3" title="Normal Distribution, Mean = 0.3" loading="lazy" /></p>
<p>시행 확률이 30%에 가까워질수록 예상 가능한 시행 횟수가 늘어나고 멀어질수록 예상 가능한 시행 횟수가 줄어듭니다. 이제 이 표본 분포에서 구매율이 35%이거나 그보다 더 극단적인 경우의 확률을 찾아야 합니다. 이 과정은 2단계로 나눠집니다.</p>
<ol>
<li>30%에서 35%까지 얼마만큼의 표준오차가 있는지(Z 점수) 계산</li>
<li>위의 계산을 이용, 35%와 같거나 그보다 극단적인 결과가 관측될 확률 계산</li>
</ol>
<p>몇 가지 새로운 용어가 보입니다. 이를 설명하면서 계속하겠습니다.</p>
<p class="full-size"><img src="/assets/images/design/ab-test-frequentist-statistical-analysis/06.jpg" alt="Standard Error" title="Standard Error" loading="lazy" /></p>
<p><strong>표준오차(Standard Error)</strong><br />
앞서 설명했듯 같은 실험을 반복하더라도 매번 30%의 구매율이 나오지는 않으며 반복 실험 결과의 평균이 30%일 뿐입니다. 어떤 실험에서 28%의 구매율이 나왔다면, 평균과의 차이가 -2%라고 말할 수 있습니다. 이렇게 수행하는 실험은 모집단에서 특정 표본을 표집한 것과 같으며, 각각의 실험에서 관측된 구매율은 표본평균, 이들의 평균인 구매율 30%는 표본평균의 평균으로 모평균입니다. 그리고 각 실험의 구매율과 이들의 평균 사이의 차이(오차)를 전부 모았을 때 계산할 수 있는 평균, 즉 표본평균의 표준편차를 표준오차라고 합니다. 표준오차를 계산하는 식은 다음과 같습니다.</p>
<p>표준오차 = (표준편차) / √(시행 횟수)</p>
<p>여기서 표준편차는 √(표본의 분산) 이므로 (표준편차) / √(시행 횟수) = √{ (표본의 분산) / (시행 횟수) } 으로 표현할 수 있습니다. 그런데 이항 분포에서 표본 분산은 (시행 확률) * { 1 - (시행 확률) } 입니다. 따라서 아래와 같이 정리할 수 있습니다.</p>
<p>표준오차 = √[ (시행 확률) * { 1 - (시행 확률) } / (시행 횟수) ]</p>
<p>예시의 원본 A의 표준 오차를 계산하면 √{0.3 * (1 - 0.3) / 1000}이므로 0.0145(소수점 다섯째 자리에서 반올림) 정도가 됩니다. 같은 식으로 대안 B의 표준오차는 0.0151입니다. 위의 과정 1에서 필요한 표준 오차는 두 표본의 평균 차이의 표준오차입니다. 두 표본의 평균 차이의 분산은 각 평균 분산을 합한 값이므로,</p>
<p>두 표본의 평균 차이의 표준오차 = √{ (A의 표준오차)²+ (B의 표준오차)²}</p>
<p>원본 A와 대안 B 평균 시행 확률 차이의 표준오차는 0.0209입니다.</p>
<p><strong>Z 점수(Z score; 표준 점수)</strong><br />
Z 점수는 정규분포에서 특정 통계치가 표본의 평균에서 <a title="David Kindness(Investopedia), 2021 - Z-Score" href="https://www.investopedia.com/terms/z/zscore.asp?refer=mag_epmat" target="_blank" rel="noopener">얼마의 표준편차만큼 떨어져 있는지 나타낸 값</a>입니다.</p>
<p>Z = { (특정 통계치) - (표본의 평균) } / 표준편차</p>
<p>과정 1을 위 식에 그대로 대입합니다. 표준편차 대신 원본 A와 대안 B 평균 차이의 표준오차를 사용합니다. Z = (0.35 - 0.30) / 0.0209 = 2.3923. 다시 말해 대안 B의 평균 35%는 원본 A의 평균 30%에서 두 평균 차이의 표준오차의 2.3923배 떨어져 있습니다.</p>
<p class="normal-size"><img src="/assets/images/design/ab-test-frequentist-statistical-analysis/07.jpg" alt="Normal Distribution with Two-sided Test" title="Normal Distribution with Two-sided Test" loading="lazy" /></p>
<p>이로써 귀무가설이 참일 때 35%와 같거나 그보다 극단적인 결과가 관측될 영역을 특정했습니다. 이 영역의 넓이가 곧 해당 결과가 관측될 확률입니다. 대략적인 값을 Z Table, <a title="Wikipedia - Standard normal table" href="https://en.wikipedia.org/wiki/Standard_normal_table?refer=mag_epmat" target="_blank" rel="noopener">표준정규분포표</a>에서 확인할 수 있습니다.</p>
<p class="normal-size"><img src="/assets/images/design/ab-test-frequentist-statistical-analysis/08.jpg" alt="Z-Table" title="Z-Table" loading="lazy" /></p>
<p>Z = 2.39에서 누적 분포 함수 값은 0.99158이므로 귀무가설이 참일 때 35%와 같거나 그보다 극단적인 결과가 관측될 확률은 0.00842, 즉 0.842%입니다. 이 확률이 바로 p값(Probability Value)입니다.</p>
<p class="normal-size"><img src="/assets/images/design/ab-test-frequentist-statistical-analysis/09.jpg" alt="Three Types of Test" title="Three Types of Test" loading="lazy" /></p>
<p>0.842%의 p값은 제1형 대립가설을 검정하는 양측 검정(Two-sided Test)입니다. 평균 시행 확률이 30%인 표본에서 최소 35%만큼 극단적인 결과가 관측될 확률로, 30%에서 음의 방향으로 35%만큼 극단적인 25% 이하의 값이 나타날 확률도 포함합니다. 실제로 업무에 활용한다고 생각했을 때 전환율이 저하됐을 경우의 확률까지 포함해서 검정할 필요성은 없을 듯합니다. 그러므로 대립가설을 제3형 가설, ‘대안 B가 적용되면 구매율이 30%보다 크다.’로 수정합니다. 이렇게 수정된 대립가설을 검정하는 것을 단측 검정(One-sided Test) 중 <a title="Khan Academy, 2010 - One-tailed and two-tailed tests | Inferential statistics | Probability and Statistics" href="https://www.youtube.com/watch?v=mvye6X_0upA" target="_blank" rel="noopener">우측 검정(Upper Tailed Test)</a>라고 합니다. 이때 p값은 양측 검정 때의 절반, 0.421%가 됩니다.</p>
<p>이제 이 확률, p값이 귀무가설을 기각할 만큼 낮은 건지 아닌지 기준을 잡아 알아보아야 합니다. 이 기준이 유의 수준입니다.</p>
<p><strong>유의 수준(Significance Level)</strong><br />
유의 수준은 특정 통계치가 특정 범위 안에 있는 비율입니다. 유의 수준보다 p값이 낮다면 귀무가설을 참으로 가정했을 때 극단적 통계치가 관측될 확률이 충분히 낮다고 판단하여, 귀무가설을 기각하고 대립가설을 채택합니다. 유의 수준의 값은 관습적으로 1%, 10%, 특히 5%가 자주 사용되나 의료계에서는 0.1% 수준으로 검정 기준의 <a title="Andrew N. Philips, George Davey Smith, 1993 - The design of prospective epidemiological studies: More subjects or better measurements?" href="https://www.sciencedirect.com/science/article/abs/pii/089543569390120P" target="_blank" rel="noopener">허들을 더 높여야 한다는 주장</a>도 제기된 바 있습니다. 그러나 이는 정도의 차이이므로 AB 테스트를 진행하는 조직 구성원끼리 합의를 통해 결정하면 될 일입니다. 35% 구매율이 우연히 관측될 확률이 0.421%라는데, 깐깐하게 보는 것도 좋지만 비즈니스의 필요에 따라 유연하게 채택할 필요가 있습니다.</p>
<p>유사한 지표로 신뢰구간이 있습니다. 단순히 1에서 유의 수준 값을 빼면 됩니다. 유의 수준이 5%일 때 신뢰구간은 95%입니다. 만약 누군가 이러한 과정을 통해 ‘이 실험의 결과는 95% 신뢰구간에서 유효하다.’고 한다면, 실험 결과가 <strong>95%만큼 믿을 만하다는 뜻이 아니라 결과가 유효하지 않았다면 해당 실험 결과가 나올 확률이 5% 이하라는 뜻</strong>입니다. 그만큼 실험 결과가 유효하지 않을 가능성이 희박하다는 것입니다.</p>
<p>이상의 과정처럼 통계적 가설을 검정하는 접근법을 빈도주의 통계(Frequentist Statistics) 방식이라고 말합니다. 이는 알려지지 않은 모집단의 통계치를 추정하기 위해 여러 표본의 값을 비교·분석하는 방식입니다.</p>
<h2 id="정리">정리</h2>
<p>여기까지 이해하고 계산기를 켠다면 달리 보이는 부분이 많을 겁니다. AB 테스트 결과 통계적 가설 검정 과정을 다시 한번 짚어보겠습니다.</p>
<p>AB 테스트는 ‘앞으로 제품을 사용할 고객’이라는 모집단을 대표하는 표본인 ‘실험 참여 고객’을 통해 전환율을 개선합니다.</p>
<p>빈도주의 통계적 가설 검정은 귀무가설, 대립가설, 유의 수준을 설정해 귀무가설이 참인 상황에서, 표본에서 관측된 통계치와 같거나 더 극단적인 값이 관측될 확률인 p값을 계산합니다. 이 확률이 유의 수준 이하라면 귀무가설 기각하고 대립가설을 채택합니다.</p>
<p>이제 AB 테스트 결과 분석 계산기에 나타난 여러 수치가 무얼 뜻하는지 알게 되었습니다.</p>
<p>그런데 최근에는 빈도주의 통계로 접근한 계산기가 아니라 다른 방식으로 결과를 분석하는 계산기도 종종 보입니다. 베이지안 통계(Bayesian Statistics) 방식의 계산기가 그것입니다. 베이지안 통계는 빈도주의적 통계의 라이벌이라고 할 수 있는 접근법입니다. <a title="매거진 입맛 - AB 테스트 인사이트의 수준이 달라지는 베이지안 분석" href="/ab-test-bayesian-statistical-analysis" target="_blank" rel="noopener">다음 편</a>에서는 베이지안 통계 방식의 AB 테스트 결과 분석과, 빈도주의 통계가 갖는 한계를 베이지안 통계 방식이 어떻게 해결하는지 알아보겠습니다.</p>
<p class="right-infor">위시켓의 지원과 함께 제작된 콘텐츠입니다.</p>
</div>
<div class="post-feedback">
<p>이번 글은 어땠나요? 피드백을 나눠주세요.</p>
<a href="https://forms.gle/EMf71iYTEXAbEL868" target="_blank" rel="noopener noreferrer" title="좋았어요 피드백 남기기">👍 좋았어요!</a>
<a href="https://forms.gle/bXJA17sczKPTqtLR7" target="_blank" rel="noopener noreferrer" title="별로였어요 피드백 남기기">👎 별로였어요.</a>
</div>
<!-- <a class="shouk-container" target="_blank" href="https://shouk.today?utm_source=mag_epmat&utm_medium=content_banner">
<div class="container-left">
<h3>적게 읽고 많이 알아가세요.<br>인사이트 요약 커뮤니티 슉</h3>
<p>
팟캐스트, 영문 뉴스레터, 아티클, 1분 내외 분량 단순명료 요약
</p>
</div>
<div class="container-right">
<img src="/assets/images/shouk_banner.png" alt="banner">
</div>
</a> -->
</div>
</section>
<!-- 관련된 포스트 목록 -->
<section class="post-list related-post-list three-row">
<!-- 동일 카테고리 -->
<!-- 2-1 -->
<a title="혁신은 (또) 없었던 애플의 자신감. 9/14 애플 이벤트 리뷰" href="/2021-september-apple-special-event-review" class="post-list-item rise-target sequential-rise-target">
<div class="post-thumbnail">
<div class="img-source" style="background-image: url('/assets/images/design/2021-september-apple-special-event-review/00.jpg')"></div>
</div>
<div class="post-description">
<div class="post-intro">
<h3>혁신은 (또) 없었던 애플의 자신감. 9/14 애플 이벤트 리뷰</h3>
<p class="post-excerpt">모바일 디바이스만 7개가 나왔던 이번 애플 이벤트. 역시 새로운 건 없었습니다. 그러나 애플의 고객은 큰 폭으로 확장될 것입니다. 왜일까요?</p>
</div>
</div>
</a>
<a title="AB 테스트 인사이트의 수준이 달라지는 베이지안 분석" href="/ab-test-bayesian-statistical-analysis" class="post-list-item rise-target sequential-rise-target">
<div class="post-thumbnail">
<div class="img-source" style="background-image: url('/assets/images/design/ab-test-bayesian-statistical-analysis/00.jpg')"></div>
</div>
<div class="post-description">
<div class="post-intro">
<h3>AB 테스트 인사이트의 수준이 달라지는 베이지안 분석</h3>
<p class="post-excerpt">‘대안의 결과가 원본보다 나을 확률’, ‘대안을 선택했을 때 예상 손실’. 빈도주의 분석으로 알 수 없는 인사이트를 어떻게 얻을 수 있을까요?</p>
</div>
</div>
</a>
<a title="따라쓰기만 하면 테스트 문화가 만들어진다. Growth Book" href="/growth-book-and-experiment-culture" class="post-list-item rise-target sequential-rise-target">
<div class="post-thumbnail">
<div class="img-source" style="background-image: url('/assets/images/design/growth-book-and-experiment-culture/00.jpg')"></div>
</div>
<div class="post-description">
<div class="post-intro">
<h3>따라쓰기만 하면 테스트 문화가 만들어진다. Growth Book</h3>
<p class="post-excerpt">AB 테스트는 조직에 함께하는 문화가 자리잡을 때 곱절의 성능을 발휘합니다. 테스트 문화 구현에 적합한 오픈소스 AB 테스트 플랫폼을 소개합니다.</p>
</div>
</div>
</a>
<div class="ads-container ads-container-mobile-feedcard rise-target">
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-7525347021497850" crossorigin="anonymous"></script>
<ins class="adsbygoogle"
style="display:block"
data-ad-format="fluid"
data-ad-layout-key="-6h+cl+f-1w+d1"
data-ad-client="ca-pub-7525347021497850"
data-ad-slot="9019438848"></ins>
<script>(adsbygoogle = window.adsbygoogle || []).push({});</script>
</div>
<!-- 비동일 카테고리 -->
<a title="가볍고 밝은 싱글 몰트 위스키의 대표주자. 글렌그란트 12년" href="/glengrant-12" class="post-list-item rise-target sequential-rise-target">
<div class="post-thumbnail">
<div class="img-source" style="background-image: url('/assets/images/daily/glengrant-12/00.jpg')"></div>
</div>
<div class="post-description">
<div class="post-intro">
<h3>가볍고 밝은 싱글 몰트 위스키의 대표주자. 글렌그란트 12년</h3>
<p class="post-excerpt">가벼운 위스키는 자칫 특색 없고 심심한 술로 받아들여질 수 있습니다. 과연 글렌그란트 12년은 이 불신에서 자유로울 수 있을까요?</p>
</div>
</div>
</a>
<a title="사랑하거나 싫어하거나, 피트의 마술적 매력. 라프로익 10년" href="/laphroaig-10" class="post-list-item rise-target sequential-rise-target">
<div class="post-thumbnail">
<div class="img-source" style="background-image: url('/assets/images/daily/laphroaig-10/00.jpg')"></div>
</div>
<div class="post-description">
<div class="post-intro">
<h3>사랑하거나 싫어하거나, 피트의 마술적 매력. 라프로익 10년</h3>
<p class="post-excerpt">피트로 유명한 아일라의 싱글 몰트 위스키 중에서도 라프로익은 강렬한 개성으로 손에 꼽힙니다. 10년에 불과한 숙성 기간에도 충분히 짜릿합니다.</p>
</div>
</div>
</a>
<div class="ads-container ads-container-relative-feedcard rise-target third-position">
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-7525347021497850" crossorigin="anonymous"></script>
<ins class="adsbygoogle"
style="display:block"
data-ad-format="fluid"
data-ad-layout-key="-6h+cl+f-1w+d1"
data-ad-client="ca-pub-7525347021497850"
data-ad-slot="9019438848"></ins>
<script>(adsbygoogle = window.adsbygoogle || []).push({});</script>
</div>
</section>
<script src="/assets/post-share.js"></script>
<script>document.getElementById('btn-article').classList.remove('op75');
document.getElementById('btn-article').classList.add('nav-item-act');</script>
</div>
<footer id="footer" class="">
<section>
<div class="link-group"><a id="home-page" href='/' title="Main">매거진 입맛</a></div>
<div class="link-group">
<p class="group-title">Category</p>
<a href="/article" title="매거진 입맛 • 프로덕트 디자인">프로덕트 디자인</a>
<a href="/review" title="매거진 입맛 • 마시다">마시다</a>
<a href="/read" title="매거진 입맛 • 읽다">읽다</a>
</div>
<div class="link-group">
<p class="group-title">Social</p>
<a rel="noreferrer" id="fb-link" href="https://www.facebook.com/magepmat" title="Facebook" target="_blank">Facebook</a>
<a rel="noreferrer" id="insta-link" href="https://www.instagram.com/mag_epmat/" title="Instagram" target="_blank">Instagram</a>
<a rel="noreferrer" id="rss-link" href="/feed.xml" title="RSS" target="_blank">RSS</a>
</div>
<div class="link-group">
<p class="group-title">Contact</p>
<a id="mail-link" href="mailto:[email protected]" title="Email">Email</a>
<a href="https://www.linkedin.com/in/junhwanlee" target="_blank" rel="noopener noreferrer">LinkedIn</a>
<a href="https://www.rocketpunch.com/@junhwanlee" target="_blank" rel="noopener noreferrer">Rocketpunch</a>
</div>
<div class="link-group">
<p class="group-title">Request</p>
<a href="https://forms.gle/wvj73q8MWBv2j44h7" target="_blank" rel="noopener noreferrer">뉴스레터 구독</a>
<a href="https://forms.gle/26d5yuzwQB3D44zm7" target="_blank" rel="noopener noreferrer">주제 제안</a>
</div>
</section>
</footer>
</body>
<script src="/assets/scroll-animation.js"></script>
</html>