欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python?dowhy數(shù)據(jù)估計(jì)因果分析功能探索

 更新時(shí)間:2024年02月01日 10:55:05   作者:小寒聊python  
這篇文章主要為大家介紹了python?dowhy數(shù)據(jù)估計(jì)因果分析功能實(shí)例探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

python dowhy數(shù)據(jù)分析庫(kù)

今天給大家分享一個(gè)神奇的 python 庫(kù),dowhy

https://github.com/py-why/dowhy 

dowhy 是一個(gè)開(kāi)源的 Python 庫(kù),旨在簡(jiǎn)化因果推斷的過(guò)程,特別是針對(duì)那些希望從數(shù)據(jù)中估計(jì)因果效應(yīng)的研究者和數(shù)據(jù)科學(xué)家。通過(guò)它可以輕松地定義因果模型、識(shí)別因果效應(yīng)、估計(jì)這些效應(yīng)以及進(jìn)行健壯性檢驗(yàn)。它建立在 Pandas、NumPy 和 scikit-learn 等流行庫(kù)之上,提供了一個(gè)直觀且強(qiáng)大的工具,用于根據(jù)觀測(cè)數(shù)據(jù)估計(jì)因果效應(yīng)。

什么是因果分析?

因果分析是統(tǒng)計(jì)分析的一個(gè)分支,旨在理解和量化變量之間的因果關(guān)系。它的目的是回答諸如 “改變一個(gè)變量對(duì)另一個(gè)變量有什么影響?” 之類(lèi)的問(wèn)題?;?“哪些因素影響特定結(jié)果?” 與僅僅識(shí)別變量之間關(guān)系的相關(guān)性不同,因果分析試圖確定一個(gè)變量是否直接影響另一個(gè)變量。

從本質(zhì)上講,因果分析不僅僅是描述關(guān)聯(lián)性,還致力于在變量之間建立因果關(guān)系。這在流行病學(xué)、經(jīng)濟(jì)學(xué)、社會(huì)科學(xué)和醫(yī)療保健等領(lǐng)域至關(guān)重要。

庫(kù)的安裝

可以直接通過(guò) pip 進(jìn)行安裝。

pip install dowhy

加載數(shù)據(jù)集

import numpy as np
import pandas as pd
from dowhy import CausalModel
import dowhy.datasets
rvar = 1 if np.random.uniform() >0.5 else 0 
data_dict = dowhy.datasets.xy_dataset(10000, effect=rvar, sd_error=0.2) 
df = data_dict['df']
df[["Treatment", "Outcome", "w0"]].head()

建立因果模型

現(xiàn)在你可以使用 DoWhy 定義因果模型。這涉及指定分析中的變量、治療、結(jié)果和潛在的混雜因素。

model= CausalModel(
        data=df,
        treatment=data_dict["treatment_name"],
        outcome=data_dict["outcome_name"],
        common_causes=data_dict["common_causes_names"]
        )
model.view_model(layout="dot")

CausalModel 是 DoWhy 庫(kù)中用于定義因果模型的核心類(lèi)。這個(gè)類(lèi)的構(gòu)造函數(shù)接受幾個(gè)關(guān)鍵參數(shù)來(lái)指定模型的不同部分。

data,包含所有相關(guān)數(shù)據(jù)的 DataFrame。這應(yīng)該包括處理變量、結(jié)果變量、共同原因(共變量)、以及(如果有的話(huà))工具變量。

treatment,指定作為處理(干預(yù))的變量名。在因果推斷中,我們關(guān)心的是改變這個(gè)變量會(huì)如何影響結(jié)果變量。

outcome,指定結(jié)果變量的名稱(chēng)。這是我們想要了解其因果效應(yīng)的變量。

common_causes,一個(gè)包含所有已知共同原因(也稱(chēng)為共變量或混雜變量)名稱(chēng)的列表。這些是既影響處理變量又影響結(jié)果變量的變量,必須控制以避免偏差。

instruments,一個(gè)包含所有工具變量名稱(chēng)的列表(如果有的話(huà))。工具變量是與處理變量相關(guān)但只通過(guò)它影響結(jié)果變量的變量,常用于處理內(nèi)生性問(wèn)題。

從圖中可以看出,w0 為混雜變量,它既影響處理變量 treatment 又影響結(jié)果變量 outcome。

估計(jì)因果效應(yīng)

現(xiàn)在我們可以估計(jì)因果效應(yīng)并確定估計(jì)是否正確。為簡(jiǎn)單起見(jiàn),此示例使用線(xiàn)性回歸。

estimate = model.estimate_effect(model.identify_effect(),
        method_name="backdoor.linear_regression")
# Plot Slope of line between treamtent and outcome =causal effect

這行代碼使用 DoWhy 庫(kù)來(lái)估計(jì)因果效應(yīng)。

首先,model.identify_effect() 方法被調(diào)用來(lái)確定從觀測(cè)數(shù)據(jù)中是否可以識(shí)別出處理對(duì)結(jié)果的因果效應(yīng)。這個(gè)識(shí)別過(guò)程通?;谥付ǖ囊蚬麍D,它會(huì)查看是否存在任何未控制的后門(mén)路徑。

然后,通過(guò)指定 method_name="backdoor.linear_regression",它使用線(xiàn)性回歸來(lái)估計(jì)效應(yīng),同時(shí)控制了所有通過(guò)識(shí)別過(guò)程發(fā)現(xiàn)的后門(mén)路徑的變量。這意味著它會(huì)估計(jì)在控制了所有已知的共同原因后,處理對(duì)結(jié)果的直接效應(yīng)。

