I am working on understanding Bayesian modeling, time series and implementing in TFP. I have time series data that records monthly snowfall in northern Arizona. For six months of the year, it almost never snows; in the winter, it snows but there is a lot of variance in how much--as little as none, as much as 70 inches in one month during some years.
My model:
trend = sts.LocalLevel(observed_time_series=obs_snow)
seasonal = sts.Seasonal(num_seasons=12, observed_time_series=obs_snow, allow_drift=False)
snow_model = sts.Sum([trend, seasonal], observed_time_series=obs_snow)
In this case, a good model would capture (1) summer month certainty, (2) winter month uncertainty, (3) very low error in summer months and (4) mean winter forecasts that are close to the mean of each month in the data. That is, he model accuracy/error would not be better than predicting each month's average, but the model should generate uncertainties that tell us about each month's variance.
The model fails to do 1. The standard deviation for almost all seasons is around 9 (inches), which seems like a reasonable posterior for the winter months but terrible for the summer.
I have fitted with VI following the STS
tutorials very closely. I have tried varying several model parameters to see if those change my results. To me, the results resemble selecting a single scale parameter for a normal distribution and moving that distribution shape (i.e., loc) around to make predictions. I would like it do to both--summer months should have a negative loc (~=mean monthly snowfall), very low sigma Normal distribution, while winter months should have a positive loc and large sigma. (FWIW, a distribution with support [0, inf) makes more sense to me, but I would be happy with Normals as an approximation at the moment.)
I admit, I don't understand my own problem deeply. For one thing, I admit I don't really understand how to model a variable with a hard-lower bound (zero inches, e.g.) using normal distributions. Nor, however, do I understand how I might transform or add such a distribution to STS if I did. I realize that means I'm partly just asking a question about simple Bayesian modeling (and statistics), but any help would be appreciated.
Thanks,
Lenhart