Nothing
test_that("dsem example is working ", {
#skip_on_ci()
sem = "
Profits -> Consumption, 0, a2
Profits -> Consumption, -1, a3
Priv_wage -> Consumption, 0, a4
Gov_wage -> Consumption, 0, a4
Consumption <-> Consumption, 0, v1
Consumption -> Consumption, -1, ar1
Consumption -> Consumption, -2, ar2
Profits -> Investment, 0, b2
Profits -> Investment, -1, b3
Capital_stock -> Investment, -1, b4
Investment <-> Investment, 0, v2
neg_Gov_wage <-> neg_Gov_wage, 0, v3
GNP -> Priv_wage, 0, c2
Taxes -> Priv_wage, 0, c2
neg_Gov_wage -> Priv_wage, 0, c2
GNP -> Priv_wage, -1, c3
Taxes -> Priv_wage, -1, c3
neg_Gov_wage -> Priv_wage, -1, c3
Time -> Priv_wage, 0, c4
Priv_wage <-> Priv_wage, 0, v4
GNP <-> GNP, 0, v5
Profits <-> Profits, 0, v6
Capital_stock <-> Capital_stock, 0, v7
Taxes <-> Taxes, 0, v8
Time <-> Time, 0, v9
Gov_wage <-> Gov_wage, 0, v10
Gov_expense <-> Gov_expense, 0, v11
"
# Load data
data(KleinI, package="AER")
Data = as.data.frame(KleinI)
Data = cbind( Data, "time" = seq(1,22)-11 )
colnames(Data) = sapply( colnames(Data), FUN=switch,
"consumption"="Consumption", "invest"="Investment",
"cprofits"="Profits", "capital"="Capital_stock", "gwage"="Gov_wage",
"pwage"="Priv_wage", "gexpenditure"="Gov_expense", "taxes"="Taxes",
"time"="Time", "gnp"="GNP")
Z = ts( cbind(Data, "neg_Gov_wage"=-1*Data[,'Gov_wage']) )
# Fit model
fit = dsem( sem=sem,
tsdata=Z,
control = dsem_control(getJointPrecision=TRUE) )
# Check objective function
expect_equal( as.numeric(fit$opt$obj), 587.4755, tolerance=1e-2 )
# Convert and plot using phylopath
as_fitted_DAG(fit)
# Various other utilities
plot(fit)
vcov(fit, which="fixed")
vcov(fit, which="random")
vcov(fit, which="both")
print(fit)
logLik(fit)
as_sem(fit)
predict(fit, type="link")
predict(fit, type="response")
predict(fit, type="link", newdata=Z)
simulate(fit, variance = "none")
simulate(fit, variance = "random")
simulate(fit, variance = "both")
simulate(fit, resimulate_gmrf=TRUE)
# Refit with measurement errors
fit1 = dsem( sem=sem,
tsdata=Z,
family = c("normal","gamma",rep("fixed",ncol(Z)-2)),
control = dsem_control(getsd=FALSE, newton_loops=0) )
residuals(fit1, type="deviance")
residuals(fit1, type="response")
})
test_that("dsem adds variances ", {
data(isle_royale)
data = ts( log(isle_royale[,2:3]), start=1959)
sem = "
wolves <-> wolves, 0, sd1
moose <-> moose, 0, sd2
"
# initial first without delta0 (to improve starting values)
fit1 = dsem( sem = "",
tsdata = data )
# initial first without delta0 (to improve starting values)
fit2 = dsem( sem = sem,
tsdata = data )
# Check objective function
expect_equal( as.numeric(fit1$opt$obj), as.numeric(fit2$opt$obj), tolerance=1e-2 )
})
test_that("bering sea example is stable ", {
data(bering_sea)
#
Z = ts( bering_sea )
family = rep( "fixed", ncol(bering_sea) )
# Specify model
sem = "
log_seaice -> log_CP, 0, seaice_to_CP
log_CP -> log_Cfall, 0, CP_to_Cfall
log_CP -> log_Esummer, 0, CP_to_E
log_PercentEuph -> log_RperS, 0, Seuph_to_RperS
log_PercentCop -> log_RperS, 0, Scop_to_RperS
log_Esummer -> log_PercentEuph, 0, Esummer_to_Suph
log_Cfall -> log_PercentCop, 0, Cfall_to_Scop
SSB -> log_RperS, 0, SSB_to_RperS
log_seaice -> log_seaice, 1, AR1, 0.001
log_CP -> log_CP, 1, AR2, 0.001
log_Cfall -> log_Cfall, 1, AR4, 0.001
log_Esummer -> log_Esummer, 1, AR5, 0.001
SSB -> SSB, 1, AR6, 0.001
log_RperS -> log_RperS, 1, AR7, 0.001
log_PercentEuph -> log_PercentEuph, 1, AR8, 0.001
log_PercentCop -> log_PercentCop, 1, AR9, 0.001
"
# Run model
fit = dsem( sem=sem,
tsdata=Z,
family=family,
control = dsem_control(use_REML=FALSE) )
# Check objective function
expect_equal( as.numeric(fit$opt$obj), 189.3005, tolerance=1e-2 )
})
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.