# {py:mod}`causalis.scenarios.multi_unconfoundedness.refutation.unconfoundedness.unconfoundedness_validation`

```{py:module} causalis.scenarios.multi_unconfoundedness.refutation.unconfoundedness.unconfoundedness_validation
```

```{autodoc2-docstring} causalis.scenarios.multi_unconfoundedness.refutation.unconfoundedness.unconfoundedness_validation
:allowtitles:
```

## Module Contents

### Functions

````{list-table}
:class: autosummary longtable
:align: left

* - {py:obj}`run_unconfoundedness_diagnostics <causalis.scenarios.multi_unconfoundedness.refutation.unconfoundedness.unconfoundedness_validation.run_unconfoundedness_diagnostics>`
  - ```{autodoc2-docstring} causalis.scenarios.multi_unconfoundedness.refutation.unconfoundedness.unconfoundedness_validation.run_unconfoundedness_diagnostics
    :summary:
    ```
* - {py:obj}`validate_unconfoundedness_balance <causalis.scenarios.multi_unconfoundedness.refutation.unconfoundedness.unconfoundedness_validation.validate_unconfoundedness_balance>`
  - ```{autodoc2-docstring} causalis.scenarios.multi_unconfoundedness.refutation.unconfoundedness.unconfoundedness_validation.validate_unconfoundedness_balance
    :summary:
    ```
````

### Data

````{list-table}
:class: autosummary longtable
:align: left

* - {py:obj}`__all__ <causalis.scenarios.multi_unconfoundedness.refutation.unconfoundedness.unconfoundedness_validation.__all__>`
  - ```{autodoc2-docstring} causalis.scenarios.multi_unconfoundedness.refutation.unconfoundedness.unconfoundedness_validation.__all__
    :summary:
    ```
````

### API

````{py:function} run_unconfoundedness_diagnostics(data: causalis.data_contracts.multicausaldata.MultiCausalData, estimate: causalis.data_contracts.multicausal_estimate.MultiCausalEstimate, *, threshold: float = 0.1, normalize: typing.Optional[bool] = None, return_summary: bool = True) -> typing.Dict[str, typing.Any]
:canonical: causalis.scenarios.multi_unconfoundedness.refutation.unconfoundedness.unconfoundedness_validation.run_unconfoundedness_diagnostics

```{autodoc2-docstring} causalis.scenarios.multi_unconfoundedness.refutation.unconfoundedness.unconfoundedness_validation.run_unconfoundedness_diagnostics
```
````

````{py:function} validate_unconfoundedness_balance(data: causalis.data_contracts.multicausaldata.MultiCausalData, estimate: causalis.data_contracts.multicausal_estimate.MultiCausalEstimate, *, threshold: float = 0.1, normalize: typing.Optional[bool] = None) -> typing.Dict[str, typing.Any]
:canonical: causalis.scenarios.multi_unconfoundedness.refutation.unconfoundedness.unconfoundedness_validation.validate_unconfoundedness_balance

```{autodoc2-docstring} causalis.scenarios.multi_unconfoundedness.refutation.unconfoundedness.unconfoundedness_validation.validate_unconfoundedness_balance
```
````

````{py:data} __all__
:canonical: causalis.scenarios.multi_unconfoundedness.refutation.unconfoundedness.unconfoundedness_validation.__all__
:value: >
   ['run_unconfoundedness_diagnostics', 'validate_unconfoundedness_balance']

```{autodoc2-docstring} causalis.scenarios.multi_unconfoundedness.refutation.unconfoundedness.unconfoundedness_validation.__all__
```

````
