This is a market in a series on markets for possible quantified self experiments I might run.
Context here, in short: I will put up >10 of these markets, run the "best" one (my own judgment, but probably just the one with the highest expected Cohen's d), and a random one (resolving them to the outcome), and will resolve all the others as N/A. In all experiments, I will be using the statistical method detailed here, code for it here.
This trial will not be blinded. As such, even though I try to not form an opinion on its outcome, all kinds of subconscious biases might creep in. Sorry for this confounder while forecasting.
50 samples, 25 intervention (I try to follow the Pomodoro method as best as I can, probably by installing a TAP of some sort), 25 non-intervention (I just try to do work as normally), chosen randomly via echo -e "pomodoro\nno pomorodo" | shuf | tail -1
. Expected duration of trial: 2 months.
In general, I measure productivity by a daily retrospective using this script with past data here (more info here).
Past happiness data can be found here.
Finally the resolution is here! TL;DR: d≈0.26.
Took me a bit longer because two weeks ago I realized I hadn't collected enough datapoints on productivity, so I had to go back. Now I have 52 datapoints (27 pomodoro, 25 without).
Using this script, I execute this code:
ispom=get_ispom()
mental=get_mental()
mental_pom=pd.merge_asof(ispom, mental, left_on='date', right_on='datetime', direction='forward', tolerance=pd.Timedelta('1d'))
mental_pom=mental_pom[mental_pom['productivity'].notna()]
with_pom=mental_pom[mental_pom['ispomodoro']==1]
no_pom=mental_pom[mental_pom['ispomodoro']==0]
pom_ds=(with_pom[['productivity', 'creativity', 'sublen']].describe().loc['mean',:]-no_pom[['productivity', 'creativity', 'sublen']].describe().loc['mean',:])/mental_pom[['productivity', 'creativity', 'sublen']].describe().loc['std', :]
pom_d_sigmas=with_pom[['productivity', 'creativity', 'sublen']].describe().loc['std',:]-no_pom[['productivity', 'creativity', 'sublen']].describe().loc['std',:]
likelihood_ratio_test(placebo_likelihood_ratio(with_pom['productivity'], no_pom['productivity']))
The result for pom_ds
is
productivity 0.259951
creativity -0.041504
sublen -0.147437
and the likelihood ratio is:
>>> likelihood_ratio_test(placebo_likelihood_ratio(with_pom['productivity'], no_pom['productivity']))
6.225107192981073
This corresponds to a p-value of
>>> llrt_pval(6.225107192981073)
0.06906197266251937
Which is, uh, significant enough for my purposes.
Thanks for predicting, everyone! See you in the next market.
I now have collected 17 datapoints for this market.