Can anyone suggest a package or code for modeling a hysteresis process in R?
I'm currently modeling a certain dataset with a GAM using mgcv, something
like
gam(y~ s(x, by=z) + z, family = Gamma(link=log),data=data)
and getting fits with about 9 estimated degrees of freedom in the smooth for
each value of z. FWIW, z is a treatment applied to a system which should
have made an improvement, and I'm trying to estimate the magnitude of that
improvement (the aggregated change in y) assuming the x values did not vary.
Looking at plots of y vs. x with lines connecting points in time order makes
it clear that a significant hysteresis process is at work, and I conjecture
I can reduce estimation uncertainty by modeling that hysteresis explicitly.
I'm looking for a package that
- can model hysteresis and return estimates of the fit in both the low
and high states as well as statistics on the upper and lower hysteresis
thresholds
- has flexibility in the form of the model in the high and low states
- While the current model uses GAMs because of the nature of the
nonlinearity (I tried a number of other models before settling
on this as a
reasonable compromise), it may be that modeling the hysteresis directly
would simplify the model a bit. Still, I'd like the flexibility
to use GAMs
if called for.
- produces output that facilitates my using simulation to produce
estimates of uncertainty in my inferences when I have new data for x, for
example.
I've searched R-bloggers, R-help, Google, and browsed a number of package
manuals and vignettes. I've also looked at the cusp package; that and
depmixS4 seem the most attractive so far, but I think it would take a bit of
effort to make those work. My hysteresis problem is not quite a hidden
Markov model, although the notion of putting covariates on transition
parameters in depmixS4::depmix() seems promising. I've also thought of
coding the model in JAGS.
Before I go to that work, I thought I'd ask here to see if someone knows a
good, existing solution.
Thanks,
Bill
[[alternative HTML version deleted]]