| Type: | Package | 
| Title: | Simulate Auto Regressive Data from Precision Matricies | 
| Version: | 0.1.0 | 
| Author: | Neal Marquez [aut, cre, cph] | 
| Maintainer: | Neal Marquez <nmarquez@uw.edu> | 
| Description: | Using sparse precision matricies and Choleski factorization simulates data that is auto-regressive. | 
| Depends: | R (≥ 3.3.0) | 
| Imports: | MASS, Matrix, sparseMVN, sp | 
| Suggests: | ggplot2, leaflet | 
| License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] | 
| BugReports: | https://github.com/nmmarquez/ar.matrix/issues | 
| Encoding: | UTF-8 | 
| LazyData: | true | 
| RoxygenNote: | 6.1.1 | 
| NeedsCompilation: | no | 
| Packaged: | 2018-11-20 20:44:39 UTC; nmarquez | 
| Repository: | CRAN | 
| Date/Publication: | 2018-12-02 17:30:06 UTC | 
Precision matrix for an AR1 process
Description
Functions for creating precision matricies and observations of an AR1 process
Usage
Q.AR1(M, sigma, rho, sparse=FALSE, vcov=FALSE)
r.AR1(n, M, sigma, rho)
Arguments
| M | int > 0, number of elements in the AR1 process. | 
| sigma | float > 0, pairwise observation standard deviation. | 
| rho | float >= 0 & < 1, how correlated pairwise observations are. The function will still run with values outside of the range [0,1) however the stability of the simulation results are not gaurunteed. | 
| sparse | bool Should the matrix be of class 'dsCMatrix' | 
| vcov | bool If the vcov matrix should be returned instead of the precision matrix. | 
| n | int > 0, number of observations to simulate from the GMRF. | 
Value
Q.AR1 returns either a precision or variance-covariance function with a AR1 structure.
r.AR1 retrurns a matrix with n rows which are the n observations of a Gaussian Markov random field AR1 process.
Examples
require("ggplot2")
# simulate AR1 GMRF
obs <- r.AR1(100, M=30, sigma=1, rho=.98)
# resulting matrix is n x M
dim(obs)
# subtract off the first time point to more easily observe correlation
obs_adj <- obs - obs[,1]
# move objects to a data frame
ar1_df <- data.frame(obs=c(t(obs_adj)), realization=rep(1:100, each=30),
                     time=rep(1:30, 100))
# plot each realization
ggplot(data=ar1_df, aes(time, obs, group=realization, color=realization)) +
    geom_line()
Precision matrix for a IID process
Description
Functions for creating precision matricies and observations of a independent identically distributed GMRF process.
Usage
Q.iid(M, sigma, sparse=FALSE,  vcov=FALSE)
r.iid(n, M, sigma)
Arguments
| M | int > 0, number of elements in the process. | 
| sigma | float > 0, standard deviat | 
| sparse | bool Should the matrix be of class 'dsCMatrix' | 
| vcov | bool If the vcov matrix should be returned instead of the precision matrix. | 
| n | int > 0, number of observations to simulate from the GMRF. | 
Value
Q.iid returns either a precision or variance-covariance function with iid structure.
r.iid retrurns a matrix with n rows which are the n observations of a Gaussian Markov random field iid process.
Examples
require("leaflet")
require("sp")
# simulate iid data and attach to spatial polygons data frame
US.df@data$data <- c(r.iid(1, M=nrow(US.graph), sigma=1))
# color palette of data
pal <- colorNumeric(palette="YlGnBu", domain=US.df@data$data)
# see map
map1<-leaflet() %>%
    addProviderTiles("CartoDB.Positron") %>%
    addPolygons(data=US.df, fillColor=~pal(data), color="#b2aeae",
                fillOpacity=0.7, weight=0.3, smoothFactor=0.2) %>%
    addLegend("bottomright", pal=pal, values=US.df$data, title="", opacity=1)
