GaussL0penIntScore-class | R Documentation |
"GaussL0penIntScore"
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
.
The class implements an \ell_0
-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 \lambda
is
chosen as \log(n)/2
, which corresponds to the BIC score.
Class "Score"
, directly.
All reference classes extend and inherit methods from "envRefClass"
.
The class GaussL0penIntScore
has the same fields as Score
.
They need not be accessed by the user.
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 n
rows and p
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 n
; the i
-th entry
specifies the index of the intervention
target in targets
under which the i
-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.
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 of local.mle
.
Alain Hauser (alain.hauser@bfh.ch)
gies
, simy
,
GaussL0penObsScore
,
Score
##################################################
## 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.)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.