The signs of expse_x0 and expse_x1 seems to be flipped
Opened this issue · 0 comments
ChaoPang commented
The signs of expse_x0
and expse_x1
seem to be flipped, I calculated TV
using the TV decomposition 1 provided in your slides, but the answer doesn't match up with the actual TV. However, the answer does match up if I flip the signs of expse_x0
and expse_x1
. Could you take a look at this, please?
library(faircause)
library(ggspectra)
census <- head(faircause::gov_census, n = 20000L)
TV <- mean(census$salary[census$sex == "male"]) -
mean(census$salary[census$sex == "female"])
X <- "sex" # protected attribute
Z <- c("age", "race", "hispanic_origin", "citizenship", "nativity",
"economic_region") # confounders
W <- c("marital", "family_size", "children", "education_level", "english_level",
"hours_worked", "weeks_worked", "occupation", "industry") # mediators
Y <- "salary" # outcome
# decompose the total variation measure
set.seed(2022)
tvd <- fairness_cookbook(data = census, X = X, W = W, Z = Z, Y = Y,
x0 = "female", x1 = "male")
expse_x1=mean(tvd$measures$value[tvd$measures$measure == "expse_x1"])
expse_0=mean(tvd$measures$value[tvd$measures$measure == "expse_x0"])
nde=mean(tvd$measures$value[tvd$measures$measure == "nde"])
nie=mean(tvd$measures$value[tvd$measures$measure == "nie"])
tv=mean(tvd$measures$value[tvd$measures$measure == "tv"])
print(paste("Tv Decomposition 1: nde - nie - (expse_x1 - expse_0)", nde - nie - (expse_x1 - expse_0), sep=":"))
print(paste("Actual TV", tv, sep = ":"))
print(paste("Tv Decomposition 1 with flipped signs: nde - nie + (expse_x1 - expse_0)", nde - nie + (expse_x1 - expse_0), sep=":"))