Suggestion: run several simulations and use their average + confidence intervals

Currently, when using the simulator, only one graph absed on oen simulation is plotted. However, I think it would be beneficial to use 5-10 simulations and make the final graph an average of those, plus confidence add intervals.
Kinda like this:

Use different seeds for each simulation.
This also means that the simulation will be 5-10 times slower, however. I think we should try it first and see how bad the slowdown is.
@sorata pinging because this was originally your idea
@L.M.Sherlock pinging because you are The FSRS-Man
@A_Blokee pinging because you are the only one who knows how to plot stuff, or at least the only one who puts that knowledge to use for the sake of Anki

EDIT: you can kind of do that by running several simulations with a different value of “Days to simulate”

Shorter timeframe:

3 Likes

Based on that graph the variance looks almost negligible

1 Like

Yeah, but I wonder if there might be something I’m missing. I still would like to see a proper graph where everything is the same, only the seed is different.
If the variance is small even then, then we can ditch this idea.

1 Like

There.

Maybe my decks just weird but that is significantly more.

Still don’t think its worth it personally though.

If you want to try it:

2 Likes

Well, at least you got the idea out from the deep abyss of discord. The concerns you had are still valid, no way to do this without making the compute time longer. Or we only do this conditionally in some cases thereby confusing users.

I don’t know how to build from source code :sweat_smile:
Also, I’ve tried this (using different “Days to simulate”) on another preset, and it seems like there’s more variance

Maybe variance is harder to see on longer timeframes (the very first graph spans around 10 years, this one around 1 year)

I would have expected that the simulations would diverge more over time.
It’s weird that they are all so close.

Interesting results with a low timeframe and a cap on review count.

Review graph

Time graph

No difference in review count but there is with time.

Maybe a checkbox saying something like “Compute confidence intervals” could be helpful? Or maybe something like “Compute confidence intervals (might take a long time)” to emphasize that it might take longer?

Yeah, but there are two many options already and this one wouldn’t even make sense to a normal human. I bet you’ll see a lot of questions on the forums about it.

1 Like

What if we hide it behind a ui thingy called “Expert” or similar?

Ah wait, @rossgb do you remember that issue with number of reviews you have for a particular day changing when you change days to simulate? Isn’t that it? I guess I solved the issue? (Or all of you knew it before)?

This might need some work otherwise we’re gonna get bug reports from confused users who’ve got no idea what’s happening.

I’ll bet that it’s never happening.

If I may brainstorm too: a pop-up that allows you to cancel midway?

1 Like

You basically do this in a terminal:

git clone --single-branch --branch=random-simulator-seed https://github.com/Luc-Mcgrady/anki.git random-simulator-seed-folder

The above downloads the repo from Luc-Mcgrady, but only the branch random-simulator-seed, which is downloaded into the folder random-simulator-seed-folder.

cd random-simulator-seed-folder/

The above enters the folder.

./run

This command builds the entire branch and then opens the newly compiled anki. It might take quite a long time depending on your hardware.

For more info, see:

1 Like

I’m confused. I’m not sure what you are talking about.

It turned out that the issue I had earlier was because Jarrett was smoothing the data with a moving average. I don’t see how this applies to what we are discussing now.

That’s the other one where tooltip data was one day off. You also had the data for same day appearing different when you put days to simulate 30 versus 60. And I don’t remember Jarrett talking about that.

The first two commands worked, the last one (./run) didn’t

It’s

.\run

if you’re on windows.

1 Like

You’re probably going to need ninja/n2 and I think also rsync installed to get that to actually work.

edit:
rustup too

2 Likes

That is not clear to an average user (how many people know what’s a “confidence interval”?), and splitting the UI into Beginner/Advanced mode is something I’ve proposed a long time ago and the responses (especially from Dae) were lukewarm at best.

1 Like