5D Library › Classical and Statistical Mechanics of Human Action · 中文
Chapter 8 Practice and a Pre-Registered Trial
Part 1 A four-step barrier audit
The first seven chapters come down to four numbers that can be logged every week. They measure not “willpower” but the outside conditions that get a person started and keep them going.
- Start-up friction. Minutes from sitting down (or opening the computer) to the first useful action, as the week’s median. This is Chapter 2’s static friction: the force needed to start.
- Barrier height. The number of set-up steps or decisions before that first useful action (finding materials, choosing a topic, opening software, deciding where to begin). This is Chapter 3’s .
- Outside ratchet. The number of people who expect to see your output on a fixed day each week (partners, students, collaborators). This is the steady outside pull and peer coupling of Chapters 3 and 5.
- Feedback delay. Days from finishing a piece of work to the first visible response to it. This is Chapter 2’s “grip”: how quickly effort turns into visible progress.
Calculation
The audit applied to one week’s log. The log is invented; anyone can keep the same columns in a notebook or spreadsheet. The targets are the author’s starting values, not norms, and should be adjusted to one’s own records.
# Four-step barrier audit for one person (or one team) over one week.
# The log is invented here; anyone can keep the same columns in a notebook or a spreadsheet.
# Targets are the author's starting values, not norms; adjust them to your own records.
from statistics import median
# each working session: (minutes from sitting down to the first useful action,
# separate set-up steps or decisions before that action)
sessions = [(14, 4), (3, 1), (22, 5), (6, 2), (2, 1), (18, 4), (9, 3)]
watchers = 2 # people who expect to see your output on a fixed day each week
feedback_days = [6, 6, 7] # days from finishing a piece of work to the first visible response to it
start = median(s[0] for s in sessions)
steps = median(s[1] for s in sessions)
delay = median(feedback_days)
checks = [("1 start-up friction: median minutes to first action", start, start <= 5, "<= 5 min"),
("2 barrier height: median set-up steps before it", steps, steps <= 2, "<= 2"),
("3 outside ratchet: people expecting output weekly", watchers, watchers >= 2, ">= 2"),
("4 feedback delay: median days to a visible result", delay, delay <= 2, "<= 2 days")]
for name, value, ok, target in checks:
print(f"{name:52s} {value:>5} target {target:9s} {'OK' if ok else 'ACT'}")
worst = [c[0] for c in checks if not c[2]]
print(f"{len(worst)} of 4 need action; change one lever at a time and keep logging, so the effect can be seen")
# 1 start-up friction: median minutes to first action 9 target <= 5 min ACT
# 2 barrier height: median set-up steps before it 3 target <= 2 ACT
# 3 outside ratchet: people expecting output weekly 2 target >= 2 OK
# 4 feedback delay: median days to a visible result 6 target <= 2 days ACT
# 3 of 4 need action; change one lever at a time and keep logging, so the effect can be seenThis week three items need action. The order matters. The model suggests that lowering the barrier (laying out materials the night before, writing the first step as a concrete action) shortens both the time to start and the time to relapse, so it should be paired with an outside ratchet (Chapter 3); this week that item is already on target and should be kept. Feedback delay can be shortened by cutting work into smaller units that can be shown the same day. Change one lever at a time and keep logging, so that you can see which one worked.
Note
This audit is not a psychological assessment and cannot diagnose anything. If difficulty starting persists, together with low mood, loss of interest, or marked problems with sleep or concentration, please seek a professional assessment (see the note at the start of the preface).
Part 2 A pre-registered trial
Question
In a 30-day online course, compared with studying alone, does the rule “complete two logged peer-tutoring sessions to unlock the next stage” raise the 30-day completion rate and the blind-marked final test score?
Chapter 5 showed that the original idea, “tutor two classmates until they pass before unlocking”, jams a closed class, so the trial uses the workable version counted by tutoring sessions.
Design
| Element | Specification |
|---|---|
| Participants | Adults aged 18 or over who sign up voluntarily for a 30-day online course; course content, price and schedule identical in both arms; written informed consent |
| Design | Individually randomised, two parallel arms, 1:1 allocation; each arm forms its own separate learning community to avoid contamination; tutoring pairings in arm B drawn at random within the arm |
| Arm A (control) | Study alone: the same materials, the same daily reminders, the same within-arm Q&A forum; passing a stage quiz unlocks the next stage |
| Arm B (intervention) | Everything in arm A, plus: after passing each stage, complete one logged tutoring session of at least 20 minutes with each of two different classmates in the arm (confirmed by the tutee) before the next stage unlocks; if no classmate is available within 48 hours, the stage unlocks automatically |
| Co-primary outcomes | (1) 30-day completion: share passing all four stage quizzes within 30 days; (2) final test score on day 30: every randomised participant is invited, finished or not; the questions are not released in advance and are marked by assessors who do not know the arm |
| Secondary outcomes | Day-60 retention test; study time (platform logs); day of dropping out; number of tutoring sessions; satisfaction; adverse experiences (self-rated stress and burden) |
| Analysis | Intention to treat; completion compared as a risk difference with a 97.5 % confidence interval; test score by a mixed model with a random effect for tutoring group; missing scores handled by multiple imputation, with sensitivity analyses |
| Blinding | Participants and tutors cannot be blinded (they necessarily know whether they are tutoring); markers and analysts do not know the arm |
Note
The original idea called the trial “double-blind”. Here participants cannot fail to know whether they are asked to tutor classmates, so double blinding is impossible; what can be done is assessor blinding (markers do not know the arm) and analyst blinding (arms are coded during analysis). The book has been changed accordingly.
Sample size
Calculation
# Sample size for two co-primary outcomes, each tested at two-sided alpha = 0.025 (so the pair keeps 0.05):
# (1) completion of the 30-day course, a proportion; (2) blind-marked final test score, standardised.
# Learners in the teach-to-unlock arm tutor each other in small groups, so their outcomes are correlated:
# inflate by the design effect 1 + (m - 1) * ICC.
import math
from statistics import NormalDist
N = NormalDist()
def n_two_props(p1, p2, alpha, power):
za, zb = N.inv_cdf(1 - alpha / 2), N.inv_cdf(power)
pbar = (p1 + p2) / 2
num = za * math.sqrt(2 * pbar * (1 - pbar)) + zb * math.sqrt(p1 * (1 - p1) + p2 * (1 - p2))
return math.ceil((num / (p2 - p1)) ** 2)
def n_two_means(d, alpha, power):
za, zb = N.inv_cdf(1 - alpha / 2), N.inv_cdf(power)
return math.ceil(2 * ((za + zb) / d) ** 2)
deff = 1 + (3 - 1) * 0.05 # groups of 3, intraclass correlation 0.05 (assumed)
for p1, p2 in ((0.40, 0.52), (0.40, 0.55)):
n = n_two_props(p1, p2, 0.025, 0.90)
print(f"completion {100 * p1:.0f} % -> {100 * p2:.0f} %: {n} per arm, {math.ceil(n * deff)} with design effect {deff:.2f}")
for d in (0.30, 0.35):
n = n_two_means(d, 0.025, 0.90)
print(f"test score d = {d:.2f}: {n} per arm, {math.ceil(n * deff)} with design effect")
need = max(math.ceil(n_two_props(0.40, 0.52, 0.025, 0.90) * deff), math.ceil(n_two_means(0.30, 0.025, 0.90) * deff))
print(f"plan: {need} randomised per arm ({2 * need} in all); everyone is tested on day 30, finished or not")
# completion 40 % -> 52 %: 426 per arm, 469 with design effect 1.10
# completion 40 % -> 55 %: 273 per arm, 301 with design effect 1.10
# test score d = 0.30: 276 per arm, 304 with design effect
# test score d = 0.35: 203 per arm, 224 with design effect
# plan: 469 randomised per arm (938 in all); everyone is tested on day 30, finished or notEach co-primary outcome is tested at two-sided α = 0.025, so that the overall type I error rate stays at or below 0.05. To detect a rise in completion from 40 % to 52 % with 90 % power needs 426 per arm; learners in arm B influence each other within groups of three, and allowing for a design effect at an intraclass correlation of 0.05 gives 469 per arm. The test score, at a difference of 0.30 standard deviations, needs fewer. The protocol plans 469 randomised per arm, 938 in all. The 40 % baseline completion and the intraclass correlation are assumptions to be checked in an internal pilot of the first 100 participants; if baseline completion is clearly different, the sample size will be recalculated before the main trial.
Decision rule
Calculation
# Decision rule, fixed before any data are seen. Each co-primary outcome is judged on its own
# 97.5 % confidence interval (two-sided alpha 0.025 each) against its smallest effect worth acting on.
SESOI = {"completion (percentage points)": 10.0, "blind test score (SD units)": 0.25}
def verdict(name, diff, lo, hi):
s = SESOI[name]
if lo >= s:
v = f"benefit of at least {s:g}"
elif lo > 0:
v = "benefit; size not shown to reach the threshold"
elif hi < 0:
v = "harm: teach-to-unlock did worse"
elif lo >= -s and hi <= s:
v = "no difference worth acting on"
else:
v = "unclear"
return f"{name:32s} {diff:+6.2f} ({lo:+6.2f} to {hi:+6.2f}): {v}"
# Invented results, only to show how the trial will be reported.
print(verdict("completion (percentage points)", 6.0, -1.5, 13.5))
print(verdict("blind test score (SD units)", 0.31, 0.12, 0.50))
print(verdict("completion (percentage points)", -9.0, -16.0, -2.0))
print("the method is recommended only if neither outcome shows harm and at least one shows benefit")
# completion (percentage points) +6.00 ( -1.50 to +13.50): unclear
# blind test score (SD units) +0.31 ( +0.12 to +0.50): benefit; size not shown to reach the threshold
# completion (percentage points) -9.00 (-16.00 to -2.00): harm: teach-to-unlock did worse
# the method is recommended only if neither outcome shows harm and at least one shows benefitThe example results are invented, to show in advance how the results will be reported. The smallest effect worth acting on is 10 percentage points for completion and 0.25 standard deviations for the test score. The rule will be recommended only if neither outcome shows harm and at least one shows benefit.
What this trial cannot show
The trial compares a “package”: arm B learners receive commitment, extra rehearsal and more personal contact at once, and the trial cannot separate the contribution of each. It tests one course, one online format and one group of volunteer adults; its results cannot be carried over directly to school pupils, classroom teaching or other subjects. Nor does it test any rule requiring learners to recruit new learners (see the note in Chapter 5).
Ethics and conflicts of interest
The trial must be approved by an independent ethics committee, obtain informed consent, and register its protocol, analysis plan and decision rule before the first participant is enrolled (Chan et al. 2013; Nosek et al. 2018). Participants may withdraw at any time without losing access to the course materials. The report will follow CONSORT and account for the clustering created by tutoring groups (Campbell et al. 2012).
Disclosure
The author uses this book as the methodological basis of his community cognition courses, 5D Ascension Cards (Dimensional Shift Card Decks) and the Yafu AI knowledge base, and so has a direct commercial interest in its subject and in the result of the Chapter 8 trial. The book promotes no course, card deck or product and makes no health or therapeutic claim; the trial is designed to be run and analysed by researchers independent of the author’s business; all the code and the study protocol are published openly for anyone to check. To limit the influence of this interest, the protocol, analysis code and decision rule are published before enrolment, and the results, data and code will be published whatever they show.
References
Fan, Y. (2026). Classical and Statistical Mechanics of Human Action: Psychological Inertia, Static Friction Thresholds, Kramers Escape Rate in Double-Well Potentials and Habit Phase Transitions, Read Beside East Asian Philosophy of Practice [行动的经典与统计力学] (Version 1.0.0). 5D Library. https://doi.org/10.5281/zenodo.23738774 · Licensed under Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0).