# create two very small networks with covariates for illustrative purposes
Y1 <- matrix(c(0,1,0,1,0,1,0,1,0,0,
0,0,1,1,0,1,0,1,0,1,
1,1,0,0,1,0,0,0,0,0,
1,1,1,0,1,0,0,0,0,1,
1,0,1,0,0,1,1,0,1,1,
0,0,0,0,0,0,1,1,1,1,
0,0,0,0,0,1,0,1,0,1,
1,0,0,0,0,1,1,0,1,1,
0,1,0,1,0,1,0,1,0,0,
0,0,1,1,1,0,0,0,0,0), ncol=10)
Y2 <- matrix(c(0,0,1,0,1,0,0,1,0,0,
0,0,0,0,0,0,0,1,1,0,
0,0,0,1,0,1,0,1,0,1,
0,0,1,0,0,0,1,1,0,0,
1,0,0,1,0,0,1,0,0,1,
0,0,1,0,0,0,1,1,0,0,
0,1,0,0,1,0,0,0,0,0,
1,0,1,0,1,1,1,0,0,1,
0,1,0,1,0,0,0,0,0,0,
0,1,0,1,0,0,0,1,0,0), ncol=10)
Y <- list(Y1, Y2)
Sa1 <- c(1,0,1,0,1,1,0,1,0,1)
Sa2 <- c(1,0,0,1,0,0,1,1,0,1)
Sa <- list(Sa1, Sa2)
Sat <- Rat <- do.call(plyr::rbind.fill.matrix, Sa)
Sb1 <- c(0,1,1,0,1,0,1,0,1,0)
Sb2 <- c(1,0,1,0,0,1,0,1,0,1)
Sb <- list(Sb1, Sb2)
Sbt <- do.call(plyr::rbind.fill.matrix, Sb)
Da1 <- abs(matrix(rep(Sa1,10), byrow = FALSE, ncol= 10) -
matrix(rep(Sa1,10), byrow = TRUE, ncol= 10))
Da2 <- abs(matrix(rep(Sa2,10), byrow = FALSE, ncol= 10) -
matrix(rep(Sa2,10), byrow = TRUE, ncol= 10))
Da <- list(Da1, Da2)
Dat <- do.call(plyr::rbind.fill.matrix, Da)
# estimate p2 model for two networks
M1 <- p2ML(Y, sender= ~ Sat + Sbt, receiver= ~ Rat, density = ~ Dat, adapt = 10, burnin = 100)
summary(M1)
# Notice: burn-in, and number of adaptive sequenses are
# much smaller than recommended to keep computation time low.
# recommended code:
if (FALSE) {
M1 <- p2ML(Y,sender= ~ Sat + Sbt, receiver= ~ Rat, density = ~ Dat)
summary(M1)
}
# estimate p2 model for a single network
M2 <- p2ML(list(Y[[1]]),sender= ~ Sat[1:10,] + Sbt[1:10,], receiver= ~ Rat[1:10,],
density = ~ Dat[1:10,], adapt = 10, burnin = 100)
summary(M2)
# Notice: burn-in, and number of adaptive sequenses are
# much smaller than recommended to keep computation time low.
# recommended code:
if (FALSE) {
M2 <- p2ML(list(Y[[1]]),sender= ~ Sat[1:10,] + Sbt[1:10,], receiver= ~ Rat[1:10,],
density = ~ Dat[1:10,])
summary(M2)
}
Run the code above in your browser using DataLab