dowhy.utils 包#
子模块#
dowhy.utils.api 模块#
dowhy.utils.cit 模块#
- dowhy.utils.cit.compute_ci(r=None, nx=None, ny=None, confidence=0.95)[source]#
计算相关系数的参数置信区间。 参见:https://online.stat.psu.edu/stat505/lesson/6/6.3
这是通过应用Fisher的r到z变换完成的 z = .5[ln((1+r)/(1-r))] = arctanh(r)
标准误差为1/sqrt(N-3),其中N为样本大小
对于相应的置信水平,正态分布的临界值是通过stats.norm.ppf((1 - alpha)/2)计算得出的,用于双尾测试。
在z空间中的上下置信区间是通过公式 z ± 临界值*误差 计算的
置信区间随后被转换回r空间
:param stat : 相关系数 :param nx : 向量x的长度 :param ny : 向量y的长度 :param confidence : 置信水平 (0.95 = 95%)
:返回 : 包含置信区间的数组
- dowhy.utils.cit.conditional_MI(data=None, x=None, y=None, z=None)[source]#
方法返回给定Z条件下X和Y之间的条件互信息 I(X, Y | Z) = H(X|Z) - H(X|Y,Z)
= H(X,Z) - H(Z) - H(X,Y,Z) + H(Y,Z) = H(X,Z) + H(Y,Z) - H(X,Y,Z) - H(Z)
:param data : 数据集 :param x,y,z : 数据集中的列名 :returns : 给定Z的条件下,X和Y之间的条件互信息
- dowhy.utils.cit.entropy(x)[source]#
” 返回随机变量x的熵 H(x) = - Σ p(x)log(p(x)) :param x : 计算熵的随机变量 :returns : 随机变量的熵
- dowhy.utils.cit.partial_corr(data=None, x=None, y=None, z=None, method='pearson')[source]#
计算偏相关,即在去除z的影响后x和y之间的关联程度。这是通过计算两个线性回归残差之间的相关系数来完成的: xsim z, ysim z 参见:1 https://en.wikipedia.org/wiki/Partial_correlation
:param data : pandas dataframe :param x : 数据中的列名 :param y : 数据中的列名 :param z : 字符串或列表 :param method : 表示相关类型的字符串 - “pearson” 或 “spearman”
- : returns: a python dictionary with keys as
n: 样本大小 r: 偏相关系数 CI95: 95% 参数置信区间 p-val: p值
dowhy.utils.cli_helpers 模块#
- dowhy.utils.cli_helpers.query_yes_no(question, default=True)[source]#
通过标准输入提出一个是/否问题并返回答案。
来源: https://stackoverflow.com/questions/3041986/apt-command-line-interface-like-yes-no-input
如果输入无效,系统将提示用户直到他们提供有效的输入。
副作用:阻塞程序执行,直到给出有效的输入(是/否)。
- Parameters:
question(str) – 向用户提出的问题。
default(bool|None) – 当按下回车键时没有输入值时的默认值。 当为 None 时,没有默认值,查询将循环。
- Returns:
一个布尔值,指示用户是否输入了是或否。
dowhy.utils.dgp 模块#
dowhy.utils.graph_operations 模块#
- dowhy.utils.graph_operations.adjacency_matrix_to_adjacency_list(adjacency_matrix, labels=None)[source]#
将图的邻接矩阵转换为邻接表。
- Parameters:
adjacency_matrix – 一个表示图邻接矩阵的numpy数组。
labels – 标签列表。
- Returns:
作为字典的邻接表。
- dowhy.utils.graph_operations.adjacency_matrix_to_graph(adjacency_matrix, labels=None)[source]#
将给定的图邻接矩阵转换为DOT格式。
- Parameters:
adjacency_matrix – 一个表示图邻接矩阵的numpy数组。
labels – 标签列表。
- Returns:
以DOT格式显示的图形。
- dowhy.utils.graph_operations.daggity_to_dot(daggity_string)[源代码]#
将输入的 daggity_string 转换为有效的 DOT 图形格式。
- Parameters:
daggity_string – 从Daggity网站输出的图形
- Returns:
DOT 字符串
- dowhy.utils.graph_operations.find_ancestor(node_set, node_names, adjacency_matrix, node2idx, idx2node)[source]#
在给定的图中查找一组给定节点的祖先。
- Parameters:
node_set – 必须获取其祖先节点的节点集合。
node_names – 图中所有节点的名称。
adjacency_matrix – 图的邻接矩阵。
node2idx – 一个字典,将节点名称映射到它们在邻接矩阵中的行或列索引。
idx2node – 一个字典,将邻接矩阵中的行或列索引映射到相应的节点名称。
- Returns:
包含node_set中所有节点的祖先的OrderedSet。
- dowhy.utils.graph_operations.find_c_components(adjacency_matrix, node_set, idx2node)[源代码]#
获取图中的C组件。
- Parameters:
adjacency_matrix – 图的邻接矩阵。
node_set – 必须获取其祖先节点的节点集合。
idx2node – 一个字典,将邻接矩阵中的行或列索引映射到相应的节点名称。
- Returns:
图中C组件的列表。
- dowhy.utils.graph_operations.get_simple_ordered_tree(n)[source]#
生成一个简单的有序树。该树只是一个由n个节点组成的有向无环图,结构为0 –> 1 –> …. –> n。
dowhy.utils.graphviz_plotting 模块#
- dowhy.utils.graphviz_plotting.plot_causal_graph_graphviz(causal_graph: Graph, layout_prog: str | None = None, display_causal_strengths: bool = True, causal_strengths: Dict[Tuple[Any, Any], float] | None = None, colors: Dict[Any | Tuple[Any, Any], str] | None = None, filename: str | None = None, display_plot: bool = True, figure_size: Tuple[int, int] | None = None) None[源代码]#
dowhy.utils.networkx_plotting 模块#
- dowhy.utils.networkx_plotting.plot_causal_graph_networkx(causal_graph: Graph, layout_prog: str | None = None, causal_strengths: Dict[Tuple[Any, Any], float] | None = None, colors: Dict[Any | Tuple[Any, Any], str] | None = None, filename: str | None = None, display_plot: bool = True, label_wrap_length: int = 3, figure_size: Tuple[int, int] | None = None) None[源代码]#
dowhy.utils.ordered_set 模块#
- class dowhy.utils.ordered_set.OrderedSet(elements=None)[source]#
基础类:
object用于有序集合的Python类。 代码取自 buyalsky/ordered-hash-set。
- difference(other_set)[source]#
函数用于移除self._set中同时存在于other_set中的元素。
- Parameters:
other_set – 用于获取差集的集合。可以是列表、集合或OrderedSet。
- Returns:
表示 self._set 和 other_set 中元素差异的新 OrderedSet。
dowhy.utils.plotting 模块#
- dowhy.utils.plotting.bar_plot(values: Dict[str, float], uncertainties: Dict[str, Tuple[float, float]] | None = None, ylabel: str = '', filename: str | None = None, display_plot: bool = True, figure_size: List[int] | None = None, bar_width: float = 0.8, xticks: List[str] | None = None, xticks_rotation: int = 90, sort_names: bool = False) None[源代码]#
方便函数,用于绘制带有不确定性条(如果提供)的给定值的条形图。适用于各种归因结果(包括置信区间)。
- Parameters:
values – 一个字典,其中键是标签,值是要绘制的值。
uncertainties – 要添加到误差条的属性字典。
ylabel – y轴的标签。
filename – 如果输出应该绘制到文件中,则为可选的文件名。
display_plot – 可选地指定是否应显示图表(默认为 True)。
figure_size – 要绘制的图形的大小。
bar_width – 柱子的宽度。
xticks – 明确指定x轴上柱状图的标签。
xticks_rotation – 指定x轴上标签的旋转角度。
sort_names – 如果为True,图中的名称将按字母顺序排序。如果为False,则使用values中给出的顺序。
- dowhy.utils.plotting.plot(causal_graph: Graph, layout_prog: str | None = None, causal_strengths: Dict[Tuple[Any, Any], float] | None = None, colors: Dict[Any | Tuple[Any, Any], str] | None = None, filename: str | None = None, display_plot: bool = True, figure_size: Tuple[int, int] | None = None, **kwargs) None[source]#
用于绘制因果图的便捷函数。此函数根据系统上可用的内容使用不同的后端。当使用Graphviz作为后端时,效果最佳。这需要共享系统库(例如
brew install graphviz或apt-get install graphviz)以及Python的pygraphviz包(pip install pygraphviz)。当Graphviz不可用时,它将回退到networkx后端。- Parameters:
causal_graph – 要绘制的图形
layout_prog – 定义布局类型。如果未提供,则对于graphviz图使用'dot'布局,对于networkx图使用自定义布局。
causal_strengths – 一个可选的字典,包含 Edge -> float 条目。
colors – 一个可选的字典,包含边或节点的颜色规范。
filename – 如果输出应该绘制到文件中,则为可选的文件名。
display_plot – 可选地指定是否应显示图表(默认为 True)。
figure_size – 一个元组,用于定义pyplot的宽度和高度(作为一个元组)。此参数用于修改pyplot的'figure.figsize'参数。如果未提供,则使用当前/默认值。
kwargs – 剩余参数将原封不动地传递给后端。
示例用法:
>>> plot(nx.DiGraph([('X', 'Y')])) # plots X -> Y >>> plot(nx.DiGraph([('X', 'Y')]), causal_strengths={('X', 'Y'): 0.43}) # annotates arrow with 0.43 >>> plot(nx.DiGraph([('X', 'Y')]), colors={('X', 'Y'): 'red', 'X': 'green'}) # colors X -> Y red and X green
dowhy.utils.propensity_score 模块#
- dowhy.utils.propensity_score.binary_treatment_model(data, covariates, treatment, variable_types)[source]#
- dowhy.utils.propensity_score.categorical_treatment_model(data, covariates, treatment, variable_types)[source]#
- dowhy.utils.propensity_score.continuous_treatment_model(data, covariates, treatment, variable_types)[source]#
dowhy.utils.regression 模块#
- dowhy.utils.regression.create_polynomial_function(max_degree)[source]#
创建多项式函数列表
- Parameters:
max_degree – 要创建的多项式函数的次数
- Returns:
lambda函数列表