We could use this as a To Do list, moving items from the bottom section to the top one as appropriate.
Current capabilities:
Overall structure
Converts smooth objects to coxph.penalty terms
Maximize the PPL using AIC, AICc, or EPIC optimization
Acceptable types of terms:
Handles scalar predictors: linear and nonlinear effects
Handles baseline functional predictors: linear and nonlinear effects using lf(), af(), and lf.vd()
Time-varying terms:
Concurrent functional terms: $\beta Z_i(t)$
Historical terms
Time-varying effects of all term types
Naming of terms in the coxph formula: right now it is smooth1, smooth2, etc.
Methods
coef.pcox()
predict.pcox()
Mechanism for methods for baseline functional predictors needs to be different: don't have tt functions to handle it. Can we develop something similar?
Functionality to add/change:
Unequally spaced (and non-integer) grids: NEEDS FURTHER TESTING
Random effects (frailty terms) - already implemented using frailty()?
Interactions:
Scalar-scalar
Scalar-function
Function-function
Re-parameterizations of historical functional terms: NEEDS FURTHER TESTING
Partial domain histories (limits)
Domain alignment: original (s), "lagged" (s-t), or domain-standardized (u?)
Linear interactions with time (for u domain only): gets complicated because it results in multiple functional terms
ML/REML optimization (ML supposedly more robust - per Terry Therneau)
Current version of getL() is getL3 (uses "masks")... is this the most efficient algorithm?
Methods
plot.pcox()
print.pcox()
summary.pcox()
Basic package-development issues:
License/version?
Variable-naming consistency
Consistency across functions
Dependencies handled correctly?
::: and copying other code (from survival and refund)
We could use this as a To Do list, moving items from the bottom section to the top one as appropriate.
Current capabilities:
coxph.penalty
termslf()
,af()
, andlf.vd()
coxph
formula: right now it issmooth1
,smooth2
, etc.coef.pcox()
predict.pcox()
tt
functions to handle it. Can we develop something similar?Functionality to add/change:
frailty()
?limits
)s
), "lagged" (s-t
), or domain-standardized (u
?)u
domain only): gets complicated because it results in multiple functional termsgetL()
isgetL3
(uses "masks")... is this the most efficient algorithm?plot.pcox()
print.pcox()
summary.pcox()
:::
and copying other code (fromsurvival
andrefund
)