下面,我們來(lái)繪制處理變量和結(jié)果變量之間的因果效應(yīng)。在這個(gè)圖表中,斜率表示因果效應(yīng)的大小,即處理變量的每個(gè)單位變化將導(dǎo)致結(jié)果變量變化多少單位。如果斜率為正,則意味著處理與結(jié)果之間存在正相關(guān);如果斜率為負(fù),則存在負(fù)相關(guān)。

dowhy.plotter.plot_causal_effect(estimate, df[data_dict["treatment_name"]], df[data_dict["outcome_name"]])

以上就是python dowhy數(shù)據(jù)估計(jì)因果分析功能探索的詳細(xì)內(nèi)容,更多關(guān)于python dowhy數(shù)據(jù)分析的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python自省及反射原理實(shí)例詳解

    Python自省及反射原理實(shí)例詳解

    這篇文章主要介紹了Python自省及反射原理實(shí)例詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 創(chuàng)建Shapefile文件并寫(xiě)入數(shù)據(jù)的例子

    創(chuàng)建Shapefile文件并寫(xiě)入數(shù)據(jù)的例子

    今天小編就為大家分享一篇?jiǎng)?chuàng)建Shapefile文件并寫(xiě)入數(shù)據(jù)的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • Python 字符串中的字符倒轉(zhuǎn)

    Python 字符串中的字符倒轉(zhuǎn)

    實(shí)現(xiàn)字符倒轉(zhuǎn)的python函數(shù)
    2008-09-09
  • Python函數(shù)中參數(shù)是傳遞值還是引用詳解

    Python函數(shù)中參數(shù)是傳遞值還是引用詳解

    這篇文章主要介紹了深入了解Python函數(shù)中參數(shù)是傳值還是傳引用,在 C/C++ 中,傳值和傳引用是函數(shù)參數(shù)傳遞的兩種方式,在Python中參數(shù)是如何傳遞的,需要的朋友可以參考下
    2019-07-07
  • Python中強(qiáng)大的函數(shù)map?filter?reduce使用詳解

    Python中強(qiáng)大的函數(shù)map?filter?reduce使用詳解

    Python是一門(mén)功能豐富的編程語(yǔ)言,提供了許多內(nèi)置函數(shù),以簡(jiǎn)化各種編程任務(wù),在Python中,map(),filter()和reduce()是一組非常有用的函數(shù),它們?cè)试S對(duì)可迭代對(duì)象進(jìn)行操作,從而實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)換、篩選和累積等操作,本文將詳細(xì)介紹這三個(gè)函數(shù),包括它們的基本用法和示例代碼
    2023-11-11
  • 在Python中使用mechanize模塊模擬瀏覽器功能

    在Python中使用mechanize模塊模擬瀏覽器功能

    這篇文章主要介紹了在Python中使用mechanize模塊模擬瀏覽器功能,包括使用cookie和設(shè)置代理等功能的實(shí)現(xiàn),需要的朋友可以參考下
    2015-05-05
  • 11行Python代碼實(shí)現(xiàn)解密摩斯密碼

    11行Python代碼實(shí)現(xiàn)解密摩斯密碼

    摩爾斯電碼是一種時(shí)通時(shí)斷的信號(hào)代碼,通過(guò)不同的排列順序來(lái)表達(dá)不同的英文字母、數(shù)字和標(biāo)點(diǎn)符號(hào)。本文將通過(guò)Python代碼來(lái)實(shí)現(xiàn)解密摩斯密碼,感興趣的可以學(xué)習(xí)一下
    2022-04-04
  • 如何將Python代碼轉(zhuǎn)化為可執(zhí)行的程序

    如何將Python代碼轉(zhuǎn)化為可執(zhí)行的程序

    在Python中,將代碼轉(zhuǎn)成可以執(zhí)行的程序需要安裝庫(kù)pyinstaller,如果是Windows用戶(hù),打開(kāi)Anaconda?Prompt輸入相對(duì)應(yīng)代碼,下面小編給大家詳細(xì)講解如何將Python代碼轉(zhuǎn)化為可執(zhí)行的程序,感興趣的朋友一起看看吧
    2024-03-03
  • Python?中的lambda匿名函數(shù)和三元運(yùn)算符

    Python?中的lambda匿名函數(shù)和三元運(yùn)算符

    這篇文章主要介紹了Python?中的lambda匿名函數(shù)和三元運(yùn)算符,使用關(guān)鍵字???lambda???定義,所以匿名函數(shù)又稱(chēng)之為lambda表達(dá)式,下面文章更多相關(guān)內(nèi)容需要的小伙伴可以參考一下
    2022-04-04
  • OpenCV特征提取與檢測(cè)之Shi-Tomasi角點(diǎn)檢測(cè)器

    OpenCV特征提取與檢測(cè)之Shi-Tomasi角點(diǎn)檢測(cè)器

    在角點(diǎn)檢測(cè)的世界里哈瑞斯無(wú)疑是最重要的方法之一,但Shi-Tomasi作為改進(jìn)的算法也有很大應(yīng)用場(chǎng)景,尤其是動(dòng)態(tài)跟蹤用的還比較多,這篇文章主要給大家介紹了關(guān)于OpenCV特征提取與檢測(cè)之Shi-Tomasi角點(diǎn)檢測(cè)器的相關(guān)資料,需要的朋友可以參考下
    2021-08-08

最新評(píng)論