Learn R Programming

sjstats (version 0.17.6)

svy_md: Weighted statistics for tests and variables

Description

Weighted statistics for variables

wtd_sd(), wtd_se(), wtd_mean() and wtd_median() compute weighted standard deviation, standard error, mean or median for a variable or for all variables of a data frame. svy_md() computes the median for a variable in a survey-design (see svydesign). wtd_cor() computes a weighted correlation for a two-sided alternative hypothesis.

Weighted tests

wtd_ttest() computes a weighted t-test, while wtd_mwu() computes a weighted Mann-Whitney-U test or a Kruskal-Wallis test (for more than two groups). wtd_chisqtest() computes a weighted Chi-squared test for contigency tables.

Usage

svy_md(x, design)

survey_median(x, design)

wtd_chisqtest(data, ...)

# S3 method for default wtd_chisqtest(data, x, y, weights, ...)

# S3 method for formula wtd_chisqtest(formula, data, ...)

wtd_cor(data, ...)

# S3 method for default wtd_cor(data, x, y, weights, ci.lvl = 0.95, ...)

# S3 method for formula wtd_cor(formula, data, ci.lvl = 0.95, ...)

wtd_mean(x, weights = NULL)

wtd_median(x, weights = NULL)

wtd_mwu(data, ...)

# S3 method for default wtd_mwu(data, x, grp, weights, ...)

# S3 method for formula wtd_mwu(formula, data, ...)

wtd_sd(x, weights = NULL)

wtd_se(x, weights = NULL)

wtd_ttest(data, ...)

# S3 method for default wtd_ttest(data, x, y = NULL, weights, mu = 0, paired = FALSE, ci.lvl = 0.95, alternative = c("two.sided", "less", "greater"), ...)

# S3 method for formula wtd_ttest(formula, data, mu = 0, paired = FALSE, ci.lvl = 0.95, alternative = c("two.sided", "less", "greater"), ...)

Arguments

x

(Numeric) vector or a data frame. For svy_md(), wtd_ttest(), wtd_mwu() and wtd_chisqtest() the bare (unquoted) variable name, or a character vector with the variable name.

design

An object of class svydesign, providing a specification of the survey design.

data

A data frame.

...

For wtd_ttest() and wtd_mwu(), currently not used. For wtd_chisqtest(), further arguments passed down to chisq.test.

y

Optional, bare (unquoted) variable name, or a character vector with the variable name.

weights

Bare (unquoted) variable name, or a character vector with the variable name of the numeric vector of weights. If weights = NULL, unweighted statistic is reported.

formula

A formula of the form lhs ~ rhs1 + rhs2 where lhs is a numeric variable giving the data values and rhs1 a factor with two levels giving the corresponding groups and rhs2 a variable with weights.

ci.lvl

Confidence level of the interval.

grp

Bare (unquoted) name of the cross-classifying variable, where x is grouped into the categories represented by grp, or a character vector with the variable name.

mu

A number indicating the true value of the mean (or difference in means if you are performing a two sample test).

paired

Logical, whether to compute a paired t-test.

alternative

A character string specifying the alternative hypothesis, must be one of "two.sided" (default), "greater" or "less". You can specify just the initial letter.

Value

The weighted (test) statistic.

Examples

Run this code
# NOT RUN {
# weighted sd and se ----

wtd_sd(rnorm(n = 100, mean = 3), runif(n = 100))

data(efc)
wtd_sd(efc[, 1:3], runif(n = nrow(efc)))
wtd_se(efc[, 1:3], runif(n = nrow(efc)))

# svy_md ----

# median for variables from weighted survey designs
library(survey)
data(nhanes_sample)

des <- svydesign(
  id = ~SDMVPSU,
  strat = ~SDMVSTRA,
  weights = ~WTINT2YR,
  nest = TRUE,
  data = nhanes_sample
)

svy_md(total, des)
svy_md("total", des)

# weighted t-test ----

efc$weight <- abs(rnorm(nrow(efc), 1, .3))
wtd_ttest(efc, e17age, weights = weight)
wtd_ttest(efc, e17age, c160age, weights = weight)
wtd_ttest(e17age ~ e16sex + weight, efc)

# weighted Mann-Whitney-U-test ----

wtd_mwu(c12hour ~ c161sex + weight, efc)

# weighted Chi-squared-test ----

wtd_chisqtest(efc, c161sex, e16sex, weights = weight, correct = FALSE)
wtd_chisqtest(c172code ~ c161sex + weight, efc)

# }

Run the code above in your browser using DataLab