Bayesian change detection models? #feature #311
Replies: 8 comments
-
@hyiltiz Sounds interesting, but what additional input parameters would this model need? All the data we currently have is whether the use performed the habit or not on a given day. |
Beta Was this translation helpful? Give feedback.
-
The input parameters would depend on the type of habit since that would characterize the model. For each habit, statistically speaking, we could see it as the preferred events of all the possible events that could happen, and each events have their outcomes (utilities). Perhaps this would be easier if I follow up with my previous two examples: Habit 1: Sleep before midnight (the sooner the better) Habit 2: Drinking tea in the morning
Then, we could even monitor when they are not likely to form a habit, and their habit is endangered, so to speak (change detection), in addition to just simply prediction if it is happening (score). I understand that this is quite advanced as most users wouldn't be able to understand the model or how it works, unless explained very carefully in clear plain language. Here is the link for the paper (was on phone previously): https://arxiv.org/abs/0710.3742 |
Beta Was this translation helpful? Give feedback.
-
What about a model like
For me, abstaining from news and social media three days a week is a habit I'm working on, but if I cheat even a little, for example by checking one social media account, then it becomes "well I can't check the habit for today, might as well party right? ::loads politico.com::" and that's not necessarily the best outcome 😂 |
Beta Was this translation helpful? Give feedback.
-
Could you define a habit quality/value range slider? |
Beta Was this translation helpful? Give feedback.
-
I am willing to write an interface that handles the internal logic (the statistical modeling) correctly for this, if @iSoron or someone else can show me an example. I have no experience and willingness to write Java or Kotlin at all, but I "speak" a dozen of them so shouldn't be hard especially it will mostly be math. The function will be something like this:
Arguably, Anyone interested? |
Beta Was this translation helpful? Give feedback.
-
@deutrino @extensibleseth We are currently working on numerical habits (e.g., how many miles did you run today?) and after that works well enough, the plan is to add support to other variations (e.g. How well did you do something? Good, acceptable, poor?). Behind the scenes, this just assign a numerical value for each option, say, from 1 to 10. What @hyiltiz is suggesting seems to be different, though. We could certainly make the app accept a customized set of answers (e.g. What did you drink today? Milk, Tea, Coffee?), let the user assign a certain score (or utility) to each answer (e.g. Milk: 100 points, Tea: 50 points, Coffee: 10 points), then compute the current score based on these numbers. What is not clear to me is why do we need the users to also specify the difficulty. If the users assign very high utility to a certain label, but never chooses it, it should be immediately clear that the label is difficult. |
Beta Was this translation helpful? Give feedback.
-
I think difficulty could be subjective and objective as well, and when it comes to shaping habits, those who have "strong will power" might even tame "difficult" habits (subjective or objective). I guess, as for subjective difficulty, we can ignore it or only use it as prior (a starting point), and infer/compute objective difficulty based on the habit history, as @iSoron suggested. |
Beta Was this translation helpful? Give feedback.
-
Just wanted to follow up. What do you guys think? Shall we drop this for now? Otherwise I could write up the function I mentioned above and send a pull request. |
Beta Was this translation helpful? Give feedback.
-
I checked out the Wikipedia page on exponential smoothing, and was quite disappointed by the algorithm, since it does not take into account many possible factors, such as habit difficulty, possible causes of failure etc. Consider I would like to try to sleep before midnight, then sleeping at 1 is much better than 4, but the current model does not address that. Also, consider I'd like to firm a new habit of drinking tea in the morning, but sometimes I couldn't help and end up drinking coffee, or even coke! These different alternatives could represent very different utilities for me, so would make sense to treat coke and coffee differently.
Now, with change detection models, we can assume possibilities (difficulty measure) of each alternative happening, and their preferred value (to our personal well-beings). We can then predict the possibility (score in the software) of the event that we'd like to form into habit happening next times given all history, their difficulty levels (it could change and the model can estimate that, which is part of the model) etc.
This is about the leading edge of science in this field. I could help in algorithm (already have a package in Marian but I know my languages) if you guys think this is a cool idea, and would like to try out. We could put this option as advanced, and give a bit introduction about model input parameters before the user turns it on.
See paper Adams and McKay (2007) for more details.
Beta Was this translation helpful? Give feedback.
All reactions