map1
Precision matrix for a pCAR process
Description
Functions for creating precision matricies and observations of a Leroux CAR(lCAR) process as defined in MacNab 2011. The matrix defines the precision of estimates when observations share connections which are conditionally auto-regressive(CAR).
Usage
Q.lCAR(graph, sigma, rho, sparse=FALSE, vcov=FALSE)
r.lCAR(n, graph, sigma, rho)
Arguments
| graph | matrix, square matrix indicating where two observations are connected (and therefore conditionally auto-regressive). | 
| sigma | float > 0, process standard derviation see MacNab 2011. | 
| rho | float >= 0 & < 1, how correlated neighbors are. The function will still run with values outside of the range [0,1) however the stability of the simulation results are not gaurunteed. see MacNab 2011. | 
| sparse | bool Should the matrix be of class 'dsCMatrix' | 
| vcov | bool If the vcov matrix should be returned instead of the precision matrix. | 
| n | int > 0, number of observations to simulate from the GMRF. | 
Value
Q.lCAR returns either a precision or variance-covariance function with a lCAR structure.
r.lCAR retrurns a matrix with n rows which are the n observations of a Gaussian Markov random field lCAR process.
References
Y.C. MacNab On Gaussian Markov random fields and Bayesian disease mapping. Statistical Methods in Medical Research. 2011.
Examples
require("leaflet")
require("sp")
# simulate lCAR data and attach to spatial polygons data frame
US.df@data$data <- c(r.lCAR(1, graph=US.graph, sigma=1, rho=.99))
# color palette of data
pal <- colorNumeric(palette="YlGnBu", domain=US.df@data$data)
# see map
map1<-leaflet() %>%
    addProviderTiles("CartoDB.Positron") %>%
    addPolygons(data=US.df, fillColor=~pal(data), color="#b2aeae",
                fillOpacity=0.7, weight=0.3, smoothFactor=0.2) %>%
    addLegend("bottomright", pal=pal, values=US.df$data, title="", opacity=1)
map1
Modified Precision matrix for a BYM process
Description
EXPIREMENTAL. Functions for creating precision matricies and observations of a modified BYM process as defined in MacNab 2011. The matrix defines the precision of estimates when observations share connections which are conditionally auto-regressive(CAR). Because the precision matrix is not symetric the process is not a true GMRF.
Usage
Q.mBYM(graph, sigma, rho, vcov=FALSE)
r.mBYM(n, graph, sigma, rho)
Arguments
| graph | matrix, square matrix indicating where two observations are connected (and therefore conditionally auto-regressive). | 
| sigma | float > 0, process standard derviation see MacNab 2011. | 
| rho | float >= 0 & < 1, how correlated neighbors are. The function will still run with values outside of the range [0,1) however the stability of the simulation results are not gaurunteed. see MacNab 2011. | 
| vcov | bool If the vcov matrix should be returned instead of the precision matrix. | 
| n | int > 0, number of observations to simulate from the GMRF. | 
Value
Q.mBYM returns either a precision or variance-covariance function with a modified BYM structure.
r.mBYM retrurns a matrix with n rows which are the n observations of a pseudo Gaussian Markov random field of a modified BYM process.
References
Y.C. MacNab On Gaussian Markov random fields and Bayesian disease mapping. Statistical Methods in Medical Research. 2011.
Examples
## Not run: 
require("leaflet")
require("sp")
# simulate mBYM data and attach to spatial polygons data frame
US.df@data$data <- c(r.mBYM(1, graph=US.graph, sigma=1, rho=.99))
# color palette of data
pal <- colorNumeric(palette="YlGnBu", domain=US.df@data$data)
# see map
map1<-leaflet() %>%
    addProviderTiles("CartoDB.Positron") %>%
    addPolygons(data=US.df, fillColor=~pal(data), color="#b2aeae",
                fillOpacity=0.7, weight=0.3, smoothFactor=0.2) %>%
    addLegend("bottomright", pal=pal, values=US.df$data, title="", opacity=1)
