Skip to contents

Computes a continuous metabolic syndrome severity z-score using sex- and race-specific standardized components and coefficients (factor-loading style).

Behavior note:

  • Parameters are selected per-row based on each row's (race, sex) key.

  • All unique keys present in the data must have a matching entry in params.

Required columns (no unit conversion performed):

  • waist (cm), bp_sys (mmHg), bp_dia (mmHg)

  • TG, HDL_c, glucose (mmol/L)

  • sex (1=male, 2=female)

  • race (one of "NHW","NHB","HW", or accepted synonyms; "HA" is recognised by the normaliser but has no default params — see params argument)

Usage

metss(
  data,
  params = list(NHW_M = list(intercept = -2.344, waist = c(mean = 94, sd = 12.4, coef =
    0.846), TG = c(mean = 1.5, sd = 0.6, coef = 0.701), HDL = c(mean = 1.1, sd = 0.3,
    coef = -0.663), glucose = c(mean = 5.3, sd = 0.6, coef = 0.658), MAP = c(mean = 97,
    sd = 11, coef = 0.466)), NHW_F = list(intercept = -2.381, waist = c(mean = 89.7, sd =
    14.8, coef = 0.817), TG = c(mean = 1.28, sd = 0.91, coef = 0.679), HDL = c(mean =
    1.5, sd = 0.4, coef = -0.727), glucose = c(mean = 5.08, sd = 0.52, coef = 0.622), MAP
    = c(mean = 91, 
     sd = 11, coef = 0.557)), NHB_M = list(intercept = -2.399, waist
    = c(mean = 92.8, sd = 13.1, coef = 0.83), TG = c(mean = 1.18, sd = 0.75, coef =
    0.551), HDL = c(mean = 1.27, sd = 0.37, coef = -0.598), glucose = c(mean = 5.55, sd =
    0.85, coef = 0.702), MAP = c(mean = 98, sd = 13, coef = 0.564)), NHB_F =
    list(intercept = -2.395, waist = c(mean = 96.4, sd = 16.4, coef = 0.858), TG = c(mean
    = 1.14, sd = 0.7, coef = 0.57), HDL = c(mean = 1.36, sd = 0.39, coef = -0.634),
    glucose = c(mean = 5.42, sd = 0.84, 
     coef = 0.687), MAP = c(mean = 95, sd = 13,
    coef = 0.577)), HW_M = list(intercept = -2.377, waist = c(mean = 98.5, sd = 11.5,
    coef = 0.864), TG = c(mean = 1.95, sd = 1.19, coef = 0.724), HDL = c(mean = 1.13, sd
    = 0.3, coef = -0.62), glucose = c(mean = 5.67, sd = 0.9, coef = 0.624), MAP = c(mean
    = 97, sd = 11, coef = 0.448)), HW_F = list(intercept = -2.388, waist = c(mean = 97.9,
    sd = 14.2, coef = 0.858), TG = c(mean = 1.66, sd = 1.06, coef = 0.715), HDL = c(mean
    = 1.29, sd = 0.35, coef = -0.657), 
     glucose = c(mean = 5.53, sd = 0.87, coef =
    0.644), MAP = c(mean = 91, sd = 11, coef = 0.512))),
  col_map = NULL,
  verbose = TRUE,
  na_action = c("keep", "omit", "error", "ignore", "warn"),
  na_warn_prop = 0.2,
  diagnostics = TRUE
)

Arguments

data

data.frame / tibble.

params

Named list keyed by "RACE_SEX" (e.g. "NHW_M"). Each element: list(intercept, waist, TG, HDL, glucose, MAP) where each component (except intercept) is a named numeric vector c(mean=, sd=, coef=). Default parameters are provided for NHW, NHB, and HW (male and female); no default HA parameters are included because Gurka et al. (2014) did not publish HA-specific coefficients. Passing race = "HA" with default params will raise an error; supply custom params if needed.

col_map

Optional named list mapping canonical keys (waist, TG, HDL, glucose, MAP) to actual column names in data. If NULL, column names are inferred automatically.

verbose

Logical; if TRUE, prints column mapping and computing messages.

na_action

One of c("keep","omit","error","ignore","warn") for required-input NAs. Default "keep".

na_warn_prop

Proportion (0-1) above which high-missingness warning fires when na_action='warn'. Default 0.2.

diagnostics

Logical; if TRUE (default) emit value/range diagnostic warnings (negative, out-of-range checks).

Value

tibble with one numeric column: MetSSS

Details

Calculate Metabolic Syndrome Severity Score (MetSSS)

References

Gurka MJ, Lilly CL, Oliver MN, DeBoer MD (2014). “An examination of sex and racial/ethnic differences in the metabolic syndrome among adults: A confirmatory factor analysis and a resulting continuous severity score.” Metabolism, 63(2), 218–225. doi:10.1016/j.metabol.2013.10.006 . DeBoer MD, Gurka MJ, Woo JG, Morrison JA (2015). “Severity of metabolic syndrome and its association with risk for type 2 diabetes and cardiovascular disease.” Diabetologia, 58(12), 2745–2752. doi:10.1007/s00125-015-3759-5 . (clinical application) DeBoer MD, Filipp SL, Gurka MJ (2017). “Independent associations between metabolic syndrome severity and future coronary heart disease by sex and race.” Journal of the American College of Cardiology, 69(9), 1204–1205. doi:10.1016/j.jacc.2016.10.088 . (clinical application) Gurka MJ, Filipp SL, Pearson TA, DeBoer MD (2018). “Assessing Baseline and Temporal Changes in Cardiometabolic Risk Using Metabolic Syndrome Severity and Common Risk Scores.” Journal of the American Heart Association, 7(16), e009754. doi:10.1161/JAHA.118.009754 . (clinical application)

Examples

df <- data.frame(
  waist = 95, bp_sys = 120, bp_dia = 80, TG = 1.5, HDL_c = 1.2,
  glucose = 5.5, sex = 1, race = "NHW", age = 45
)
metss(df)
#> metss(): reading input 'df' — 1 rows × 9 variables
#> metss(): col_map (8 columns — 8 inferred from data)
#>   waist             ->  'waist'    (inferred)
#>   bp_sys            ->  'bp_sys'    (inferred)
#>   bp_dia            ->  'bp_dia'    (inferred)
#>   TG                ->  'TG'    (inferred)
#>   HDL_c             ->  'HDL_c'    (inferred)
#>   glucose           ->  'glucose'    (inferred)
#>   sex               ->  'sex'    (inferred)
#>   race              ->  'race'    (inferred)
#> metss(): computing markers:
#>   MetSSS  [factor-loading z-score, sex/race-specific params]
#> metss(): results: MetSSS 1/1
#> # A tibble: 1 × 1
#>   MetSSS
#>    <dbl>
#> 1  -2.43