HLSM_run: Function to run the MCMC sampler in random effects model (and...

Description Usage Arguments Value Author(s) References Examples

Description

Function to run the MCMC sampler to draw from the posterior distribution of intercept, slopes, latent positions, and intervention effect (if applicable). HLSMrandomEF( ) fits random effects model; HLSMfixedEF( ) fits fixed effects model.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
HLSMrandomEF(Y,edgeCov=NULL, receiverCov = NULL, senderCov = NULL, 
        FullX = NULL,initialVals = NULL, priors = NULL, tune = NULL,
        tuneIn = TRUE,TT = NULL,dd, niter,intervention)

HLSMfixedEF(Y,edgeCov=NULL, receiverCov = NULL, senderCov = NULL,
        FullX = NULL, initialVals = NULL, priors = NULL, tune = NULL,
        tuneIn = TRUE, TT = NULL,dd, niter,intervention)

getBeta(object, burnin = 0, thin = 1)
getIntercept(object, burnin = 0, thin = 1)
getAlpha(object, burnin = 0, thin = 1)
getLS(object, burnin  = 0, thin = 1)
getLikelihood(object, burnin = 0, thin = 1)

Arguments

Y

input outcome for different networks. Y can either be

(i). list of socio-matrix for K different networks

(ii). list of data frame with columns Sender, Receiver and Outcome for K different networks

(iii). a dataframe with columns named as follows: id to identify network, Receiver for receiver nodes, Sender for sender nodes and finally, Outcome for the edge outcome.

edgeCov

data frame to specify edge level covariates with

(i). a column for network id named id,

(ii). a column for sender node named Sender,

(iii). a column for receiver nodes named Receiver, and

(iv). columns for values of each edge level covariates.

receiverCov

a data frame to specify nodal covariates as edge receivers with

(i.) a column for network id named id,

(ii.) a column Node for node names, and

(iii). the rest for respective node level covariates.

senderCov

a data frame to specify nodal covariates as edge senders with

(i). a column for network id named id,

(ii). a column Node for node names, and

(iii). the rest for respective node level covariates.

FullX

list of numeric arrays of dimension n by n by p of covariates for K different networks. When FullX is provided to the function, edgeCov, receiverCov and senderCov must be specified as NULL.

initialVals

an optional list of values to initialize the chain. If NULL default initialization is used, else initialVals = list(ZZ, beta, intercept, alpha).

For fixed effect model beta is a vector of length p and intercept is a vector of length 1.

For random effect model beta is an array of dimension K by p, and intercept is a vector of length K, where p is the number of covariates and K is the number of network.

ZZ is an array of dimension NN by dd, where NN is the sum of nodes in all K networks.

alpha is a numeric variable and is 0 for no-intervention model.

priors

an optional list to specify the hyper-parameters for the prior distribution of the paramters. If priors = NULL, default value is used. Else,

priors=

list(MuBeta,VarBeta,MuAlpha,VarAlpha,MuZ,VarZ,PriorA,PriorB)

MuBeta is a numeric vector of length PP + 1 specifying the mean of prior distribution for coefficients and intercept

VarBeta is a numeric vector for the variance of the prior distribution of coefficients and intercept. Its length is same as that of MuBeta.

MuAlpha is a numeric variable specifying the mean of prior distribution of intervention effect. Default is 0.

VarAlpha is a numeric variable for the variance of the prior distribution of intervention effect. Default is 100.

MuZ is a numeric vector of length same as the dimension of the latent space, specifying the prior mean of the latent positions.

VarZ is a numeric vector of length same as the dimension of the latent space, specifying diagonal of the variance covariance matrix of the prior of latent positions.

PriorA, PriorB is a numeric variable to indicate the rate and scale parameters for the inverse gamma prior distribution of the hyper parameter of variance of slope and intercept

tune

an optional list of tuning parameters for tuning the chain. If tune = NULL, default tuning is done. Else,

tune = list(tuneAlpha, tuneBeta, tuneInt,tuneZ).

tuneAlpha, tuneBeta and tuneInt have the same structure as beta, alpha and intercept in initialVals.

ZZ is a vector of length NN.

tuneIn

a logical to indicate whether tuning is needed in the MCMC sampling. Default is FALSE.

TT

a vector of binaries to indicate treatment and control networks. If there is no intervention effect, TT = NULL (default).

dd

dimension of latent space.

niter

number of iterations for the MCMC chain.

intervention

binary variable indicating whether the posterior distribution of the intervention effect is to be estimated.

object

object of class 'HLSM' returned by HLSM() or HLSMfixedEF()

burnin

numeric value to burn the chain while extracting results from the 'HLSM'object. Default is burnin = 0.

thin

numeric value by which the chain is to be thinned while extracting results from the 'HLSM' object. Default is thin = 1.

Value

Returns an object of class "HLSM". It is a list with following components:

draws

list of posterior draws for each parameters.

acc

list of acceptance rates of the parameters.

call

the matched call.

tune

final tuning values

Author(s)

Sam Adhikari

References

Tracy M. Sweet, Andrew C. Thomas and Brian W. Junker (2012), "Hierarchical Network Models for Education Research: Hierarchical Latent Space Models", Journal of Educational and Behavorial Statistics.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
library(HLSM)

#Set values for the inputs of the function
priors = NULL
tune = NULL
initialVals = NULL
niter = 10

#Random effect HLSM on Pitt and Spillane data
random.fit = HLSMrandomEF(Y = ps.advice.mat,FullX = ps.edge.vars.mat,
	initialVals = initialVals,priors = priors,
	tune = tune,tuneIn = FALSE,dd = 2,niter = niter,
	intervention = 0)


summary(random.fit)
names(random.fit)

#extract results without burning and thinning
Beta = getBeta(random.fit)
Intercept = getIntercept(random.fit)
LS = getLS(random.fit)
Likelihood = getLikelihood(random.fit)

##Same can be done for fixed effect model

#Fixed effect HLSM on Pitt and Spillane data 

fixed.fit = HLSMfixedEF(Y = ps.advice.mat,FullX = ps.edge.vars.mat,
	initialVals = initialVals,priors = priors,
	tune = tune,tuneIn = FALSE,dd = 2,niter = niter,
	intervention = 0)

summary(fixed.fit)
names(fixed.fit)

SAcmu/HLSM_0.3 documentation built on May 9, 2019, 11:06 a.m.