% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/assoc.R
\name{somers_d}
\alias{somers_d}
\title{Somers' D}
\usage{
somers_d(
  x,
  direction = c("row", "column", "symmetric"),
  detail = FALSE,
  conf_level = 0.95,
  digits = 3L,
  .include_se = FALSE
)
}
\arguments{
\item{x}{A contingency table (of class \code{table}).}

\item{direction}{Direction of prediction:
\code{"row"} (default, column predicts row),
\code{"column"} (row predicts column),
or \code{"symmetric"} (average of both directions).}

\item{detail}{Logical. If \code{FALSE} (default), return the estimate
as a numeric scalar. If \code{TRUE}, return a named numeric vector
including confidence interval and p-value.}

\item{conf_level}{A number between 0 and 1 giving the confidence
level (default \code{0.95}). Only used when \code{detail = TRUE}. Set
to \code{NULL} to omit the confidence interval.}

\item{digits}{Number of decimal places used when printing the
result (default \code{3}). Only affects the \code{detail = TRUE} output.}

\item{.include_se}{Internal parameter; do not use.}
}
\value{
Same structure as \code{\link[=cramer_v]{cramer_v()}}: a scalar when
\code{detail = FALSE}, a named vector when \code{detail = TRUE}.
The p-value tests H0: D = 0 (Wald z-test).
}
\description{
\code{somers_d()} computes Somers' D for a two-way contingency
table of ordinal variables.
}
\details{
Somers' D is an asymmetric ordinal measure defined as
\eqn{d = (C - D) / (C + D + T)}, where \eqn{T} is the
number of pairs tied on the independent variable.
The symmetric version is the harmonic mean of the two
asymmetric values.
Standard error formulas follow the DescTools implementations
(Signorell et al., 2024); see \code{\link[=cramer_v]{cramer_v()}} for full references.
}
\examples{
tab <- table(sochealth$education, sochealth$self_rated_health)
somers_d(tab, direction = "row")
somers_d(tab, direction = "column", detail = TRUE)

}
\seealso{
\code{\link[=kendall_tau_b]{kendall_tau_b()}}, \code{\link[=gamma_gk]{gamma_gk()}}, \code{\link[=assoc_measures]{assoc_measures()}}
}
