## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) set.seed(42) ## ----setup-------------------------------------------------------------------- library(kofn) library(flexhaz) ## ----------------------------------------------------------------------------- # A 2-of-3 exponential system: system fails when 2 of 3 components fail. model <- kofn(k = 2, m = 3, component = dfr_exponential()) # Generate 200 complete (Scheme 0) observations. gen <- rdata(model) df <- gen(theta = c(1, 2, 3), n = 100) # Fit via maximum likelihood. fitter <- fit(model) result <- fitter(df, n_starts = 1) result$converged coef(result) ## ----------------------------------------------------------------------------- sum(coef(result)) sum(c(1, 2, 3)) ## ----------------------------------------------------------------------------- # Right-censored: systems that fail after tau = 2 get recorded at t = 2 df_cens <- gen(c(1, 2, 3), n = 100, observe = observe_right_censor(tau = 2)) table(df_cens$omega) ## ----------------------------------------------------------------------------- ll <- loglik(model) ll(df_cens, c(1, 2, 3)) # finite; right-censored obs contribute log S(t) ## ----------------------------------------------------------------------------- model_wei <- kofn(k = 2, m = 2, component = dfr_weibull(), method = "em") gen_wei <- rdata(model_wei) df_wei <- gen_wei(theta = c(1.5, 2.0, 2.0, 3.0), n = 100) result_wei <- fit(model_wei)(df_wei, n_starts = 1) result_wei$shapes result_wei$scales ## ----------------------------------------------------------------------------- s1gen <- rdata_scheme1(model) df_s1 <- s1gen(theta = c(1, 2, 3), n = 200, delta = 0.5) ll_s1 <- loglik_scheme1(model) ll_s1(df_s1, c(1, 2, 3)) ## ----------------------------------------------------------------------------- rgen <- rdata_masked(model) df_masked <- rgen(theta = c(1, 2, 3), n = 100, p_mask = 0.3) ll_masked <- loglik_masked(model) ll_masked(df_masked, c(1, 2, 3)) ## ----eval = FALSE------------------------------------------------------------- # res <- compare_fisher_info( # rates = c(0.5, 0.3), n = 50, delta = 1.0, n_rep = 10, # component = dfr_exponential() # ) # res$median_det