DLSSM.init {DLSSM}R Documentation

Initial model fitting

Description

This function is for tuning smoothing parameters using training data. The likelihood was calculated by Kalman Filter and maximized to estimate the smoothing parameters. For the given smoothing parameters, the model coefficients can be efficiently estimated using a Kalman filtering algorithm.

Usage

DLSSM.init(data.batched, S0, vary.effects, autotune = TRUE, Lambda = NULL)

Arguments

data.batched

A object generated by function Data.batched()

S0

Number of batches of data to be used as training dataset

vary.effects

The names of variables in the dataset assumed to have a time-varying regression effect on the outcome.

autotune

T/F indicates whether or not the automatic tuning procedure described in Jiang et al. (2021) should be applied. Default is true.

Lambda

Specify smoothing parameters if autotune=F

Value

Lambda: smoothing parameters
Smooth: smoothed state vector
Smooth.var: covariance of smoothed state vector in Smooth.

Author(s)

Jiakun Jiang, Wei Yang and Wensheng Guo

Examples


set.seed(321)
n=8000
beta0=function(t)   0.1*t-1
beta1=function(t)  cos(2*pi*t)
beta2=function(t)  sin(2*pi*t)
alph1=alph2=1
x=matrix(runif(n*4,min=-4,max=4),nrow=n,ncol=4)
t=sort(runif(n))
coef=cbind(beta0(t),beta1(t),beta2(t),rep(alph1,n),rep(alph2,n))
covar=cbind(rep(1,n),x)
linear=apply(coef*covar,1,sum)
prob=exp(linear)/(1+exp(linear))
y=as.numeric(runif(n)<prob)
sim.data=cbind(y,x,t)
colnames(sim.data)=c("y","x1","x2","x3","x4","t")
formula = y~x1+x2+x3+x4
# Divide the time domain [0,1] into S=100 equally spaced intervals
S=100
S0=75
data.batched=Batched(formula, data=sim.data, time="t", S)

# using first 75 batches as training dataset to tune smoothing parameters
fit0=DLSSM.init(data.batched, S0, vary.effects=c("x1","x2"))
fit0$Lambda
DLSSM.plot(fit0)


[Package DLSSM version 1.1.1 Index]