Package 'MCM'

Title: Estimating and Testing Intergenerational Social Mobility Effect
Description: Estimate and test inter-generational social mobility effect on an outcome with cross-sectional or longitudinal data.
Authors: Jiahui Xu [aut, cre], Liying Luo [aut]
Maintainer: Jiahui Xu <[email protected]>
License: GPL-2
Version: 0.1.7
Built: 2025-02-24 03:32:04 UTC
Source: https://github.com/jiahui1902/mcm

Help Index


Estimate and Test Inter-generational Social Mobility Effect on an Outcome

Description

This function implements the mobility contrast model designed for estimating and testing inter-generational mobility effect on an outcome.

Usage

mcm(
  formula,
  data,
  weights = 1,
  na.action = na.omit,
  origin,
  destination,
  family = gaussian(),
  contrasts = NULL,
  gee = FALSE,
  id = NULL,
  corstr = "exchangeable",
  displayresult = TRUE,
  ...
)

Arguments

formula

an object of class "formula" (or one that can be coerced to that class): a symbolic description of the model to be fitted. A typical model used in studying social mobility takes the form response ~ origin*destination, where respose is the numeric response vector and origin (destination) is a vector indicating the origin (destination). The specification of origin*destination indicates the cross of origin and destination, which is the same as origin + destination + origin:destination where origin:destination indicates the interaction of origin and destination.

data

an optional data frame, list or environment (or object coercible by as.data.frame to a data frame) containing the variables in the model. If not found in data, the variables are taken from environment(formula), typically the environment from which the function is called.

weights

an optional vector of unit-level sampling weights to be used in analysis. Should be NULL or a numeric vector.

na.action

a function which indicates what should happen when the data contain NAs.The default is set by the na.action setting in options and is na.fail if that is unset.

origin

a character indicating the column name of origin.

destination

a character indicating the column name of destination.

family

a character string, a function or the result of a call to a family function describing the error distribution and link function to be used in the model.

contrasts

an optional list. The default is set as sum-to-zero contrast.

gee

logical. Should gee be used in estimating the model?

id

a vector which identifies the clusters, which is required while gee is used. The length of id should be the same as the number of observations. Data are assumed to be sorted so that observations on a cluster are contiguous rows for all entities in the formula.

corstr

a character string specifying the correlation structure. The following are permitted: "independence", "fixed", "stat_M_dep", "non_stat_M_dep", "exchangeable", "AR-M" and "unstructured".

displayresult

logical. Should model results be displayed after estimation. The default is TRUE.

...

additional arguments to be passed to the function.

Value

A list containing:

model

Fitted generalized models of outcome on predictors. See more on function glm in package stats.

origin_main

Estimated main effects of origin.

destination_main

Estimated main effects of destination.

immobile

Estimated effects for the people without social mobility.

mobility_estimates

Estimated mobility effects.

mobility_se

Standard errors of the estimated mobility effects.

mobility_sig

Statistical significance of the the estimated mobility effects.

Examples

library(MCM)
data('sim_moderate_het')
mcm(response ~ origin * destination, data = sim_moderate_het,
    origin = "origin",destination="destination")

Estimate and Test Inter-generational Mobility Effect with Longitudinal Data

Description

This function fits a multilevel mobility contrast model to estimate and test inter-generational mobility effect on an outcome in longitudinal data.

Usage

mcm_lmer(
  formula,
  data = NULL,
  REML = TRUE,
  control = lme4::lmerControl(),
  start = NULL,
  verbose = 0L,
  subset,
  weights,
  na.action,
  offset,
  contrasts = NULL,
  devFunOnly = FALSE,
  origin = NULL,
  destination = NULL,
  time = NULL,
  displayresult = TRUE,
  ...
)

Arguments

formula

Inherit the function form from lme4 package. It is a two-sided linear formula object describing both the fixed-effects and random-effects part of the model, with the response on the left of a ~ operator and the terms, separated by + operators, on the right. Random-effects terms are distinguished by vertical bars (|) separating expressions for design matrices from grouping factors. Two vertical bars (||) can be used to specify multiple uncorrelated random effects for the same grouping variable. (Because of the way it is implemented, the ||-syntax works only for design matrices containing numeric (continuous) predictors; to fit models with independent categorical effects, see dummy or the lmer_alt function from the afex package.) A typical model used in studying social mobility with longitudinal data takes the form response ~ origin*destination + | id, where respose is the numeric response vector and origin (destination) is a vector indicating the origin (destination). The specification of origin*destination indicates the cross of origin and destination, which is the same as origin + destination + origin:destination where origin:destination indicates the interaction of origin and destination. id is a identifier for the clusters.

