Nothing
## -----------------------------------------------------------------------------
#| warning: false
#| eval: false
# remotes::install_github('tingtingzhan/groupedHyperframe')
# remotes::install_github('tingtingzhan/hyper.gam')
## -----------------------------------------------------------------------------
#| warning: false
#| eval: false
# utils::install.packages('groupedHyperframe')
# utils::install.packages('hyper.gam')
## -----------------------------------------------------------------------------
#| message: false
library(groupedHyperframe)
library(hyper.gam)
library(survival)
## -----------------------------------------------------------------------------
#| echo: false
op = par(no.readonly = TRUE)
#options(mc.cores = 1L) # for CRAN submission
## -----------------------------------------------------------------------------
data(Ki67, package = 'groupedHyperframe')
Ki67
## -----------------------------------------------------------------------------
#| message: false
Ki67q = Ki67 |>
aggregate_quantile(by = ~ patientID, probs = seq.int(from = .01, to = .99, by = .01))
## -----------------------------------------------------------------------------
Ki67q |> head()
## -----------------------------------------------------------------------------
m0 = hyper_gam(PFS ~ logKi67.quantile, data = Ki67q)
## -----------------------------------------------------------------------------
m1 = hyper_gam(PFS ~ logKi67.quantile, data = Ki67q, nonlinear = TRUE)
## -----------------------------------------------------------------------------
#| eval: false
#| fig-width: 5
#| fig-height: 5
# m0 |> integrandSurface() # please interact with it on your local computer
## -----------------------------------------------------------------------------
#| eval: true
#| label: fig-integrandSurface
#| fig-width: 5
#| fig-height: 5
#| fig-align: left
#| fig-cap: 'Nonlinear integrand surface, integrand paths and their projections to the "floor" and "backwall"'
m1 |> integrandSurface(n = 101L)
## -----------------------------------------------------------------------------
#| warning: false
#| fig-show: hide
m0 |> persp() # a static figure
## -----------------------------------------------------------------------------
#| warning: false
#| fig-show: hide
m0 |> contour() # a static figure
## -----------------------------------------------------------------------------
#| warning: false
#| fig-show: hide
m1 |> persp() # a static figure
## -----------------------------------------------------------------------------
#| warning: false
#| fig-show: hide
m1 |> contour() # a static figure
## -----------------------------------------------------------------------------
set.seed(16); id = Ki67q |> nrow() |> seq_len() |> caret::createDataPartition(p = .8)
Ki67q_0 = Ki67q[id[[1L]],] # training set
Ki67q_1 = Ki67q[-id[[1L]],] # test set
## -----------------------------------------------------------------------------
m1a = hyper_gam(PFS ~ logKi67.quantile, nonlinear = TRUE, data = Ki67q_0)
## -----------------------------------------------------------------------------
m1a$linear.predictors |>
head()
## -----------------------------------------------------------------------------
#| code-fold: true
#| code-summary: "Optimistically biased!!"
Ki67q_0[,c('PFS', 'age', 'race')] |>
as.data.frame() |> # invokes spatstat.geom::as.data.frame.hyperframe()
data.frame(nlQI = m1a$linear.predictors) |>
coxph(formula = PFS ~ age + nlQI, data = _)
## -----------------------------------------------------------------------------
m1a |>
predict(newdata = Ki67q_1) |>
head()
## -----------------------------------------------------------------------------
Ki67q_1[,c('PFS', 'age', 'race')] |>
as.data.frame() |> # invokes spatstat.geom::as.data.frame.hyperframe()
data.frame(nlQI = predict(m1a, newdata = Ki67q_1)) |>
coxph(formula = PFS ~ age + nlQI, data = _)
## -----------------------------------------------------------------------------
set.seed(145); QI = m0 |>
kfoldPredict.hyper_gam(k = 10L, mc.cores = 1L)
## -----------------------------------------------------------------------------
#| fig-width: 4
#| fig-height: 3.5
#| warning: false
#| eval: false
# boxplot(QI ~ attr(QI, 'fold'), xlab = 'Fold')
## -----------------------------------------------------------------------------
set.seed(145); nlQI = m1 |> kfoldPredict.hyper_gam(k = 10L, mc.cores = 1L)
## -----------------------------------------------------------------------------
#| fig-width: 4
#| fig-height: 3.5
#| warning: false
#| eval: false
# boxplot(nlQI ~ attr(nlQI, 'fold'), xlab = 'Fold')
## -----------------------------------------------------------------------------
#| warning: false
Ki67q |>
cbind(spatstat.geom::hyperframe(QI = QI)) |>
as.data.frame() |>
coxph(formula = PFS ~ QI) |> summary()
## -----------------------------------------------------------------------------
#| warning: false
Ki67q |>
cbind(spatstat.geom::hyperframe(nlQI = nlQI)) |>
as.data.frame() |>
coxph(formula = PFS ~ nlQI) |>
summary()
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.