Closed JSC67 closed 6 years ago
I think that the data provided must be a data frame it looks like you are providing something else.
Ah, an embarrassing simple mistake. Sorry about that. BSDS is a list whereas its second element BSDS[[2]] is a data frame of bootstrapped data. I was able to get a little bit farther when operating on the data frame, but still had a problem. By the way, in the Convergence criteria, I didn't see any discussion in the documentation on reStruct. What are the columns fixed and reStruct, and is there some documentation on them somewhere? Likewise, I'm confused by the reStruct parameters ID1, ID2, ID3, etc. Perhaps my problems is that my function funBS() makes (I hope!) a single large (although the size is just B = 2 for testing) bootstrapped data set, but perhaps it would be better to make just one BS data set and operate on that, one at a time. I'll try that, but can you please shed some light (or give references) for the output from nlmixr that I asked about? Thanks.
> fit.nlme.1cm.lin.BSDS002.full <- nlmixr(uif.1cm.lin, BSDS002[[2]], est="nlme")
**Iteration 1
LME step: Loglik: -56.6946, nlminb iterations: 1
reStruct parameters:
ID1 ID2 ID3
-0.24626384 0.28144752 0.02927114
PNLS step: RSS = 26.38875
fixed effects: -2.320782 -0.3926246 -0.04520173
iterations: 7
Convergence crit. (must all become <= tolerance = 1e-05):
fixed reStruct
21.123049 1.054445
**Iteration 2
LME step: Loglik: -134.1951, nlminb iterations: 2
reStruct parameters:
ID1 ID2 ID3
-0.5354660 7.1462985 -0.5373497
Error in nlme.formula(model = DV ~ (nlmixr::nlmeModList("user_fn"))(logtcl, :
step halving factor reduced below minimum in PNLS step
In addition: Warning messages:
1: In nlmixr_fit(uif, data, est, control = control, calc.resid = calc.resid, :
Sorting by ID, TIME; Output fit may not be in the same order as input dataset.
2: In nlmixrUI.nlme.var(obj) :
Initial condition for additive error ignored with nlme
>
Hi James,
This output (the ID1 ID2 ID3) are from nlme; I'm not as familiar with the nlme algoritm as other algoritms. However, I think that restrutcured errors weight the individuals based on different likelihood functions. However, I could be mistaken.
The control = nlmeControl(pnlsTol = .01)
is the option you need to adjust to help the convergence of nlme. If you increase the pnlsTol
it is more likely to succesfully converge. I also observe that increasing the pnlsTol
the ETAs are tending to zero and estimates of between subject variaibility to be biased by tending to approach zero.
I also suggest you downgrade to RxODE 0.6 (since it is still more stable) and upgrade to the latest nlmixr since I think it helps convergence in certain types of problems.
Below is my session output. I made a function, funBS(), that generates bootstrapped data from a data frame that has ID as its first column. However, when I try to use the bootstrapped data with nlmixr, I get an error and no object is created. Note that much of this is output from what I just pasted in for Issue #28 but here is the full info. The bootstrap part begins with funBS(). Thank-you for your help.