srm | R Documentation |
Provides an estimation routine for a multiple group structural equation model for the social relations model (SRM; Kenny & La Voie, 1984; Warner, Kenny, & Soto, 1979). The model is estimated by maximum likelihood (Gill & Swartz, 2001; Nestler, 2018).
srm(model.syntax = NULL, data = NULL, group.var = NULL, rrgroup_name = NULL, person_names = c("Actor", "Partner"), fixed.groups = FALSE, var_positive = -1, optimizer = "srm", maxiter = 300, conv_dev = 1e-08, conv_par = 1e-06, do_line_search = TRUE, line_search_iter_max = 6, verbose = TRUE, use_rcpp = TRUE, shortcut = TRUE, use_woodbury = TRUE) ## S3 method for class 'srm' coef(object, ...) ## S3 method for class 'srm' vcov(object, ...) ## S3 method for class 'srm' summary(object, digits=3, file=NULL, layout=1, ...) ## S3 method for class 'srm' logLik(object, ...)
model.syntax |
Syntax similar to lavaan language, see Examples. |
data |
Data frame containing round robin identifier variables and variables in the round robin design |
group.var |
Name of grouping variable |
rrgroup_name |
Name of variable indicating round robin group |
person_names |
Names for identifier variables for actors and partners |
fixed.groups |
Logical indicating whether groups should be handled with fixed effects |
var_positive |
Nonnegative value if variances are constrained to be positive |
optimizer |
Optimizer to be used: |
maxiter |
Maximum number of iterations |
conv_dev |
Convergence criterion for change relative deviance |
conv_par |
Convergence criterion for change in parameters |
do_line_search |
Logical indicating whether line search should be performed |
line_search_iter_max |
Number of iterations during line search algorithm |
verbose |
Logical indicating whether convergence progress should be displayed |
use_rcpp |
Logical indicating whether Rcpp package should be used |
shortcut |
Logical indicating whether shortcuts for round robin groups with same structure should be used |
use_woodbury |
Logical indicating whether matrix inversion should be simplified by Woodbury identity |
object |
Object of class |
file |
Optional file name for summary output |
digits |
Number of digits after decimal in summary output |
layout |
Different layouts ( |
... |
Further arguments to be passed |
List with following entries (selection)
parm.table |
Parameter table with estimated values |
coef |
Vector of parameter estimates |
vcov |
Covariance matrix of parameter estimates |
parm_list |
List of model matrices |
sigma |
Model implied covariance matrices |
... |
Further values |
Gill, P. S., & Swartz, T. B. (2001). Statistical analyses for round robin interaction data. Canadian Journal of Statistics, 29(2), 321-331. doi: 10.2307/3316080
Kenny, D. A., & La Voie, L. J. (1984). The social relations model. In L. Berkowitz (Ed.), Advances in experimental social psychology (Vol. 18, pp. 142-182). Orlando, FL: Academic. doi: 10.1016/S0065-2601(08)60144-6
Nestler, S. (2018). Likelihood estimation of the multivariate social relations model. Journal of Educational and Behavioral Statistics, 43(4), 387-406. doi: 10.3102/1076998617741106
Warner, R. M., Kenny, D. A., & Soto, M. (1979). A new round robin analysis of variance for social interaction data. Journal of Personality and Social Psychology, 37(10), 1742-1757. doi: 10.1037/0022-3514.37.10.1742
See also TripleR and amen packages for alternative estimation routines for the SRM.
############################################################################# # EXAMPLE 1: Univariate SRM ############################################################################# data(data.srm01, package="srm") dat <- data.srm01 #-- define model mf <- ' %Person F1@A =~ 1*Wert1@A F1@P =~ 1*Wert1@P Wert1@A ~~ 0*Wert1@A + 0*Wert1@P Wert1@P ~~ 0*Wert1@P %Dyad F1@AP =~ 1*Wert1@AP F1@PA =~ 1*Wert1@PA Wert1@AP ~~ 0*Wert1@AP + 0*Wert1@PA Wert1@PA ~~ 0*Wert1@PA ' #-- estimate model mod1 <- srm::srm(mf, data = dat, rrgroup_name="Group", conv_par=1e-4, maxiter=20) summary(mod1) round(coef(mod1),3) ############################################################################# # EXAMPLE 2: Bivariate SRM ############################################################################# data(data.srm01, package="srm") dat <- data.srm01 #-- define model mf <- ' %Person F1@A =~ 1*Wert1@A F1@P =~ 1*Wert1@P F2@A =~ 1*Wert2@A F2@P =~ 1*Wert2@P Wert1@A ~~ 0*Wert1@A + 0*Wert1@P Wert1@P ~~ 0*Wert1@P Wert2@A ~~ 0*Wert2@A + 0*Wert2@P Wert2@P ~~ 0*Wert2@P %Dyad F1@AP =~ 1*Wert1@AP F1@PA =~ 1*Wert1@PA F2@AP =~ 1*Wert2@AP F2@PA =~ 1*Wert2@PA Wert1@AP ~~ 0*Wert1@AP + 0*Wert1@PA Wert1@PA ~~ 0*Wert1@PA Wert2@AP ~~ 0*Wert2@AP + 0*Wert2@PA Wert2@PA ~~ 0*Wert2@PA ' #-- estimate model mod1 <- srm::srm(mf, data = dat, rrgroup_name="Group", conv_par=1e-4, maxiter=20) summary(mod1) ############################################################################# # EXAMPLE 3: One-factor model ############################################################################# data(data.srm01, package="srm") dat <- data.srm01 #-- define model mf <- ' # definition of factor for persons and dyad %Person f1@A=~Wert1@A+Wert2@A+Wert3@A f1@P=~Wert1@P+Wert2@P+Wert3@P %Dyad f1@AP=~Wert1@AP+Wert2@AP+Wert3@AP # define some constraints Wert1@AP ~~ 0*Wert1@PA Wert3@AP ~~ 0*Wert3@PA ' #-- estimate model mod1 <- srm::srm(mf, data = dat, rrgroup_name="Group", conv_par=1e-4) summary(mod1) coef(mod1) #- use stats::nlminb() optimizer mod1 <- srm::srm(mf, data = dat, rrgroup_name="Group", optimizer="nlminb", conv_par=1e-4) summary(mod1)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.