map1
## End(Not run)
Precision matrix for a pCAR process
Description
Functions for creating precision matricies and observations of a proper CAR(pCAR) process as defined in MacNab 2011. The matrix defines the precision of estimates when observations share connections which are conditionally auto-regressive(CAR).
Usage
Q.pCAR(graph, sigma, rho, sparse=FALSE, vcov=FALSE)
r.pCAR(n, graph, sigma, rho)
Arguments
| graph | matrix, square matrix indicating where two observations are connected (and therefore conditionally auto-regressive). | 
| sigma | float > 0, process standard derviation see MacNab 2011. | 
| rho | float >= 0 & < 1, how correlated neighbors are. The function will still run with values outside of the range [0,1) however the stability of the simulation results are not gaurunteed. see MacNab 2011. | 
| sparse | bool Should the matrix be of class 'dsCMatrix' | 
| vcov | bool If the vcov matrix should be returned instead of the precision matrix. | 
| n | int > 0, number of observations to simulate from the GMRF. | 
Value
Q.pCAR returns either a precision or variance-covariance function with a pCAR structure.
r.pCAR retrurns a matrix with n rows which are the n observations of a Gaussian Markov random field pCAR process.
References
Y.C. MacNab On Gaussian Markov random fields and Bayesian disease mapping. Statistical Methods in Medical Research. 2011.
Examples
require("leaflet")
require("sp")
# simulate pCAR data and attach to spatial polygons data frame
US.df@data$data <- c(r.pCAR(1, graph=US.graph, sigma=1, rho=.99))
# color palette of data
pal <- colorNumeric(palette="YlGnBu", domain=US.df@data$data)
# see map
map1<-leaflet() %>%
    addProviderTiles("CartoDB.Positron") %>%
    addPolygons(data=US.df, fillColor=~pal(data), color="#b2aeae",
                fillOpacity=0.7, weight=0.3, smoothFactor=0.2) %>%
    addLegend("bottomright", pal=pal, values=US.df$data, title="", opacity=1)
map1
Spatial Polygons Data Frame of Counties for Several States
Description
Spatial Polygons data frame with 475 counties from the US states Louisiana, Texas, Mississippi, & Arkansas. FIPS codes for the state and county are provided in the data frame.
Matrix of Shared Boundaries Between US.df Counties
Description
A 475x475 matrix where the index corresponds to a row in the US.df Spatial Polygons data frame and the index of the matrix at row i column j is 1 when US.df[i,] and US.df[j,] share a border and 0 when they do not.
Simulate correlated data from a precision matrix.
Description
Takes in a square precision matrix, which ideally should be sparse and using Choleski factorization simulates data from a mean 0 process where the inverse of the precision matrix represents the variance-covariance of the points in the process. The resulting simulants represent samples of a Gaussian Markov random field (GMRF).
Usage
sim.AR(n, Q)
Arguments
| n | int > 0, number of observations to simulate from the GMRF. | 
| Q | matrix, a square precision matrix. | 
Value
Matrix object, matrix where each row is a single obsrevation from a GMRF with covariance structure Q^-1.
Examples
require("ggplot2")
# simulate 2D ar1 process
# pairwise correlation
rho <- .95
# pairwise variance
sigma <- .5
# 2 dimensions of simulations
years <- 20
ages <- 10
# kronnecker product to get joint covariance
Q2D <- kronecker(Q.AR1(M=years, sigma, rho), Q.AR1(M=ages, sigma, rho))
# simulate the data and place it in a data frame
Q2D.df <- data.frame(obs=c(sim.AR(1, Q2D)), age=rep(1:ages, years),
                     year=rep(1:years, each=ages))
# graph results
ggplot(data=Q2D.df, aes(year, obs, group=age, color=age)) + geom_line()