\name{identification_bounds}
\alias{check_identifiability}
\alias{print.inter_identifiability}
\alias{identification_bounds}
\alias{print.inter_bounds}
\alias{inter_sensitivity}
\title{Diagnose Non-Identification and Compute Sensitivity Bounds}
\usage{
check_identifiability(object, tol = 1e-9)

identification_bounds(object, domain = NULL, gamma = Inf,
  statistic = c("mean", "total"))

inter_sensitivity(object, gamma = c(1, 1.25, 1.5, 2, Inf),
  domain = NULL, statistic = c("mean", "total"))

\method{print}{inter_identifiability}(x, ...)

\method{print}{inter_bounds}(x, ...)
}
\arguments{
\item{object}{A fitted \code{inter_sae} object.}
\item{tol}{Numerical-rank tolerance.}
\item{domain}{Optional named list defining one target domain.}
\item{gamma}{Association-sensitivity value or vector. One fixes the fitted
latent table; infinity imposes census margins only.}
\item{statistic}{Bound a predicted domain mean/proportion or total.}
\item{x}{Object to print.}
\item{...}{Unused.}
}
\value{
\code{check_identifiability()} returns an \code{inter_identifiability} object.
\code{identification_bounds()} returns an \code{inter_bounds} object.
\code{inter_sensitivity()} returns a data frame.
}
\description{
Measure the nullity left by overlapping aggregate margins and, when
\pkg{lpSolve} is installed, optimize the target over latent population tables
that satisfy the margins and optional association restrictions.
}
\details{
Mean bounds use a Charnes--Cooper transformation of the linear-fractional
target. They concern uncertainty in the latent census table conditional on the
fitted cell predictions; they are not replacements for sampling intervals.
}
\examples{
example_data <- inter_example()
design <- inter_design(example_data$survey, "weight", "area")
margins <- census_margins(example_data$margins)
fit <- fit_inter_sae(unemployed ~ sex + age + residence + area,
  design, margins, family = "binomial")
check_identifiability(fit)
if (requireNamespace("lpSolve", quietly = TRUE)) {
  identification_bounds(fit, domain = list(area = "A1"), gamma = 1.5)
}
}