data

an optional data frame, list or environment (or object coercible by as.data.frame to a data frame) containing the variables in the model. If not found in data, the variables are taken from environment(formula), typically the environment from which the function is called.

REML

logical. Should the estimates be chosen be optimize the restricted log-likelihood (REML) criterial (as opposed to the log-likelihood)?

control

Inherit from lme4 package. It is a list (of correct class, resulting from lmerControl() or glmerControl() respectively) containing control parameters, including the nonlinear optimizer to be used and parameters to be passed through to the nonlinear optimizer, see the lmerControl documentation in lme4 package for details.

start

Inherit from lme4 package. It is a named list of starting values for the parameters in the model.

verbose

Inherit from lme4 package. It is an integer scalar. If > 0 verbose output is generated during the optimization of the parameter estimates. If > 1 verbose output is generated during the individual penalized iteratively reweighted least squares (PIRLS) steps.

subset

optional expression selecting the subset of the rows of data to fit the model.

weights

an optional vector of ‘prior weights’ to be used in the fitting process. Should be NULL or a numeric vector.

na.action

a function which indicates what should happen when the data contain NAs.The default is set by the na.action setting in options and is na.fail if that is unset.

offset

Inherit from lme4 package. This can be used to specify an a priori known component to be included in the linear predictor during fitting. This should be NULL or a numeric vector of length equal to the number of cases. One or more offset terms can be included in the formula instead or as well, and if more than one is specified their sum is used.

contrasts

an optional list. The default is set as sum-to-zero contrast.

devFunOnly

logical - return only the deviance evaluation function.

origin

a character indicating the column name of origin.

destination

a character indicating the column name of destination.

time

a character indicating the time when individual was observed

displayresult

logical. Should model results be displayed after estimation. The default is TRUE.

...

additional arguments to be passed to the function.

Value

A list containing:

model

Fitted generalized models of outcome on predictors. See more on function glm in package stats.

estimates

Estimated mobility effects.

se

Standard errors of the estimated mobility effects.

significance

Statistical significance of the the estimated mobility effects.

esti_3way

Estimated mobility effects conditional on specific age.

se_3way

Standard errors of the estimated mobility effects conditional specific age.

sig_3way

Statistical significance of the the estimated mobility effects conditional on age.

Examples

library(MCM)
library(lme4)
data("sim_datlmer")
fit_mcm_lmer <- mcm_lmer(yij ~ origin*destination*age +
                           (1|id), data = sim_datlmer,
                         origin = "origin",
                         destination = "destination",
                         time = "age")

Simulated Data Studying Social Mobility (Longitudinal)

Description

This is a simulated data used to study social mobility under longitudinal setting.

Usage

data("sim_datlmer")

Format

A data frame with 50000 observations on the following 14 variables.

id

an ordered factor with levels

obs

a numeric vector

eij

a numeric vector

origin

a factor with levels 1 2 3

destination

a factor with levels 1 2 3

origin_1

a numeric vector

origin_2

a numeric vector

origin_3

a numeric vector

destination_1

a numeric vector

destination_2

a numeric vector

destination_3

a numeric vector

yij

a numeric vector

age

a numeric vector

dir

a factor with levels 0 1 2

Examples

data(sim_datlmer)
## maybe str(sim_datlmer) ; plot(sim_datlmer) ...

Simulated Data Studying Social Mobility (Cross-Sectional)

Description

This is a simulated data used to study social mobility. In this dataset, it is assumed that there exists a moderate social mobility.

Usage

data("sim_moderate_het")

Format

A data frame with 30,000 observations on the following 6 variables.

response

a numeric vector indicating the outcome variable

origin

a numeric vector indicating parents' socioeconomic status

destination

a numeric vector indicating child' socioeconomic status

mobility

a numeric vector indicating if child's socioeconomic status is diffferent from that of parents'.

upmob

a numeric vector indicating child' socioeconomic status is higher than that of parents'.

dowmob

a numeric vector indicating child' socioeconomic status is lower than that of parents'.

Examples

data(sim_moderate_het)
head(sim_moderate_het)