Package com.bayesserver.causal
Class BackdoorCriterion
- java.lang.Object
-
- com.bayesserver.causal.BackdoorCriterion
-
- All Implemented Interfaces:
Identification
,Validation
public final class BackdoorCriterion extends Object implements Identification, Validation
Uses the 'Backdoor Criterion' to identify 'adjustment sets', that if found can be used to estimate the causal effect using theBackdoorInference
. The version of the 'Backdoor Criterion' used is complete, and sometimes referred to as just the 'adjustment criterion'.Although the estimation can also be performed using Bayes Server, this criterion can also be used to identfy adjustment sets for use outside Bayes Server.
For more information see 'On the Validity of Covariate Adjustment for Estimating Causal Effects' - Shpitser et al 2012.
-
-
Constructor Summary
Constructors Constructor Description BackdoorCriterion(Network network)
Initializes a new instance of theBackdoorCriterion
class.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Network
getNetwork()
The Bayesian network on which the identification is based.IdentificationOutput
identify(Evidence evidence, Distribution query, IdentificationOptions options)
Determines how to quantify a cause-effect relationship (for a particular criterion), but does not perform the actual estimation.IdentificationOutput
identify(List<CausalNode> treatments, List<CausalNode> outcomes, List<CausalNode> nonTreatmentEvidence, IdentificationOptions options)
Determines how to quantify a cause-effect relationship (for a particular criterion), but does not perform the actual estimation.boolean
isValid(Evidence evidence, Distribution query, ValidationOptions options)
Tests whether adjustment inputs are valid, without raising an exception.boolean
isValid(List<CausalNode> treatments, List<CausalNode> outcomes, List<CausalNode> nonTreatmentEvidence, ValidationOptions options)
Tests whether adjustment inputs are valid, without raising an exception.void
validate(Evidence evidence, Distribution query, ValidationOptions options)
Tests whether adjustment inputs are valid, and throws an exception if not, with an error message.void
validate(List<CausalNode> treatments, List<CausalNode> outcomes, List<CausalNode> nonTreatmentEvidence, ValidationOptions options)
Tests whether adjustment inputs are valid, and throws an exception if not, with an error message.
-
-
-
Constructor Detail
-
BackdoorCriterion
public BackdoorCriterion(Network network)
Initializes a new instance of theBackdoorCriterion
class.- Parameters:
network
- The Bayesian network.
-
-
Method Detail
-
getNetwork
public Network getNetwork()
The Bayesian network on which the identification is based.- Specified by:
getNetwork
in interfaceIdentification
-
validate
public void validate(Evidence evidence, Distribution query, ValidationOptions options)
Tests whether adjustment inputs are valid, and throws an exception if not, with an error message.- Specified by:
validate
in interfaceValidation
- Parameters:
evidence
- Evidence which contains both one or more interventions (treatments X), and optionally other standard (non-intervention) evidence.query
- One or more outcomes (effects) Y.options
- Other options that govern how the calculations are performed. Some options are common to all criterion, and some will have additional options specific to that criterion.
-
isValid
public boolean isValid(Evidence evidence, Distribution query, ValidationOptions options)
Tests whether adjustment inputs are valid, without raising an exception. If invalid, you can also callcom.bayesserver.causal.Validation#validate(IEvidence, IDistribution, IValidationOptions)
'Validate' to throw an exception which contains an error message.- Specified by:
isValid
in interfaceValidation
- Parameters:
evidence
- Evidence which contains both one or more interventions (treatments X), and optionally other standard (non-intervention) evidence.query
- One or more outcomes (effects) Y.options
- Other options that govern how the calculations are performed. Some options are common to all criterion, and some will have additional options specific to that criterion.- Returns:
true
if valid,false
otherwise.
-
identify
public IdentificationOutput identify(Evidence evidence, Distribution query, IdentificationOptions options)
Determines how to quantify a cause-effect relationship (for a particular criterion), but does not perform the actual estimation.- Specified by:
identify
in interfaceIdentification
- Parameters:
evidence
- Evidence which contains both one or more interventions (treatments X), and optionally other standard (non-intervention) evidence.query
- One or more outcomes (effects), often denoted Y.options
- Other options that govern how the calculations are performed. Some options are common to all criterion, and some will have additional options specific to that criterion.- Returns:
- Information on how to calculate the requested cause-effect relationship.
-
identify
public IdentificationOutput identify(List<CausalNode> treatments, List<CausalNode> outcomes, List<CausalNode> nonTreatmentEvidence, IdentificationOptions options)
Determines how to quantify a cause-effect relationship (for a particular criterion), but does not perform the actual estimation.- Specified by:
identify
in interfaceIdentification
- Parameters:
treatments
- One or more treatments/interventions (X).outcomes
- One or more outcomes (effects), often denoted Y.nonTreatmentEvidence
- Any other evidence other than interventions.options
- Other options that govern how the calculations are performed. Some options are common to all criterion, and some will have additional options specific to that criterion.- Returns:
- Information on how to calculate the requested cause-effect relationship.
-
validate
public void validate(List<CausalNode> treatments, List<CausalNode> outcomes, List<CausalNode> nonTreatmentEvidence, ValidationOptions options)
Tests whether adjustment inputs are valid, and throws an exception if not, with an error message.- Specified by:
validate
in interfaceValidation
- Parameters:
treatments
- One or more treatments/interventions (X).outcomes
- One or more outcomes (effects), often denoted Y.nonTreatmentEvidence
- Any non-treatment evidence.options
- Other options that govern how the calculations are performed. Some options are common to all criterion, and some will have additional options specific to that criterion.
-
isValid
public boolean isValid(List<CausalNode> treatments, List<CausalNode> outcomes, List<CausalNode> nonTreatmentEvidence, ValidationOptions options)
Tests whether adjustment inputs are valid, without raising an exception. If invalid, you can also call {@link com.bayesserver.causal.Validation#validate(IList{CausalNode}, IList{CausalNode}, IList{CausalNode}, IValidationOptions)} 'Validate' to throw an exception which contains an error message.- Specified by:
isValid
in interfaceValidation
- Parameters:
treatments
- One or more treatments/interventions (X).outcomes
- One or more outcomes (effects), often denoted Y.nonTreatmentEvidence
- Any non-treatment evidence.options
- Other options that govern how the calculations are performed. Some options are common to all criterion, and some will have additional options specific to that criterion.- Returns:
true
if valid,false
otherwise.
-
-