---
title: "Introduction to MultiFrailty: Shared Frailty Regression Models"
author: "Shikhar Tyagi, Arvind Pandey, Bhupendra Singh, Vrijesh Tripathi"
date: "`r Sys.Date()`"
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{Introduction to MultiFrailty: Shared Frailty Regression Models}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

```{r setup, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)
library(MultiFrailty)
library(survival)
```

# Overview

The `MultiFrailty` package provides tools for fitting and analyzing shared frailty survival regression models. Shared frailty models incorporate unobserved individual heterogeneity into proportional hazard settings.

# Supported Frailty & Baseline Distributions

`MultiFrailty` supports 10 model combinations across 5 frailty families and 2 baseline hazard functions:

* **Frailty Distributions**: `none`, `gamma`, `ig` (Inverse Gaussian), `gl1` (Generalized Lindley Type 1), `gl2` (Generalized Lindley Type 2).
* **Baseline Hazard Distributions**: `weibull` (2-parameter Weibull) and `gw` (3-parameter Generalized Weibull).

# Basic Usage Example

```{r, eval = TRUE}
library(MultiFrailty)
library(survival)

# Generate synthetic survival data under Gamma frailty with Weibull baseline
set.seed(123)
dat <- r_frailty(n = 80, baseline = "weibull", bpar = c(2.0, 1.5),
                 frailty = "gamma", fpar = c(0.8),
                 x = matrix(rnorm(80), ncol = 1), beta = 0.5)

# Fit model using formula interface
fit <- multifrailty(Surv(time, status) ~ X1, data = dat,
                    baseline = "weibull", frailty = "gamma")

# Summarize fit
summary(fit)

# Predict survival probabilities
pred_surv <- predict_frailty(fit, type = "survival", newtime = c(1, 2, 3))
```
