Learn R Programming

ggm (version 1.0.4)

fitAncestralGraph: Fitting of Gaussian Ancestral Graph Models

Description

Iterative conditional fitting of Gaussian Ancestral Graph Models.

Usage

fitAncestralGraph(amat, S, n, tol = 1e-06)

Arguments

amat
a square matrix, representing the adjacency matrix of an ancestral graph.
S
a symmetric positive definite matrix with dimnames, the sample covariance matrix.
n
the sample size, a positive integer.
tol
a small positive number indicating the tolerance used in convergence checks.

Value

  • Shatthe fitted covariance matrix.
  • Lhatmatrix of the fitted precisions associated with undirected edges and vertices that do not have an arrowhead pointing at them.
  • Bhatmatrix of the fitted regression coefficients associated to the directed edges. Precisely said Bhat contains ones on the diagonal and the off-diagonal entry $(i,j)$ equals the negated MLE of the regression coefficient for variable $j$ in the regression of variable $i$ on its parents. Note that this $(i,j)$ entry in Bhat corresponds to a directed edge $j \to i$, and thus to a one as $(j,i)$ entry in the adjacency matrix.
  • Ohatmatrix of the error covariances and variances of the residuals between regression equations associated with bidirected edges and vertices with an arrowhead pointing at them.
  • devthe `deviance' of the model.
  • dfthe degrees of freedom.
  • itthe iterations.

Details

Ancestral graph models were introduced by Richardson & Spirtes (2002) as a class of graphical models whose global Markov property is closed under conditioning and marginalization. In the Gaussian case, the models can be parameterized using precision parameters, regression coefficients, and error covariances (compare Richardson & Spirtes, 2002, Section 8). This function finds the MLE $\hat \Lambda$ of the precision parameters by fitting a concentration graph model. The MLE $\hat B$ of the regression coefficients and the MLE $\hat\Omega$ of the error covariances are obtained by iterative conditional fitting (Drton & Richardson, 2003, 2004). The three sets of parameters are combined to the MLE $\hat\Sigma$ of the covariance matrix by matrix multiplication: $$\hat\Sigma = \hat B^{-1}(\hat \Lambda+\hat\Omega)\hat B^{-T}.$$ Note that in Richardson & Spirtes (2002), the matrices $\Lambda$ and $\Omega$ are defined as submatrices.

References

Drton, M. & Richardson, T. S. (2003). A new algorithm for maximum likelihood estimation in Gaussian graphical models for marginal independence. Proceedings of the Nineteenth Conference on Uncertainty in Artificial Intelligence, 184--191.

Drton, M. & Richardson, T. S. (2004). Iterative Conditional Fitting for Gaussian Ancestral Graph Models. Proceedings of the 20th Conference on Uncertainty in Artificial Intelligence, Department of Statistics, 130--137. Richardson, T. Spirtes, P. (2002). Ancestral Graph Markov Models. Annals of Statistics. 30, 4, 962--1030.

See Also

fitCovGraph, icf, makeAG, fitDag

Examples

Run this code
## A covariance matrix
"S" <- structure(c(2.93, -1.7, 0.76, -0.06,
                  -1.7, 1.64, -0.78, 0.1,
                   0.76, -0.78, 1.66, -0.78,
                  -0.06, 0.1, -0.78, 0.81), .Dim = c(4,4),
                 .Dimnames = list(c("y", "x", "z", "u"), c("y", "x", "z", "u")))
## The following should give the same fit.   
## Fit an ancestral graph y -> x <-> z <- u
fitAncestralGraph(ag1 <- makeAG(dag=DAG(x~y,z~u), bg = UG(~x*z)), S, n=100)

## Fit an ancestral graph y <-> x <-> z <-> u
fitAncestralGraph(ag2 <- makeAG(bg= UG(~y*x+x*z+z*u)), S, n=100)

## Fit the same graph with fitCovGraph
fitCovGraph(ag2, S, n=100)    

## Another example for the mathematics marks data

data(marks)
S <- var(marks)
mag1 <- makeAG(bg=UG(~mechanics*vectors*algebra+algebra*analysis*statistics))
fitAncestralGraph(mag1, S, n=88)

mag2 <- makeAG(ug=UG(~mechanics*vectors+analysis*statistics),
               dag=DAG(algebra~mechanics+vectors+analysis+statistics))
fitAncestralGraph(mag2, S, n=88) # Same fit as above

Run the code above in your browser using DataLab