dowhy icon indicating copy to clipboard operation
dowhy copied to clipboard

Is there a convenient method to test the assumptions in the model?

Open kychanbp opened this issue 3 years ago • 1 comments

In DAGitty, it will generate the code to test the independent assumptions in the model.

Is there any similar function in dowhy?

sth like this in R

testImplications <- function( covariance.matrix, sample.size ){
	library(ggm)
	tst <- function(i){ pcor.test( pcor(i,covariance.matrix), length(i)-2, sample.size )$pvalue }
tos <- function(i){ paste(i,collapse=" ") }
implications <- list(c("AMT_CREDIT","APARTMENTS_AVG"),
		c("AMT_CREDIT","CNT_FAM_MEMBERS"),
		c("AMT_CREDIT","DAYS_BIRTH","AMT_INCOME_TOTAL"),
		c("AMT_CREDIT","DAYS_EMPLOYED"),
		c("AMT_CREDIT","DAYS_ID_PUBLISH"),
		c("AMT_CREDIT","FLAG_CONT_MOBILE"),
		c("AMT_CREDIT","FLAG_EMAIL"),
		c("AMT_CREDIT","FLAG_EMP_PHONE"),
		c("AMT_CREDIT","FLAG_MOBIL"),
		c("AMT_CREDIT","FLAG_OWN_CAR"),
		c("AMT_CREDIT","NAME_EDUCATION_TYPE","AMT_INCOME_TOTAL"),
		c("AMT_CREDIT","NAME_FAMILY_STATUS"),
		c("AMT_CREDIT","NAME_HOUSING_TYPE"),
		c("AMT_CREDIT","NAME_INCOME_TYPE","AMT_INCOME_TOTAL"),
		c("AMT_CREDIT","OCCUPATION_TYPE","NAME_INCOME_TYPE"),
		c("AMT_CREDIT","OCCUPATION_TYPE","AMT_INCOME_TOTAL"),
		c("AMT_CREDIT","ORGANIZATION_TYPE","NAME_INCOME_TYPE"),
		c("AMT_CREDIT","ORGANIZATION_TYPE","AMT_INCOME_TOTAL"),
		c("AMT_INCOME_TOTAL","APARTMENTS_AVG"),
		c("AMT_INCOME_TOTAL","CNT_FAM_MEMBERS"),
		c("AMT_INCOME_TOTAL","DAYS_EMPLOYED"),
		c("AMT_INCOME_TOTAL","DAYS_ID_PUBLISH"),
		c("AMT_INCOME_TOTAL","FLAG_CONT_MOBILE"),
		c("AMT_INCOME_TOTAL","FLAG_EMAIL"),
		c("AMT_INCOME_TOTAL","FLAG_EMP_PHONE"),
		c("AMT_INCOME_TOTAL","FLAG_MOBIL"),
		c("AMT_INCOME_TOTAL","FLAG_OWN_CAR"),
		c("AMT_INCOME_TOTAL","NAME_FAMILY_STATUS"),
		c("AMT_INCOME_TOTAL","NAME_HOUSING_TYPE"),
		c("AMT_INCOME_TOTAL","OCCUPATION_TYPE","NAME_INCOME_TYPE"),
		c("AMT_INCOME_TOTAL","ORGANIZATION_TYPE","NAME_INCOME_TYPE"),
		c("APARTMENTS_AVG","CNT_FAM_MEMBERS"),
		c("APARTMENTS_AVG","DAYS_BIRTH"),
		c("APARTMENTS_AVG","DAYS_EMPLOYED"),
		c("APARTMENTS_AVG","DAYS_ID_PUBLISH"),
		c("APARTMENTS_AVG","FLAG_CONT_MOBILE"),
		c("APARTMENTS_AVG","FLAG_EMAIL"),
		c("APARTMENTS_AVG","FLAG_EMP_PHONE"),
		c("APARTMENTS_AVG","FLAG_MOBIL"),
		c("APARTMENTS_AVG","FLAG_OWN_CAR"),
		c("APARTMENTS_AVG","NAME_EDUCATION_TYPE"),
		c("APARTMENTS_AVG","NAME_FAMILY_STATUS"),
		c("APARTMENTS_AVG","NAME_HOUSING_TYPE"),
		c("APARTMENTS_AVG","NAME_INCOME_TYPE"),
		c("APARTMENTS_AVG","OCCUPATION_TYPE"),
		c("APARTMENTS_AVG","ORGANIZATION_TYPE"),
		c("CNT_FAM_MEMBERS","DAYS_BIRTH"),
		c("CNT_FAM_MEMBERS","DAYS_EMPLOYED"),
		c("CNT_FAM_MEMBERS","DAYS_ID_PUBLISH"),
		c("CNT_FAM_MEMBERS","FLAG_CONT_MOBILE"),
		c("CNT_FAM_MEMBERS","FLAG_EMAIL"),
		c("CNT_FAM_MEMBERS","FLAG_EMP_PHONE"),
		c("CNT_FAM_MEMBERS","FLAG_MOBIL"),
		c("CNT_FAM_MEMBERS","FLAG_OWN_CAR"),
		c("CNT_FAM_MEMBERS","NAME_EDUCATION_TYPE"),
		c("CNT_FAM_MEMBERS","NAME_FAMILY_STATUS"),
		c("CNT_FAM_MEMBERS","NAME_HOUSING_TYPE"),
		c("CNT_FAM_MEMBERS","NAME_INCOME_TYPE"),
		c("CNT_FAM_MEMBERS","OCCUPATION_TYPE"),
		c("CNT_FAM_MEMBERS","ORGANIZATION_TYPE"),
		c("DAYS_BIRTH","DAYS_EMPLOYED"),
		c("DAYS_BIRTH","DAYS_ID_PUBLISH"),
		c("DAYS_BIRTH","FLAG_CONT_MOBILE"),
		c("DAYS_BIRTH","FLAG_EMAIL"),
		c("DAYS_BIRTH","FLAG_EMP_PHONE"),
		c("DAYS_BIRTH","FLAG_MOBIL"),
		c("DAYS_BIRTH","FLAG_OWN_CAR"),
		c("DAYS_BIRTH","NAME_EDUCATION_TYPE"),
		c("DAYS_BIRTH","NAME_FAMILY_STATUS"),
		c("DAYS_BIRTH","NAME_HOUSING_TYPE"),
		c("DAYS_BIRTH","NAME_INCOME_TYPE"),
		c("DAYS_BIRTH","OCCUPATION_TYPE"),
		c("DAYS_BIRTH","ORGANIZATION_TYPE"),
		c("DAYS_EMPLOYED","DAYS_ID_PUBLISH"),
		c("DAYS_EMPLOYED","FLAG_CONT_MOBILE"),
		c("DAYS_EMPLOYED","FLAG_EMAIL"),
		c("DAYS_EMPLOYED","FLAG_EMP_PHONE"),
		c("DAYS_EMPLOYED","FLAG_MOBIL"),
		c("DAYS_EMPLOYED","FLAG_OWN_CAR"),
		c("DAYS_EMPLOYED","NAME_EDUCATION_TYPE"),
		c("DAYS_EMPLOYED","NAME_FAMILY_STATUS"),
		c("DAYS_EMPLOYED","NAME_HOUSING_TYPE"),
		c("DAYS_EMPLOYED","NAME_INCOME_TYPE"),
		c("DAYS_EMPLOYED","OCCUPATION_TYPE"),
		c("DAYS_EMPLOYED","ORGANIZATION_TYPE"),
		c("DAYS_ID_PUBLISH","FLAG_CONT_MOBILE"),
		c("DAYS_ID_PUBLISH","FLAG_EMAIL"),
		c("DAYS_ID_PUBLISH","FLAG_EMP_PHONE"),
		c("DAYS_ID_PUBLISH","FLAG_MOBIL"),
		c("DAYS_ID_PUBLISH","FLAG_OWN_CAR"),
		c("DAYS_ID_PUBLISH","NAME_EDUCATION_TYPE"),
		c("DAYS_ID_PUBLISH","NAME_FAMILY_STATUS"),
		c("DAYS_ID_PUBLISH","NAME_HOUSING_TYPE"),
		c("DAYS_ID_PUBLISH","NAME_INCOME_TYPE"),
		c("DAYS_ID_PUBLISH","OCCUPATION_TYPE"),
		c("DAYS_ID_PUBLISH","ORGANIZATION_TYPE"),
		c("FLAG_CONT_MOBILE","FLAG_EMAIL"),
		c("FLAG_CONT_MOBILE","FLAG_EMP_PHONE"),
		c("FLAG_CONT_MOBILE","FLAG_OWN_CAR"),
		c("FLAG_CONT_MOBILE","NAME_EDUCATION_TYPE"),
		c("FLAG_CONT_MOBILE","NAME_FAMILY_STATUS"),
		c("FLAG_CONT_MOBILE","NAME_HOUSING_TYPE"),
		c("FLAG_CONT_MOBILE","NAME_INCOME_TYPE"),
		c("FLAG_CONT_MOBILE","OCCUPATION_TYPE"),
		c("FLAG_CONT_MOBILE","ORGANIZATION_TYPE"),
		c("FLAG_EMAIL","FLAG_EMP_PHONE"),
		c("FLAG_EMAIL","FLAG_MOBIL"),
		c("FLAG_EMAIL","FLAG_OWN_CAR"),
		c("FLAG_EMAIL","NAME_EDUCATION_TYPE"),
		c("FLAG_EMAIL","NAME_FAMILY_STATUS"),
		c("FLAG_EMAIL","NAME_HOUSING_TYPE"),
		c("FLAG_EMAIL","NAME_INCOME_TYPE"),
		c("FLAG_EMAIL","OCCUPATION_TYPE"),
		c("FLAG_EMAIL","ORGANIZATION_TYPE"),
		c("FLAG_EMP_PHONE","FLAG_MOBIL"),
		c("FLAG_EMP_PHONE","FLAG_OWN_CAR"),
		c("FLAG_EMP_PHONE","NAME_EDUCATION_TYPE"),
		c("FLAG_EMP_PHONE","NAME_FAMILY_STATUS"),
		c("FLAG_EMP_PHONE","NAME_HOUSING_TYPE"),
		c("FLAG_EMP_PHONE","NAME_INCOME_TYPE"),
		c("FLAG_EMP_PHONE","OCCUPATION_TYPE"),
		c("FLAG_EMP_PHONE","ORGANIZATION_TYPE"),
		c("FLAG_MOBIL","FLAG_OWN_CAR"),
		c("FLAG_MOBIL","NAME_EDUCATION_TYPE"),
		c("FLAG_MOBIL","NAME_FAMILY_STATUS"),
		c("FLAG_MOBIL","NAME_HOUSING_TYPE"),
		c("FLAG_MOBIL","NAME_INCOME_TYPE"),
		c("FLAG_MOBIL","OCCUPATION_TYPE"),
		c("FLAG_MOBIL","ORGANIZATION_TYPE"),
		c("FLAG_MOBIL","TARGET","FLAG_CONT_MOBILE"),
		c("FLAG_OWN_CAR","NAME_EDUCATION_TYPE"),
		c("FLAG_OWN_CAR","NAME_FAMILY_STATUS"),
		c("FLAG_OWN_CAR","NAME_HOUSING_TYPE"),
		c("FLAG_OWN_CAR","NAME_INCOME_TYPE"),
		c("FLAG_OWN_CAR","OCCUPATION_TYPE"),
		c("FLAG_OWN_CAR","ORGANIZATION_TYPE"),
		c("NAME_EDUCATION_TYPE","NAME_FAMILY_STATUS"),
		c("NAME_EDUCATION_TYPE","NAME_HOUSING_TYPE"),
		c("NAME_EDUCATION_TYPE","NAME_INCOME_TYPE"),
		c("NAME_EDUCATION_TYPE","OCCUPATION_TYPE"),
		c("NAME_EDUCATION_TYPE","ORGANIZATION_TYPE"),
		c("NAME_EDUCATION_TYPE","TARGET","NAME_INCOME_TYPE","DAYS_BIRTH","AMT_INCOME_TOTAL"),
		c("NAME_FAMILY_STATUS","NAME_HOUSING_TYPE"),
		c("NAME_FAMILY_STATUS","NAME_INCOME_TYPE"),
		c("NAME_FAMILY_STATUS","OCCUPATION_TYPE"),
		c("NAME_FAMILY_STATUS","ORGANIZATION_TYPE"),
		c("NAME_HOUSING_TYPE","NAME_INCOME_TYPE"),
		c("NAME_HOUSING_TYPE","OCCUPATION_TYPE"),
		c("NAME_HOUSING_TYPE","ORGANIZATION_TYPE"),
		c("OCCUPATION_TYPE","ORGANIZATION_TYPE"))
	data.frame( implication=unlist(lapply(implications,tos)),
		pvalue=unlist( lapply( implications, tst ) ) )

}

kychanbp avatar Nov 06 '21 04:11 kychanbp

We do not support it currently. That's been on the desired features list for some time. Will add it for the December release.

amit-sharma avatar Nov 12 '21 05:11 amit-sharma