-
Notifications
You must be signed in to change notification settings - Fork 32
/
index.html
6723 lines (6558 loc) · 480 KB
/
index.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
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<html><head><meta charset="utf-8">
<title>Ebisu</title>
<meta name="description" content="Public-domain library for quiz scheduling with Bayesian statistics.">
<meta name="twitter:card" value="summary">
<meta property="og:title" content="Ebisu">
<meta property="og:type" content="article">
<meta property="og:url" content="https://fasiha.github.io/ebisu/">
<meta property="og:image" content="https://fasiha.github.io/ebisu/figures/halflife.png">
<meta property="og:description" content="Public-domain library for quiz scheduling with Bayesian statistics.">
<link rel="stylesheet" href="assets/modest.css">
<link rel="stylesheet" href="assets/atom-one-dark.css">
<script src="assets/highlight.pack.js"></script> <!--HLJS_CLIENTSIDE-->
<script>hljs.initHighlightingOnLoad();</script> <!--HLJS_CLIENTSIDE-->
<style type="text/css">
.mjpage .MJX-monospace {
font-family: monospace
}
.mjpage .MJX-sans-serif {
font-family: sans-serif
}
.mjpage {
display: inline;
font-style: normal;
font-weight: normal;
line-height: normal;
font-size: 100%;
font-size-adjust: none;
text-indent: 0;
text-align: left;
text-transform: none;
letter-spacing: normal;
word-spacing: normal;
word-wrap: normal;
white-space: nowrap;
float: none;
direction: ltr;
max-width: none;
max-height: none;
min-width: 0;
min-height: 0;
border: 0;
padding: 0;
margin: 0
}
.mjpage * {
transition: none;
-webkit-transition: none;
-moz-transition: none;
-ms-transition: none;
-o-transition: none
}
.mjx-svg-href {
fill: blue;
stroke: blue
}
.MathJax_SVG_LineBox {
display: table!important
}
.MathJax_SVG_LineBox span {
display: table-cell!important;
width: 10000em!important;
min-width: 0;
max-width: none;
padding: 0;
border: 0;
margin: 0
}
.mjpage__block {
text-align: center;
margin: 1em 0em;
position: relative;
display: block!important;
text-indent: 0;
max-width: none;
max-height: none;
min-width: 0;
min-height: 0;
width: 100%
}</style></head><body><h1 id="ebisu-intelligent-quiz-scheduling">Ebisu: intelligent quiz scheduling</h1>
<h2 id="important-links">Important links</h2>
<ul>
<li><a href="https://fasiha.github.io/ebisu/">Literate document</a></li>
<li><a href="https://github.com/fasiha/ebisu">GitHub repo</a></li>
<li><a href="https://github.com/fasiha/ebisu/blob/gh-pages/EbisuHowto.ipynb">IPython Notebook crash course</a></li>
<li><a href="https://pypi.python.org/pypi/ebisu/">PyPI package</a></li>
<li><a href="https://github.com/fasiha/ebisu/blob/gh-pages/CHANGELOG.md">Changelog</a></li>
<li><a href="https://fasiha.github.io/#contact">Contact</a></li>
</ul>
<h3 id="table-of-contents">Table of contents</h3>
<ul>
<li><a href="#ebisu-intelligent-quiz-scheduling">Ebisu: intelligent quiz scheduling</a>
<ul>
<li><a href="#important-links">Important links</a>
<ul>
<li><a href="#table-of-contents">Table of contents</a></li>
</ul></li>
<li><a href="#introduction">Introduction</a></li>
<li><a href="#quickstart">Quickstart</a></li>
<li><a href="#how-it-works">How it works</a></li>
<li><a href="#the-math">The math</a>
<ul>
<li><a href="#bernoulli-quizzes">Bernoulli quizzes</a></li>
<li><a href="#moving-beta-distributions-through-time">Moving Beta distributions through time</a></li>
<li><a href="#recall-probability-right-now">Recall probability right now</a></li>
<li><a href="#choice-of-initial-model-parameters">Choice of initial model parameters</a></li>
<li><a href="#updating-the-posterior-with-quiz-results">Updating the posterior with quiz results</a></li>
<li><a href="#bonus-soft-binary-quizzes">Bonus: soft-binary quizzes</a></li>
<li><a href="#bonus-rescaling-quiz-ease-or-difficulty">Bonus: rescaling quiz ease or difficulty</a></li>
<li><a href="#appendix-exact-ebisu-posteriors">Appendix: exact Ebisu posteriors</a></li>
</ul></li>
<li><a href="#source-code">Source code</a>
<ul>
<li><a href="#core-library">Core library</a></li>
<li><a href="#miscellaneous-functions">Miscellaneous functions</a></li>
<li><a href="#test-code">Test code</a></li>
</ul></li>
<li><a href="#demo-codes">Demo codes</a>
<ul>
<li><a href="#visualizing-half-lives">Visualizing half-lives</a></li>
<li><a href="#why-we-work-with-random-variables">Why we work with random variables</a></li>
<li><a href="#moving-beta-distributions-through-time-1">Moving Beta distributions through time</a></li>
</ul></li>
<li><a href="#requirements-for-building-all-aspects-of-this-repo">Requirements for building all aspects of this repo</a></li>
<li><a href="#acknowledgments">Acknowledgments</a></li>
</ul></li>
</ul>
<!-- /TOC -->
<h2 id="introduction">Introduction</h2>
<p>Consider a student memorizing a set of facts.</p>
<ul>
<li>Which facts need reviewing?</li>
<li>How does the student’s performance on a review change the fact’s future review schedule?</li>
</ul>
<p>Ebisu is a public-domain library that answers these two questions. It is intended to be used by software developers writing quiz apps, and provides a simple API to deal with these two aspects of scheduling quizzes:</p>
<ul>
<li><code>predictRecall</code> gives the current recall probability for a given fact.</li>
<li><code>updateRecall</code> adjusts the belief about future recall probability given a quiz result.</li>
</ul>
<p>Behind these two simple functions, Ebisu is using a simple yet powerful model of forgetting, a model that is founded on Bayesian statistics and exponential forgetting.</p>
<p>With this system, quiz applications can move away from “daily review piles” caused by less flexible scheduling algorithms. For instance, a student might have only five minutes to study today; an app using Ebisu can ensure that only the facts most in danger of being forgotten are reviewed.</p>
<p>Ebisu also enables apps to provide an infinite stream of quizzes for students who are cramming. Thus, Ebisu intelligently handles over-reviewing as well as under-reviewing.</p>
<p>This document is a literate source: it contains a detailed mathematical description of the underlying algorithm as well as source code for a Python implementation (requires Scipy and Numpy). Separate implementations in other languages are detailed below.</p>
<p>The next section is a <a href="#quickstart">Quickstart</a> guide to setup and usage. See this if you know you want to use Ebisu in your app.</p>
<p>Then in the <a href="#how-it-works">How It Works</a> section, I contrast Ebisu to other scheduling algorithms and describe, non-technically, why you should use it.</p>
<p>Then there’s a long <a href="#the-math">Math</a> section that details Ebisu’s algorithm mathematically. If you like Beta-distributed random variables, conjugate priors, and marginalization, this is for you. You’ll also find the key formulas that implement <code>predictRecall</code> and <code>updateRecall</code> here.</p>
<blockquote>
<p>Nerdy details in a nutshell: Ebisu begins by positing a <a href="https://en.wikipedia.org/wiki/Beta_distribution">Beta prior</a> on recall probability at a certain time. As time passes, the recall probability decays exponentially, and Ebisu handles that nonlinearity exactly and analytically—it requires only a few <a href="http://mathworld.wolfram.com/BetaFunction.html">Beta function</a> evaluations to predict the current recall probability. Next, a <em>quiz</em> is modeled as a <a href="https://en.wikipedia.org/wiki/Binomial_distribution">binomial trial</a> whose underlying probability prior is this non-conjugate nonlinearly-transformed Beta. Ebisu approximates the non-standard posterior with a new Beta distribution by matching its mean and variance, which are also analytically tractable, and require a few evaluations of the Beta function.</p>
</blockquote>
<p>Finally, the <a href="#source-code">Source Code</a> section presents the literate source of the library, including several tests to validate the math.</p>
<h2 id="quickstart">Quickstart</h2>
<p><strong>Install</strong> <code>pip install ebisu</code> (both Python3 and Python2 ok 🤠).</p>
<p><strong>Data model</strong> For each fact in your quiz app, you store a model representing a prior distribution. This is a 3-tuple: <code>(alpha, beta, t)</code> and you can create a default model for all newly learned facts with <code>ebisu.defaultModel</code>. (As detailed in the <a href="#choice-of-initial-model-parameters">Choice of initial model parameters</a> section, <code>alpha</code> and <code>beta</code> define a Beta distribution on this fact’s recall probability <code>t</code> time units after it’s most recent review.)</p>
<p><strong>Predict a fact’s current recall probability</strong> <code>ebisu.predictRecall(prior: tuple, tnow: float) -> float</code> where <code>prior</code> is this fact’s model and <code>tnow</code> is the current time elapsed since this fact’s most recent review. <code>tnow</code> may be any unit of time, as long as it is consistent with the half life’s unit of time. The value returned by <code>predictRecall</code> is a probability between 0 and 1.</p>
<p><strong>Update a fact’s model with quiz results</strong> <code>ebisu.updateRecall(prior: tuple, success: int, total: int, tnow: float) -> tuple</code> where <code>prior</code> and <code>tnow</code> are as above, and where <code>success</code> is the number of times the student successfully exercised this memory during the current review session out of <code>total</code> times—this way your quiz app can review the same fact multiple times in one sitting. Bonus: you can also pass in a floating point <code>success</code> between 0 and 1 for soft-binary quizzes! The returned value is this fact’s new prior model—the old one can be discarded.</p>
<p><strong>IPython Notebook crash course</strong> For a conversational introduction to the API in the context of a mocked quiz app, see this <a href="./EbisuHowto.ipynb">IPython Notebook crash course</a>.</p>
<p><strong>Further information</strong> <a href="https://github.com/fasiha/ebisu/blob/gh-pages/doc/doc.md">Module docstrings</a> in a pinch but full details plus literate source below, under <a href="#source-code">Source code</a>.</p>
<p><strong>Alternative implementations</strong> <a href="https://fasiha.github.io/ebisu.js/">Ebisu.js</a> is a JavaScript port for browser and Node.js. <a href="https://github.com/fasiha/ebisu-java">ebisu-java</a> is for Java and JVM languages. <a href="https://github.com/ttencate/ebisu_dart">ebisu_dart</a> is a Dart port for browser and native targets. <a href="https://github.com/codito/obliviate">obliviate</a> is available for .NET.</p>
<h2 id="how-it-works">How it works</h2>
<p>There are many scheduling schemes, e.g.,</p>
<ul>
<li><a href="https://apps.ankiweb.net/">Anki</a>, an open-source Python flashcard app (and a closed-source mobile app),</li>
<li>the <a href="https://www.supermemo.com/help/smalg.htm">SuperMemo</a> family of algorithms (<a href="https://apps.ankiweb.net/docs/manual.html#what-algorithm">Anki’s</a> is a derivative of SM-2),</li>
<li><a href="https://www.memrise.com">Memrise.com</a>, a closed-source webapp,</li>
<li><a href="https://www.duolingo.com/">Duolingo</a> has published a <a href="http://making.duolingo.com/how-we-learn-how-you-learn">blog entry</a> and a <a href="https://github.com/duolingo/halflife-regression">conference paper/code repo</a> on their half-life regression technique,</li>
<li>the Leitner and Pimsleur spacing schemes (also discussed in some length in Duolingo’s paper).</li>
<li>Also worth noting is Michael Mozer’s team’s Bayesian multiscale models, e.g., <a href="http://www.cs.colorado.edu/~mozer/Research/Selected%20Publications/reprints/MozerPashlerCepedaLindseyVul2009.pdf">Mozer, Pashler, Cepeda, Lindsey, and Vul</a>’s 2009 <cite>NIPS</cite> paper and subsequent work.</li>
</ul>
<p>Many of these are inspired by Hermann Ebbinghaus’ discovery of the <a href="https://en.wikipedia.org/w/index.php?title=Forgetting_curve&oldid=766120598#History">exponential forgetting curve</a>, published in 1885, when he was thirty-five. He <a href="https://en.wikipedia.org/w/index.php?title=Hermann_Ebbinghaus&oldid=773908952#Research_on_memory">memorized random</a> consonant–vowel–consonant trigrams (‘PED’, e.g.) and found, among other things, that his recall decayed exponentially with some time-constant.</p>
<p>Anki and SuperMemo use carefully-tuned mechanical rules to schedule a fact’s future review immediately after its current review. The rules can get complicated—I wrote a little <a href="https://gist.github.com/fasiha/31ce46c36371ff57fdbc1254af424174">field guide</a> to Anki’s, with links to the source code—since they are optimized to minimize daily review time while maximizing retention. However, because each fact has simply a date of next review, these algorithms do not gracefully accommodate over- or under-reviewing. Even when used as prescribed, they can schedule many facts for review on one day but few on others. (I must note that all three of these issues—over-reviewing (cramming), under-reviewing, and lumpy reviews—have well-supported solutions in Anki by tweaking the rules and third-party plugins.)</p>
<p>Duolingo’s half-life regression explicitly models the probability of you recalling a fact as <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="5.811ex" height="2.676ex" style="vertical-align: -0.338ex;" viewBox="0 -1006.6 2501.9 1152.1" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-1-Title">
<title id="MathJax-SVG-1-Title">2^{-Δ/h}</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMAIN-32" x="0" y="0"></use>
<g transform="translate(500,393)">
<use transform="scale(0.707)" xlink:href="#MJMAIN-2212" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMAIN-394" x="778" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMAIN-2F" x="1612" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-68" x="2112" y="0"></use>
</g>
</g>
</svg></span>, where Δ is the time since your last review and <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="1.339ex" height="2.176ex" style="vertical-align: -0.338ex;" viewBox="0 -791.3 576.5 936.9" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-2-Title">
<title id="MathJax-SVG-2-Title">h</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-68" x="0" y="0"></use>
</g>
</svg></span> is a <em>half-life</em>. In this model, your chances of passing a quiz after <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="1.339ex" height="2.176ex" style="vertical-align: -0.338ex;" viewBox="0 -791.3 576.5 936.9" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-3-Title">
<title id="MathJax-SVG-3-Title">h</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-68" x="0" y="0"></use>
</g>
</svg></span> days is 50%, which drops to 25% after <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="2.501ex" height="2.176ex" style="vertical-align: -0.338ex;" viewBox="0 -791.3 1077 936.9" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-4-Title">
<title id="MathJax-SVG-4-Title">2 h</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMAIN-32" x="0" y="0"></use>
<use xlink:href="#MJMATHI-68" x="500" y="0"></use>
</g>
</svg></span> days. They estimate this half-life by combining your past performance and fact metadata in a large-scale machine learning technique called half-life regression (a variant of logistic regression or beta regression, more tuned to this forgetting curve). With each fact associated with a half-life, they can predict the likelihood of forgetting a fact if a quiz was given right now. The results of that quiz (for whichever fact was chosen to review) are used to update that fact’s half-life by re-running the machine learning process with the results from the latest quizzes.</p>
<p>The Mozer group’s algorithms also fit a hierarchical Bayesian model that links quiz performance to memory, taking into account inter-fact and inter-student variability, but the training step is again computationally-intensive.</p>
<p>Like Duolingo and Mozer’s approaches, Ebisu explicitly tracks the exponential forgetting curve to provide a list of facts sorted by most to least likely to be forgotten. However, Ebisu formulates the problem very differently—while memory is understood to decay exponentially, Ebisu posits a <em>probability distribution</em> on the half-life and uses quiz results to update its beliefs in a fully Bayesian way. These updates, while a bit more computationally-burdensome than Anki’s scheduler, are much lighter-weight than Duolingo’s industrial-strength approach.</p>
<p>This gives small quiz apps the same intelligent scheduling as Duolingo’s approach—real-time recall probabilities for any fact—but with immediate incorporation of quiz results, even on mobile apps.</p>
<p>To appreciate this further, consider this example. Imagine a fact with half-life of a week: after a week we expect the recall probability to drop to 50%. However, Ebisu can entertain an infinite range of beliefs about this recall probability: it can be very uncertain that it’ll be 50% (the “α=β=3” model below), or it can be very confident in that prediction (“α=β=12” case):</p>
<p><img src="figures/models.png" alt="figures/models.png"></p>
<p>Under either of these models of recall probability, we can ask Ebisu what the expected half-life is after the student is quizzed on this fact a day, a week, or a month after their last review, and whether they passed or failed the quiz:</p>
<p><img src="figures/halflife.png" alt="figures/halflife.png"></p>
<p>If the student correctly answers the quiz, Ebisu expects the new half-life to be greater than a week. If the student answers correctly after just a day, the half-life rises a little bit, since we expected the student to remember this fact that soon after reviewing it. If the student surprises us by <em>failing</em> the quiz just a day after they last reviewed it, the projected half-life drops. The more tentative “α=β=3” model aggressively adjusts the half-life, while the more assured “α=β=12” model is more conservative in its update. (Each fact has an α and β associated with it and I explain what they mean mathematically in the next section. Also, the code for these two charts is <a href="#demo-codes">below</a>.)</p>
<p>Similarly, if the student fails the quiz after a whole month of not reviewing it, this isn’t a surprise—the half-life drops a bit from the initial half-life of a week. If she does surprise us, passing the quiz after a month of not studying it, then Ebisu boosts its expected half-life—by a lot for the “α=β=3” model, less for the “α=β=12” one.</p>
<blockquote>
<p>Currently, Ebisu treats each fact as independent, very much like Ebbinghaus’ nonsense syllables: it does not understand how facts are related the way Duolingo can with its sentences. However, Ebisu can be used in combination with other techniques to accommodate extra information about relationships between facts.</p>
</blockquote>
<h2 id="the-math">The math</h2>
<h3 id="bernoulli-quizzes">Bernoulli quizzes</h3>
<p>Let’s begin with a quiz. One way or another, we’ve picked a fact to quiz the student on, <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="0.84ex" height="2.009ex" style="vertical-align: -0.338ex;" viewBox="0 -719.6 361.5 865.1" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-5-Title">
<title id="MathJax-SVG-5-Title">t</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-74" x="0" y="0"></use>
</g>
</svg></span> days (the units are arbitrary since <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="0.84ex" height="2.009ex" style="vertical-align: -0.338ex;" viewBox="0 -719.6 361.5 865.1" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-6-Title">
<title id="MathJax-SVG-6-Title">t</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-74" x="0" y="0"></use>
</g>
</svg></span> can be any positive real number) after her last quiz on it, or since she learned it for the first time.</p>
<p>We’ll model the results of the quiz as a Bernoulli experiment—we’ll later expand this to a binomial experiment. So for Bernoulli quizzes, <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="18.17ex" height="2.843ex" style="vertical-align: -0.838ex;" viewBox="0 -863.1 7823.2 1223.9" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-7-Title">
<title id="MathJax-SVG-7-Title">x_t ∼ Bernoulli(p)</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-78" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="809" y="-213"></use>
<use xlink:href="#MJMAIN-223C" x="1205" y="0"></use>
<use xlink:href="#MJMATHI-42" x="2262" y="0"></use>
<use xlink:href="#MJMATHI-65" x="3021" y="0"></use>
<use xlink:href="#MJMATHI-72" x="3488" y="0"></use>
<use xlink:href="#MJMATHI-6E" x="3939" y="0"></use>
<use xlink:href="#MJMATHI-6F" x="4540" y="0"></use>
<use xlink:href="#MJMATHI-75" x="5025" y="0"></use>
<use xlink:href="#MJMATHI-6C" x="5598" y="0"></use>
<use xlink:href="#MJMATHI-6C" x="5896" y="0"></use>
<use xlink:href="#MJMATHI-69" x="6195" y="0"></use>
<use xlink:href="#MJMAIN-28" x="6540" y="0"></use>
<use xlink:href="#MJMATHI-70" x="6930" y="0"></use>
<use xlink:href="#MJMAIN-29" x="7433" y="0"></use>
</g>
</svg></span>; <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="2.156ex" height="2.009ex" style="vertical-align: -0.671ex;" viewBox="0 -576.1 928.1 865.1" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-8-Title">
<title id="MathJax-SVG-8-Title">x_t</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-78" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="809" y="-213"></use>
</g>
</svg></span> can be either 1 (success) with probability <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="2.085ex" height="2.009ex" style="vertical-align: -0.671ex; margin-left: -0.089ex;" viewBox="-38.5 -576.1 897.6 865.1" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-9-Title">
<title id="MathJax-SVG-9-Title">p_t</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-70" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="712" y="-213"></use>
</g>
</svg></span>, or 0 (fail) with probability <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="5.998ex" height="2.509ex" style="vertical-align: -0.671ex;" viewBox="0 -791.3 2582.6 1080.4" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-10-Title">
<title id="MathJax-SVG-10-Title">1-p_t</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMAIN-31" x="0" y="0"></use>
<use xlink:href="#MJMAIN-2212" x="722" y="0"></use>
<g transform="translate(1723,0)">
<use xlink:href="#MJMATHI-70" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="712" y="-213"></use>
</g>
</g>
</svg></span>. Let’s think about <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="2.085ex" height="2.009ex" style="vertical-align: -0.671ex; margin-left: -0.089ex;" viewBox="-38.5 -576.1 897.6 865.1" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-11-Title">
<title id="MathJax-SVG-11-Title">p_t</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-70" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="712" y="-213"></use>
</g>
</svg></span> as the recall probability at time <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="0.84ex" height="2.009ex" style="vertical-align: -0.338ex;" viewBox="0 -719.6 361.5 865.1" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-12-Title">
<title id="MathJax-SVG-12-Title">t</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-74" x="0" y="0"></use>
</g>
</svg></span>—then <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="2.156ex" height="2.009ex" style="vertical-align: -0.671ex;" viewBox="0 -576.1 928.1 865.1" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-13-Title">
<title id="MathJax-SVG-13-Title">x_t</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-78" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="809" y="-213"></use>
</g>
</svg></span> is a coin flip, with a <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="2.085ex" height="2.009ex" style="vertical-align: -0.671ex; margin-left: -0.089ex;" viewBox="-38.5 -576.1 897.6 865.1" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-14-Title">
<title id="MathJax-SVG-14-Title">p_t</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-70" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="712" y="-213"></use>
</g>
</svg></span>-weighted coin.</p>
<p>The <a href="https://en.wikipedia.org/wiki/Beta_distribution">Beta distribution</a> happens to be the <a href="https://en.wikipedia.org/wiki/Conjugate_prior">conjugate prior</a> for the Bernoulli distribution. So if our <em>a priori</em> belief about <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="2.085ex" height="2.009ex" style="vertical-align: -0.671ex; margin-left: -0.089ex;" viewBox="-38.5 -576.1 897.6 865.1" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-15-Title">
<title id="MathJax-SVG-15-Title">p_t</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-70" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="712" y="-213"></use>
</g>
</svg></span> follow a Beta distribution, that is, if <span class="mjpage mjpage__block"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="17.399ex" height="2.843ex" style="vertical-align: -0.838ex; margin-left: -0.089ex;" viewBox="-38.5 -863.1 7491.1 1223.9" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-16-Title">
<title id="MathJax-SVG-16-Title">p_t ∼ Beta(α_t, β_t)</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-70" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="712" y="-213"></use>
<use xlink:href="#MJMAIN-223C" x="1136" y="0"></use>
<use xlink:href="#MJMATHI-42" x="2193" y="0"></use>
<use xlink:href="#MJMATHI-65" x="2952" y="0"></use>
<use xlink:href="#MJMATHI-74" x="3419" y="0"></use>
<use xlink:href="#MJMATHI-61" x="3780" y="0"></use>
<use xlink:href="#MJMAIN-28" x="4310" y="0"></use>
<g transform="translate(4699,0)">
<use xlink:href="#MJMATHI-3B1" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="905" y="-213"></use>
</g>
<use xlink:href="#MJMAIN-2C" x="5695" y="0"></use>
<g transform="translate(6140,0)">
<use xlink:href="#MJMATHI-3B2" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="801" y="-326"></use>
</g>
<use xlink:href="#MJMAIN-29" x="7063" y="0"></use>
</g>
</svg></span> for specific <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="2.314ex" height="2.009ex" style="vertical-align: -0.671ex;" viewBox="0 -576.1 996.1 865.1" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-17-Title">
<title id="MathJax-SVG-17-Title">α_t</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-3B1" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="905" y="-213"></use>
</g>
</svg></span> and <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="2.142ex" height="2.676ex" style="vertical-align: -0.838ex;" viewBox="0 -791.3 922.1 1152.1" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-18-Title">
<title id="MathJax-SVG-18-Title">β_t</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-3B2" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="801" y="-326"></use>
</g>
</svg></span>, then observing the quiz result updates our belief about the recall probability to be: <span class="mjpage mjpage__block"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="34.843ex" height="2.843ex" style="vertical-align: -0.838ex; margin-left: -0.089ex;" viewBox="-38.5 -863.1 15001.8 1223.9" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-19-Title">
<title id="MathJax-SVG-19-Title">p_t | x_t ∼ Beta(α_t + x_t, β_t + 1 - x_t).</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-70" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="712" y="-213"></use>
<use xlink:href="#MJMAIN-7C" x="859" y="0"></use>
<g transform="translate(1137,0)">
<use xlink:href="#MJMATHI-78" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="809" y="-213"></use>
</g>
<use xlink:href="#MJMAIN-223C" x="2343" y="0"></use>
<use xlink:href="#MJMATHI-42" x="3399" y="0"></use>
<use xlink:href="#MJMATHI-65" x="4159" y="0"></use>
<use xlink:href="#MJMATHI-74" x="4625" y="0"></use>
<use xlink:href="#MJMATHI-61" x="4987" y="0"></use>
<use xlink:href="#MJMAIN-28" x="5516" y="0"></use>
<g transform="translate(5906,0)">
<use xlink:href="#MJMATHI-3B1" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="905" y="-213"></use>
</g>
<use xlink:href="#MJMAIN-2B" x="7124" y="0"></use>
<g transform="translate(8125,0)">
<use xlink:href="#MJMATHI-78" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="809" y="-213"></use>
</g>
<use xlink:href="#MJMAIN-2C" x="9053" y="0"></use>
<g transform="translate(9498,0)">
<use xlink:href="#MJMATHI-3B2" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="801" y="-326"></use>
</g>
<use xlink:href="#MJMAIN-2B" x="10642" y="0"></use>
<use xlink:href="#MJMAIN-31" x="11643" y="0"></use>
<use xlink:href="#MJMAIN-2212" x="12366" y="0"></use>
<g transform="translate(13367,0)">
<use xlink:href="#MJMATHI-78" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="809" y="-213"></use>
</g>
<use xlink:href="#MJMAIN-29" x="14295" y="0"></use>
<use xlink:href="#MJMAIN-2E" x="14684" y="0"></use>
</g>
</svg></span></p>
<blockquote>
<p><strong>Aside 0</strong> If you see a gibberish above instead of a mathematical equation (it can be hard to tell the difference sometimes…), you’re probably reading this on GitHub instead of the <a href="https://fasiha.github.io/ebisu/#bernoulli-quizzes">main Ebisu website</a> which has typeset all equations with MathJax. Read this document <a href="https://fasiha.github.io/ebisu/#bernoulli-quizzes">there</a>.</p>
<p><strong>Aside 1</strong> Notice that since <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="2.156ex" height="2.009ex" style="vertical-align: -0.671ex;" viewBox="0 -576.1 928.1 865.1" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-20-Title">
<title id="MathJax-SVG-20-Title">x_t</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-78" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="809" y="-213"></use>
</g>
</svg></span> is either 1 or 0, the updated parameters <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="19.642ex" height="2.843ex" style="vertical-align: -0.838ex;" viewBox="0 -863.1 8456.7 1223.9" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-21-Title">
<title id="MathJax-SVG-21-Title">(α + x_t, β + 1 - x_t)</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMAIN-28" x="0" y="0"></use>
<use xlink:href="#MJMATHI-3B1" x="389" y="0"></use>
<use xlink:href="#MJMAIN-2B" x="1252" y="0"></use>
<g transform="translate(2252,0)">
<use xlink:href="#MJMATHI-78" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="809" y="-213"></use>
</g>
<use xlink:href="#MJMAIN-2C" x="3181" y="0"></use>
<use xlink:href="#MJMATHI-3B2" x="3626" y="0"></use>
<use xlink:href="#MJMAIN-2B" x="4414" y="0"></use>
<use xlink:href="#MJMAIN-31" x="5415" y="0"></use>
<use xlink:href="#MJMAIN-2212" x="6138" y="0"></use>
<g transform="translate(7139,0)">
<use xlink:href="#MJMATHI-78" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="809" y="-213"></use>
</g>
<use xlink:href="#MJMAIN-29" x="8067" y="0"></use>
</g>
</svg></span> are <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="9.649ex" height="2.843ex" style="vertical-align: -0.838ex;" viewBox="0 -863.1 4154.6 1223.9" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-22-Title">
<title id="MathJax-SVG-22-Title">(α + 1, β)</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMAIN-28" x="0" y="0"></use>
<use xlink:href="#MJMATHI-3B1" x="389" y="0"></use>
<use xlink:href="#MJMAIN-2B" x="1252" y="0"></use>
<use xlink:href="#MJMAIN-31" x="2252" y="0"></use>
<use xlink:href="#MJMAIN-2C" x="2753" y="0"></use>
<use xlink:href="#MJMATHI-3B2" x="3198" y="0"></use>
<use xlink:href="#MJMAIN-29" x="3765" y="0"></use>
</g>
</svg></span> when the student correctly answered the quiz, and <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="9.649ex" height="2.843ex" style="vertical-align: -0.838ex;" viewBox="0 -863.1 4154.6 1223.9" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-23-Title">
<title id="MathJax-SVG-23-Title">(α, β + 1)</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMAIN-28" x="0" y="0"></use>
<use xlink:href="#MJMATHI-3B1" x="389" y="0"></use>
<use xlink:href="#MJMAIN-2C" x="1030" y="0"></use>
<use xlink:href="#MJMATHI-3B2" x="1475" y="0"></use>
<use xlink:href="#MJMAIN-2B" x="2263" y="0"></use>
<use xlink:href="#MJMAIN-31" x="3264" y="0"></use>
<use xlink:href="#MJMAIN-29" x="3765" y="0"></use>
</g>
</svg></span> when she answered incorrectly.</p>
<p><strong>Aside 2</strong> Even if you’re familiar with Bayesian statistics, if you’ve never worked with priors on probabilities, the meta-ness here might confuse you. What the above means is that, before we flipped our <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="2.085ex" height="2.009ex" style="vertical-align: -0.671ex; margin-left: -0.089ex;" viewBox="-38.5 -576.1 897.6 865.1" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-24-Title">
<title id="MathJax-SVG-24-Title">p_t</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-70" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="712" y="-213"></use>
</g>
</svg></span>-weighted coin (before we administered the quiz), we had a specific probability distribution representing the coin’s weighting <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="2.085ex" height="2.009ex" style="vertical-align: -0.671ex; margin-left: -0.089ex;" viewBox="-38.5 -576.1 897.6 865.1" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-25-Title">
<title id="MathJax-SVG-25-Title">p_t</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-70" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="712" y="-213"></use>
</g>
</svg></span>, <em>not</em> just a scalar number. After we observed the result of the coin flip, we updated our belief about the coin’s weighting—it <em>still</em> makes total sense to talk about the probability of something happening after it happens. Said another way, since we’re being Bayesian, something actually happening doesn’t preclude us from maintaining beliefs about what <em>could</em> have happened.</p>
</blockquote>
<p>This is totally ordinary, bread-and-butter Bayesian statistics. However, the major complication arises when the experiment took place not at time <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="0.84ex" height="2.009ex" style="vertical-align: -0.338ex;" viewBox="0 -719.6 361.5 865.1" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-26-Title">
<title id="MathJax-SVG-26-Title">t</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-74" x="0" y="0"></use>
</g>
</svg></span> but <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="1.894ex" height="2.343ex" style="vertical-align: -0.671ex;" viewBox="0 -719.6 815.4 1008.6" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-27-Title">
<title id="MathJax-SVG-27-Title">t_2</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-74" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMAIN-32" x="511" y="-213"></use>
</g>
</svg></span>: we had a Beta prior on <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="2.085ex" height="2.009ex" style="vertical-align: -0.671ex; margin-left: -0.089ex;" viewBox="-38.5 -576.1 897.6 865.1" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-28-Title">
<title id="MathJax-SVG-28-Title">p_t</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-70" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="712" y="-213"></use>
</g>
</svg></span> (probability of recall at time <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="0.84ex" height="2.009ex" style="vertical-align: -0.338ex;" viewBox="0 -719.6 361.5 865.1" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-29-Title">
<title id="MathJax-SVG-29-Title">t</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-74" x="0" y="0"></use>
</g>
</svg></span>) but the test is administered at some other time <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="1.894ex" height="2.343ex" style="vertical-align: -0.671ex;" viewBox="0 -719.6 815.4 1008.6" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-30-Title">
<title id="MathJax-SVG-30-Title">t_2</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-74" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMAIN-32" x="511" y="-213"></use>
</g>
</svg></span>.</p>
<p>How can we update our beliefs about the recall probability at time <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="0.84ex" height="2.009ex" style="vertical-align: -0.338ex;" viewBox="0 -719.6 361.5 865.1" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-31-Title">
<title id="MathJax-SVG-31-Title">t</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-74" x="0" y="0"></use>
</g>
</svg></span> to another time <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="1.894ex" height="2.343ex" style="vertical-align: -0.671ex;" viewBox="0 -719.6 815.4 1008.6" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-32-Title">
<title id="MathJax-SVG-32-Title">t_2</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-74" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMAIN-32" x="511" y="-213"></use>
</g>
</svg></span>, either earlier or later than <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="0.84ex" height="2.009ex" style="vertical-align: -0.338ex;" viewBox="0 -719.6 361.5 865.1" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-33-Title">
<title id="MathJax-SVG-33-Title">t</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-74" x="0" y="0"></use>
</g>
</svg></span>?</p>
<h3 id="moving-beta-distributions-through-time">Moving Beta distributions through time</h3>
<p>Our old friend Ebbinghaus comes to our rescue. According to the exponentially-decaying forgetting curve, the probability of recall at time <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="0.84ex" height="2.009ex" style="vertical-align: -0.338ex;" viewBox="0 -719.6 361.5 865.1" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-34-Title">
<title id="MathJax-SVG-34-Title">t</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-74" x="0" y="0"></use>
</g>
</svg></span> is <span class="mjpage mjpage__block"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="10.866ex" height="3.176ex" style="vertical-align: -0.671ex; margin-left: -0.089ex;" viewBox="-38.5 -1078.4 4678.3 1367.4" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-35-Title">
<title id="MathJax-SVG-35-Title">p_t = 2^{-t/h},</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-70" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="712" y="-213"></use>
<use xlink:href="#MJMAIN-3D" x="1136" y="0"></use>
<g transform="translate(2193,0)">
<use xlink:href="#MJMAIN-32" x="0" y="0"></use>
<g transform="translate(500,412)">
<use transform="scale(0.707)" xlink:href="#MJMAIN-2212" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="778" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMAIN-2F" x="1140" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-68" x="1640" y="0"></use>
</g>
</g>
<use xlink:href="#MJMAIN-2C" x="4361" y="0"></use>
</g>
</svg></span> for some notional half-life <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="1.339ex" height="2.176ex" style="vertical-align: -0.338ex;" viewBox="0 -791.3 576.5 936.9" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-36-Title">
<title id="MathJax-SVG-36-Title">h</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-68" x="0" y="0"></use>
</g>
</svg></span>. Let <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="8.543ex" height="2.676ex" style="vertical-align: -0.671ex;" viewBox="0 -863.1 3678.4 1152.1" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-37-Title">
<title id="MathJax-SVG-37-Title">t_2 = δ·t</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-74" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMAIN-32" x="511" y="-213"></use>
<use xlink:href="#MJMAIN-3D" x="1093" y="0"></use>
<use xlink:href="#MJMATHI-3B4" x="2149" y="0"></use>
<use xlink:href="#MJMAIN-22C5" x="2816" y="0"></use>
<use xlink:href="#MJMATHI-74" x="3316" y="0"></use>
</g>
</svg></span>. Then, <span class="mjpage mjpage__block"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="37.022ex" height="3.509ex" style="vertical-align: -1.005ex; margin-left: -0.089ex;" viewBox="-38.5 -1078.4 15940.2 1510.9" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-38-Title">
<title id="MathJax-SVG-38-Title">p_{t_2} = p_{δ t} = 2^{-δt/h} = (2^{-t/h})^δ = (p_t)^δ.</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-70" x="0" y="0"></use>
<g transform="translate(503,-150)">
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="0" y="0"></use>
<use transform="scale(0.574)" xlink:href="#MJMAIN-32" x="445" y="-243"></use>
</g>
<use xlink:href="#MJMAIN-3D" x="1494" y="0"></use>
<g transform="translate(2551,0)">
<use xlink:href="#MJMATHI-70" x="0" y="0"></use>
<g transform="translate(503,-164)">
<use transform="scale(0.707)" xlink:href="#MJMATHI-3B4" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="444" y="0"></use>
</g>
</g>
<use xlink:href="#MJMAIN-3D" x="4002" y="0"></use>
<g transform="translate(5058,0)">
<use xlink:href="#MJMAIN-32" x="0" y="0"></use>
<g transform="translate(500,412)">
<use transform="scale(0.707)" xlink:href="#MJMAIN-2212" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-3B4" x="778" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="1223" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMAIN-2F" x="1584" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-68" x="2085" y="0"></use>
</g>
</g>
<use xlink:href="#MJMAIN-3D" x="7818" y="0"></use>
<use xlink:href="#MJMAIN-28" x="8875" y="0"></use>
<g transform="translate(9264,0)">
<use xlink:href="#MJMAIN-32" x="0" y="0"></use>
<g transform="translate(500,412)">
<use transform="scale(0.707)" xlink:href="#MJMAIN-2212" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="778" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMAIN-2F" x="1140" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-68" x="1640" y="0"></use>
</g>
</g>
<g transform="translate(11432,0)">
<use xlink:href="#MJMAIN-29" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-3B4" x="550" y="583"></use>
</g>
<use xlink:href="#MJMAIN-3D" x="12514" y="0"></use>
<use xlink:href="#MJMAIN-28" x="13570" y="0"></use>
<g transform="translate(13960,0)">
<use xlink:href="#MJMATHI-70" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="712" y="-213"></use>
</g>
<g transform="translate(14819,0)">
<use xlink:href="#MJMAIN-29" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-3B4" x="550" y="583"></use>
</g>
<use xlink:href="#MJMAIN-2E" x="15623" y="0"></use>
</g>
</svg></span> That is, to fast-forward or rewind <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="2.085ex" height="2.009ex" style="vertical-align: -0.671ex; margin-left: -0.089ex;" viewBox="-38.5 -576.1 897.6 865.1" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-39-Title">
<title id="MathJax-SVG-39-Title">p_t</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-70" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="712" y="-213"></use>
</g>
</svg></span> to time <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="1.894ex" height="2.343ex" style="vertical-align: -0.671ex;" viewBox="0 -719.6 815.4 1008.6" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-40-Title">
<title id="MathJax-SVG-40-Title">t_2</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-74" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMAIN-32" x="511" y="-213"></use>
</g>
</svg></span>, we raise it to the <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="8.027ex" height="2.843ex" style="vertical-align: -0.838ex;" viewBox="0 -863.1 3456 1223.9" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-41-Title">
<title id="MathJax-SVG-41-Title">δ = t_2 / t</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-3B4" x="0" y="0"></use>
<use xlink:href="#MJMAIN-3D" x="722" y="0"></use>
<g transform="translate(1778,0)">
<use xlink:href="#MJMATHI-74" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMAIN-32" x="511" y="-213"></use>
</g>
<use xlink:href="#MJMAIN-2F" x="2593" y="0"></use>
<use xlink:href="#MJMATHI-74" x="3094" y="0"></use>
</g>
</svg></span> power.</p>
<p>Unfortunately, a Beta-distributed <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="2.085ex" height="2.009ex" style="vertical-align: -0.671ex; margin-left: -0.089ex;" viewBox="-38.5 -576.1 897.6 865.1" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-42-Title">
<title id="MathJax-SVG-42-Title">p_t</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-70" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="712" y="-213"></use>
</g>
</svg></span> becomes <em>non</em>-Beta-distributed when raised to any positive power <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="1.049ex" height="2.343ex" style="vertical-align: -0.338ex; margin-right: -0.016ex;" viewBox="0 -863.1 451.5 1008.6" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-43-Title">
<title id="MathJax-SVG-43-Title">δ</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-3B4" x="0" y="0"></use>
</g>
</svg></span>. For a quiz with recall probability given by <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="17.593ex" height="2.843ex" style="vertical-align: -0.838ex; margin-left: -0.089ex;" viewBox="-38.5 -863.1 7574.8 1223.9" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-44-Title">
<title id="MathJax-SVG-44-Title">p_t ∼ Beta(12, 12)</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-70" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="712" y="-213"></use>
<use xlink:href="#MJMAIN-223C" x="1136" y="0"></use>
<use xlink:href="#MJMATHI-42" x="2193" y="0"></use>
<use xlink:href="#MJMATHI-65" x="2952" y="0"></use>
<use xlink:href="#MJMATHI-74" x="3419" y="0"></use>
<use xlink:href="#MJMATHI-61" x="3780" y="0"></use>
<use xlink:href="#MJMAIN-28" x="4310" y="0"></use>
<g transform="translate(4699,0)">
<use xlink:href="#MJMAIN-31"></use>
<use xlink:href="#MJMAIN-32" x="500" y="0"></use>
</g>
<use xlink:href="#MJMAIN-2C" x="5700" y="0"></use>
<g transform="translate(6145,0)">
<use xlink:href="#MJMAIN-31"></use>
<use xlink:href="#MJMAIN-32" x="500" y="0"></use>
</g>
<use xlink:href="#MJMAIN-29" x="7146" y="0"></use>
</g>
</svg></span> for <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="0.84ex" height="2.009ex" style="vertical-align: -0.338ex;" viewBox="0 -719.6 361.5 865.1" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-45-Title">
<title id="MathJax-SVG-45-Title">t</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-74" x="0" y="0"></use>
</g>
</svg></span> one week after the last review (the middle histogram below), <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="5.293ex" height="2.343ex" style="vertical-align: -0.338ex;" viewBox="0 -863.1 2279.1 1008.6" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-46-Title">
<title id="MathJax-SVG-46-Title">δ > 1</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-3B4" x="0" y="0"></use>
<use xlink:href="#MJMAIN-3E" x="722" y="0"></use>
<use xlink:href="#MJMAIN-31" x="1778" y="0"></use>
</g>
</svg></span> shifts the density to the left (lower recall probability) while <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="5.293ex" height="2.343ex" style="vertical-align: -0.338ex;" viewBox="0 -863.1 2279.1 1008.6" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-47-Title">
<title id="MathJax-SVG-47-Title">δ < 1</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-3B4" x="0" y="0"></use>
<use xlink:href="#MJMAIN-3C" x="722" y="0"></use>
<use xlink:href="#MJMAIN-31" x="1778" y="0"></use>
</g>
</svg></span> does the opposite. Below shows the histogram of recall probability at the original half-life of seven days compared to that after two days (<span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="7.103ex" height="2.343ex" style="vertical-align: -0.338ex;" viewBox="0 -863.1 3058.1 1008.6" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-48-Title">
<title id="MathJax-SVG-48-Title">δ = 0.3</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-3B4" x="0" y="0"></use>
<use xlink:href="#MJMAIN-3D" x="722" y="0"></use>
<g transform="translate(1778,0)">
<use xlink:href="#MJMAIN-30"></use>
<use xlink:href="#MJMAIN-2E" x="500" y="0"></use>
<use xlink:href="#MJMAIN-33" x="779" y="0"></use>
</g>
</g>
</svg></span>) and three weeks (<span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="5.293ex" height="2.343ex" style="vertical-align: -0.338ex;" viewBox="0 -863.1 2279.1 1008.6" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-49-Title">
<title id="MathJax-SVG-49-Title">δ = 3</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-3B4" x="0" y="0"></use>
<use xlink:href="#MJMAIN-3D" x="722" y="0"></use>
<use xlink:href="#MJMAIN-33" x="1778" y="0"></use>
</g>
</svg></span>). <img src="figures/pidelta.png" alt="figures/pidelta.png"></p>
<p>We could approximate this <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="1.049ex" height="2.343ex" style="vertical-align: -0.338ex; margin-right: -0.016ex;" viewBox="0 -863.1 451.5 1008.6" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-50-Title">
<title id="MathJax-SVG-50-Title">δ</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-3B4" x="0" y="0"></use>
</g>
</svg></span> with a Beta random variable, but especially when over- or under-reviewing, the closest Beta fit is very poor. So let’s derive analytically the probability density function (PDF) for <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="2.221ex" height="3.176ex" style="vertical-align: -1.005ex; margin-left: -0.089ex;" viewBox="-38.5 -934.9 956.3 1367.4" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-51-Title">
<title id="MathJax-SVG-51-Title">p_t^δ</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-70" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-3B4" x="712" y="498"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="712" y="-395"></use>
</g>
</svg></span>. Recall the conventional way to obtain the density of a <a href="https://en.wikipedia.org/w/index.php?title=Random_variable&oldid=771423505#Functions_of_random_variables">nonlinearly-transformed random variable</a>. Since the new random variable <span class="mjpage mjpage__block"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="19.448ex" height="3.343ex" style="vertical-align: -1.005ex; margin-left: -0.089ex;" viewBox="-38.5 -1006.6 8373.3 1439.2" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-52-Title">
<title id="MathJax-SVG-52-Title">p_{t_2} = g(p_t) = (p_t)^δ,</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-70" x="0" y="0"></use>
<g transform="translate(503,-150)">
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="0" y="0"></use>
<use transform="scale(0.574)" xlink:href="#MJMAIN-32" x="445" y="-243"></use>
</g>
<use xlink:href="#MJMAIN-3D" x="1494" y="0"></use>
<use xlink:href="#MJMATHI-67" x="2551" y="0"></use>
<use xlink:href="#MJMAIN-28" x="3031" y="0"></use>
<g transform="translate(3421,0)">
<use xlink:href="#MJMATHI-70" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="712" y="-213"></use>
</g>
<use xlink:href="#MJMAIN-29" x="4280" y="0"></use>
<use xlink:href="#MJMAIN-3D" x="4947" y="0"></use>
<use xlink:href="#MJMAIN-28" x="6003" y="0"></use>
<g transform="translate(6393,0)">
<use xlink:href="#MJMATHI-70" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="712" y="-213"></use>
</g>
<g transform="translate(7252,0)">
<use xlink:href="#MJMAIN-29" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-3B4" x="550" y="583"></use>
</g>
<use xlink:href="#MJMAIN-2C" x="8056" y="0"></use>
</g>
</svg></span> and the inverse of this transformation is <span class="mjpage mjpage__block"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="24.258ex" height="3.509ex" style="vertical-align: -1.005ex; margin-left: -0.089ex;" viewBox="-38.5 -1078.4 10444.5 1510.9" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-53-Title">
<title id="MathJax-SVG-53-Title">p_t = g^{-1}(p_{t_2}) = (p_{t_2})^{1/δ},</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-70" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="712" y="-213"></use>
<use xlink:href="#MJMAIN-3D" x="1136" y="0"></use>
<g transform="translate(2193,0)">
<use xlink:href="#MJMATHI-67" x="0" y="0"></use>
<g transform="translate(481,412)">
<use transform="scale(0.707)" xlink:href="#MJMAIN-2212" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMAIN-31" x="778" y="0"></use>
</g>
</g>
<use xlink:href="#MJMAIN-28" x="3679" y="0"></use>
<g transform="translate(4068,0)">
<use xlink:href="#MJMATHI-70" x="0" y="0"></use>
<g transform="translate(503,-150)">
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="0" y="0"></use>
<use transform="scale(0.574)" xlink:href="#MJMAIN-32" x="445" y="-243"></use>
</g>
</g>
<use xlink:href="#MJMAIN-29" x="5285" y="0"></use>
<use xlink:href="#MJMAIN-3D" x="5952" y="0"></use>
<use xlink:href="#MJMAIN-28" x="7009" y="0"></use>
<g transform="translate(7398,0)">
<use xlink:href="#MJMATHI-70" x="0" y="0"></use>
<g transform="translate(503,-150)">
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="0" y="0"></use>
<use transform="scale(0.574)" xlink:href="#MJMAIN-32" x="445" y="-243"></use>
</g>
</g>
<g transform="translate(8615,0)">
<use xlink:href="#MJMAIN-29" x="0" y="0"></use>
<g transform="translate(389,412)">
<use transform="scale(0.707)" xlink:href="#MJMAIN-31" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMAIN-2F" x="500" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-3B4" x="1001" y="0"></use>
</g>
</g>
<use xlink:href="#MJMAIN-2C" x="10127" y="0"></use>
</g>
</svg></span> the transformed (exponentiated) random variable has probability density <span class="mjpage mjpage__block"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="36.729ex" height="13.176ex" style="vertical-align: -5.757ex; margin-bottom: -0.248ex;" viewBox="0 -3087.6 15813.8 5673" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-54-Title">
<title id="MathJax-SVG-54-Title">\begin{align} P(p_{t_2}) &= P\left(g^{-1}(p_{t_2})\right) ⋅ \frac{∂}{∂p_{t_2}} g^{-1}(p_{t_2}) \\ &= Beta(p_{t_2}^{1/δ}; α, β) ⋅ \frac{p_{t_2}^{1/δ - 1}}{δ}, \end{align}</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<g transform="translate(167,0)">
<g transform="translate(-11,0)">
<g transform="translate(0,1586)">
<use xlink:href="#MJMATHI-50" x="0" y="0"></use>
<use xlink:href="#MJMAIN-28" x="751" y="0"></use>
<g transform="translate(1141,0)">
<use xlink:href="#MJMATHI-70" x="0" y="0"></use>
<g transform="translate(503,-150)">
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="0" y="0"></use>
<use transform="scale(0.574)" xlink:href="#MJMAIN-32" x="445" y="-243"></use>
</g>
</g>
<use xlink:href="#MJMAIN-29" x="2358" y="0"></use>
</g>
</g>
<g transform="translate(2737,0)">
<g transform="translate(0,1586)">
<use xlink:href="#MJMAIN-3D" x="277" y="0"></use>
<use xlink:href="#MJMATHI-50" x="1334" y="0"></use>
<g transform="translate(2252,0)">
<use xlink:href="#MJSZ1-28"></use>
<g transform="translate(458,0)">
<use xlink:href="#MJMATHI-67" x="0" y="0"></use>
<g transform="translate(481,412)">
<use transform="scale(0.707)" xlink:href="#MJMAIN-2212" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMAIN-31" x="778" y="0"></use>
</g>
</g>
<use xlink:href="#MJMAIN-28" x="1944" y="0"></use>
<g transform="translate(2333,0)">
<use xlink:href="#MJMATHI-70" x="0" y="0"></use>
<g transform="translate(503,-150)">
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="0" y="0"></use>
<use transform="scale(0.574)" xlink:href="#MJMAIN-32" x="445" y="-243"></use>
</g>
</g>
<use xlink:href="#MJMAIN-29" x="3550" y="0"></use>
<use xlink:href="#MJSZ1-29" x="3940" y="-1"></use>
</g>
<use xlink:href="#MJMAIN-22C5" x="6873" y="0"></use>
<g transform="translate(7151,0)">
<g transform="translate(120,0)">
<rect stroke="none" width="1868" height="60" x="0" y="220"></rect>
<use xlink:href="#MJMAIN-2202" x="668" y="676"></use>
<g transform="translate(60,-736)">
<use xlink:href="#MJMAIN-2202" x="0" y="0"></use>
<g transform="translate(531,0)">
<use xlink:href="#MJMATHI-70" x="0" y="0"></use>
<g transform="translate(503,-150)">
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="0" y="0"></use>
<use transform="scale(0.574)" xlink:href="#MJMAIN-32" x="445" y="-243"></use>
</g>
</g>
</g>
</g>
</g>
<g transform="translate(9260,0)">
<use xlink:href="#MJMATHI-67" x="0" y="0"></use>
<g transform="translate(481,412)">
<use transform="scale(0.707)" xlink:href="#MJMAIN-2212" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMAIN-31" x="778" y="0"></use>
</g>
</g>
<use xlink:href="#MJMAIN-28" x="10746" y="0"></use>
<g transform="translate(11135,0)">
<use xlink:href="#MJMATHI-70" x="0" y="0"></use>
<g transform="translate(503,-150)">
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="0" y="0"></use>
<use transform="scale(0.574)" xlink:href="#MJMAIN-32" x="445" y="-243"></use>
</g>
</g>
<use xlink:href="#MJMAIN-29" x="12353" y="0"></use>
</g>
<g transform="translate(0,-1731)">
<use xlink:href="#MJMAIN-3D" x="277" y="0"></use>
<use xlink:href="#MJMATHI-42" x="1334" y="0"></use>
<use xlink:href="#MJMATHI-65" x="2093" y="0"></use>
<use xlink:href="#MJMATHI-74" x="2560" y="0"></use>
<use xlink:href="#MJMATHI-61" x="2921" y="0"></use>
<use xlink:href="#MJMAIN-28" x="3451" y="0"></use>
<g transform="translate(3840,0)">
<use xlink:href="#MJMATHI-70" x="0" y="0"></use>
<g transform="translate(503,521)">
<use transform="scale(0.707)" xlink:href="#MJMAIN-31" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMAIN-2F" x="500" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-3B4" x="1001" y="0"></use>
</g>
<g transform="translate(503,-279)">
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="0" y="0"></use>
<use transform="scale(0.574)" xlink:href="#MJMAIN-32" x="445" y="-243"></use>
</g>
</g>
<use xlink:href="#MJMAIN-3B" x="5466" y="0"></use>
<use xlink:href="#MJMATHI-3B1" x="5911" y="0"></use>
<use xlink:href="#MJMAIN-2C" x="6551" y="0"></use>
<use xlink:href="#MJMATHI-3B2" x="6997" y="0"></use>
<use xlink:href="#MJMAIN-29" x="7563" y="0"></use>
<use xlink:href="#MJMAIN-22C5" x="8175" y="0"></use>
<g transform="translate(8453,0)">
<g transform="translate(342,0)">
<rect stroke="none" width="2650" height="60" x="0" y="220"></rect>
<g transform="translate(60,938)">
<use xlink:href="#MJMATHI-70" x="0" y="0"></use>
<g transform="translate(503,521)">
<use transform="scale(0.707)" xlink:href="#MJMAIN-31" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMAIN-2F" x="500" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-3B4" x="1001" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMAIN-2212" x="1445" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMAIN-31" x="2224" y="0"></use>
</g>
<g transform="translate(503,-279)">
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="0" y="0"></use>
<use transform="scale(0.574)" xlink:href="#MJMAIN-32" x="445" y="-243"></use>
</g>
</g>
<use xlink:href="#MJMATHI-3B4" x="1102" y="-738"></use>
</g>
</g>
<use xlink:href="#MJMAIN-2C" x="11565" y="0"></use>
</g>
</g>
</g>
</g>
</svg></span> since <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="22.241ex" height="2.843ex" style="vertical-align: -0.838ex;" viewBox="0 -863.1 9576.1 1223.9" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-55-Title">
<title id="MathJax-SVG-55-Title">P(p_t) = Beta(p_t; α, β)</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-50" x="0" y="0"></use>
<use xlink:href="#MJMAIN-28" x="751" y="0"></use>
<g transform="translate(1141,0)">
<use xlink:href="#MJMATHI-70" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="712" y="-213"></use>
</g>
<use xlink:href="#MJMAIN-29" x="2000" y="0"></use>
<use xlink:href="#MJMAIN-3D" x="2667" y="0"></use>
<use xlink:href="#MJMATHI-42" x="3723" y="0"></use>
<use xlink:href="#MJMATHI-65" x="4483" y="0"></use>
<use xlink:href="#MJMATHI-74" x="4949" y="0"></use>
<use xlink:href="#MJMATHI-61" x="5311" y="0"></use>
<use xlink:href="#MJMAIN-28" x="5840" y="0"></use>
<g transform="translate(6230,0)">
<use xlink:href="#MJMATHI-70" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="712" y="-213"></use>
</g>
<use xlink:href="#MJMAIN-3B" x="7089" y="0"></use>
<use xlink:href="#MJMATHI-3B1" x="7534" y="0"></use>
<use xlink:href="#MJMAIN-2C" x="8174" y="0"></use>
<use xlink:href="#MJMATHI-3B2" x="8620" y="0"></use>
<use xlink:href="#MJMAIN-29" x="9186" y="0"></use>
</g>
</svg></span>, the Beta density on the recall probability at time <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="0.84ex" height="2.009ex" style="vertical-align: -0.338ex;" viewBox="0 -719.6 361.5 865.1" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-56-Title">
<title id="MathJax-SVG-56-Title">t</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-74" x="0" y="0"></use>
</g>
</svg></span>, and <span class="mjpage"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="23.235ex" height="6.343ex" style="vertical-align: -2.171ex;" viewBox="0 -1796 10003.8 2730.8" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-57-Title">
<title id="MathJax-SVG-57-Title">\frac{∂}{∂p_{t_2}} g^{-1}(p_{t_2})^{1/δ} = \frac{p_{t_2}^{1/δ - 1}}{δ}</title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<g transform="translate(120,0)">
<rect stroke="none" width="1474" height="60" x="0" y="220"></rect>
<use transform="scale(0.707)" xlink:href="#MJMAIN-2202" x="777" y="651"></use>
<g transform="translate(60,-451)">
<use transform="scale(0.707)" xlink:href="#MJMAIN-2202" x="0" y="0"></use>
<g transform="translate(375,0)">
<use transform="scale(0.707)" xlink:href="#MJMATHI-70" x="0" y="0"></use>
<g transform="translate(356,-167)">
<use transform="scale(0.574)" xlink:href="#MJMATHI-74" x="0" y="0"></use>
<use transform="scale(0.574)" xlink:href="#MJMAIN-32" x="361" y="-323"></use>
</g>
</g>
</g>
</g>
<g transform="translate(1714,0)">
<use xlink:href="#MJMATHI-67" x="0" y="0"></use>
<g transform="translate(481,362)">
<use transform="scale(0.707)" xlink:href="#MJMAIN-2212" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMAIN-31" x="778" y="0"></use>
</g>
</g>
<use xlink:href="#MJMAIN-28" x="3200" y="0"></use>
<g transform="translate(3590,0)">
<use xlink:href="#MJMATHI-70" x="0" y="0"></use>
<g transform="translate(503,-150)">
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="0" y="0"></use>
<use transform="scale(0.574)" xlink:href="#MJMAIN-32" x="445" y="-243"></use>
</g>
</g>
<g transform="translate(4807,0)">
<use xlink:href="#MJMAIN-29" x="0" y="0"></use>
<g transform="translate(389,362)">
<use transform="scale(0.707)" xlink:href="#MJMAIN-31" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMAIN-2F" x="500" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-3B4" x="1001" y="0"></use>
</g>
</g>
<use xlink:href="#MJMAIN-3D" x="6596" y="0"></use>
<g transform="translate(7375,0)">
<g transform="translate(397,0)">
<rect stroke="none" width="2110" height="60" x="0" y="220"></rect>
<g transform="translate(60,873)">
<use transform="scale(0.707)" xlink:href="#MJMATHI-70" x="0" y="0"></use>
<g transform="translate(356,387)">
<use transform="scale(0.574)" xlink:href="#MJMAIN-31" x="0" y="0"></use>
<use transform="scale(0.574)" xlink:href="#MJMAIN-2F" x="500" y="0"></use>
<use transform="scale(0.574)" xlink:href="#MJMATHI-3B4" x="1001" y="0"></use>
<use transform="scale(0.574)" xlink:href="#MJMAIN-2212" x="1445" y="0"></use>
<use transform="scale(0.574)" xlink:href="#MJMAIN-31" x="2224" y="0"></use>
</g>
<g transform="translate(356,-244)">
<use transform="scale(0.574)" xlink:href="#MJMATHI-74" x="0" y="0"></use>
<use transform="scale(0.574)" xlink:href="#MJMAIN-32" x="361" y="-323"></use>
</g>
</g>
<use transform="scale(0.707)" xlink:href="#MJMATHI-3B4" x="1270" y="-640"></use>
</g>
</g>
</g>
</svg></span>. Following some algebra, the final density is <span class="mjpage mjpage__block"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="33.107ex" height="6.843ex" style="vertical-align: -2.671ex;" viewBox="0 -1796 14254.5 2946.1" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-58-Title">
<title id="MathJax-SVG-58-Title"> P(p; p_t^δ) = \frac{p^{α/δ - 1} · (1-p^{1/δ})^{β-1}}{δ · B(α, β)}, </title>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<use xlink:href="#MJMATHI-50" x="0" y="0"></use>
<use xlink:href="#MJMAIN-28" x="751" y="0"></use>
<use xlink:href="#MJMATHI-70" x="1141" y="0"></use>
<use xlink:href="#MJMAIN-3B" x="1644" y="0"></use>
<g transform="translate(2089,0)">
<use xlink:href="#MJMATHI-70" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-3B4" x="712" y="498"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-74" x="712" y="-395"></use>
</g>
<use xlink:href="#MJMAIN-29" x="3007" y="0"></use>
<use xlink:href="#MJMAIN-3D" x="3674" y="0"></use>
<g transform="translate(4453,0)">
<g transform="translate(397,0)">
<rect stroke="none" width="9004" height="60" x="0" y="220"></rect>
<g transform="translate(60,770)">
<use xlink:href="#MJMATHI-70" x="0" y="0"></use>
<g transform="translate(503,362)">
<use transform="scale(0.707)" xlink:href="#MJMATHI-3B1" x="0" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMAIN-2F" x="640" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMATHI-3B4" x="1141" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMAIN-2212" x="1585" y="0"></use>
<use transform="scale(0.707)" xlink:href="#MJMAIN-31" x="2364" y="0"></use>