GaussL0penIntScore-class {pcalg} | R Documentation |
Class "GaussL0penIntScore"
Description
This class represents a score for causal inference from jointly interventional
and observational Gaussian data; it is used in the causal inference functions
gies
and simy
.
Details
The class implements an -penalized Gaussian maximum
likelihood estimator. The penalization is a constant (specified by
the argument
lambda
in the constructor) times the number of
parameters of the DAG model. By default, the constant is
chosen as
, which corresponds to the BIC score.
Extends
Class "Score"
, directly.
All reference classes extend and inherit methods from "envRefClass"
.
Fields
The class GaussL0penIntScore
has the same fields as Score
.
They need not be accessed by the user.
Constructor
new("GaussL0penIntScore", data = matrix(1, 1, 1), targets = list(integer(0)), target.index = rep(as.integer(1), nrow(data)), lambda = 0.5*log(nrow(data)), intercept = FALSE, use.cpp = TRUE, ...)
data
Data matrix with
rows and
columns. Each row corresponds to one realization, either interventional or observational.
targets
List of mutually exclusive intervention targets that have been used for data generation.
target.index
Vector of length
; the
-th entry specifies the index of the intervention target in
targets
under which the-th row of
data
was measured.lambda
Penalization constant (cf. details)
intercept
Indicates whether an intercept is allowed in the linear structural equations, or, equivalently, if a mean different from zero is allowed for the observational distribution.
use.cpp
Indicates whether the calculation of the score should be done by the C++ library of the package, which speeds up calculation. This parameter should only be set to
FALSE
in the case of problems.
Methods
local.score(vertex, parents, ...)
Calculates the local score of a vertex and its parents. Since this score has no obvious interpretation, it is rather for internal use.
global.score.int(edges, ...)
Calculates the global score of a DAG, represented as a list of in-edges: for each vertex in the DAG, this list contains a vector of parents.
global.score(dag, ...)
Calculates the global score of a DAG, represented as an object of a class derived from
ParDAG
.local.mle(vertex, parents, ...)
Calculates the local MLE of a vertex and its parents. The result is a vector of parameters encoded as follows:
First element: variance of the Gaussian error term
Second element: intercept
Following elements: regression coefficients; one per parent vertex
global.mle(dag, ...)
Calculates the global MLE of a DAG, represented by an object of a class derived from
ParDAG
. The result is a list of vectors, one per vertex, each in the same format as the result vector oflocal.mle
.
Author(s)
Alain Hauser (alain.hauser@bfh.ch)
See Also
gies
, simy
,
GaussL0penObsScore
,
Score
Examples
##################################################
## Using Gaussian Data
##################################################
## Load predefined data
data(gmInt)
## Define the score object
score <- new("GaussL0penIntScore", gmInt$x, gmInt$targets, gmInt$target.index)
## Score of the true underlying DAG
score$global.score(as(gmInt$g, "GaussParDAG"))
## Score of the DAG that has only one edge from 1 to 2
A <- matrix(0, ncol(gmInt$x), ncol(gmInt$x))
A[1, 2] <- 1
score$global.score(as(A, "GaussParDAG"))
## (Note: this is lower than the score of the true DAG.)