#What works clearinghouse version of standardized program difference

#Hedges's g and Cox Index

#See page 15 and 16

#https://ies.ed.gov/ncee/wwc/Docs/referenceresources/WWC_Procedures_Handbook_V4_1_Draft.pdf

#Kaz has the web-based calculator -- to use for QC'ing my results here

#https://www.estat.us/file/calc_t_test1.php

CCC<-filter(match.data1,treat==0)

TTT<-filter(match.data1,treat==1)

#These are for raw database

#raw data

#CCC<-filter(studydata3,treatment==0)

#TTT<-filter(studydata3,treatment==1)

#CCC<-filter(psmdata,treat==0)

#TTT<-filter(psmdata,treat==1)

###############################################################################

#What works clearinghouse version of standardized program difference

#Hedges's g and Cox Index

#See page 15 and 16

#https://ies.ed.gov/ncee/wwc/Docs/referenceresources/WWC_Procedures_Handbook_V4_1_Draft.pdf

#Kaz has the web-based calculator -- to use for QC'ing my results here

#https://www.estat.us/file/calc_t_test1.php

#Hedges' g for continuous variables

#Kaz added the correct, sample size adjusted version of this while meeting with Samara for transition

kaz_macro_lin<-function(kaz1){

col_name <- deparse(substitute(kaz1))

C_mean<-mean(CCC[[col_name]])

T_mean<-mean(TTT[[col_name]])

C_sd<-sd(CCC[[col_name]])

T_sd<-sd(TTT[[col_name]])

C_n<-length(CCC[[col_name]])

T_n<-length(TTT[[col_name]])

total_n<-C_n+T_n

#linear

simple_gap=T_mean-C_mean

g1<- ((T_n-1)*(T_sd*T_sd))+((C_n-1)*(C_sd*C_sd))

g2= T_n + C_n -2

g3= sqrt(g1/g2)

wwc_effect= simple_gap/g3

#I didn't adjust for sample size

omega<-(1-3/( 4*total_n -9))

wwc_effect_n_adjusted= (omega*simple_gap)/g3

print(T_n)

print(C_n)

print(total_n)

print(T_mean)

print(C_mean)

print(T_sd)

print(C_sd)

print ("Hedges'g without sample size adjustment")

print(wwc_effect)

print ("Hedges'g with sample size adjustment (Use this)")

print(wwc_effect_n_adjusted)

print ("FYI: Adjustment factor")

print(omega)

}

#Cox Index

#Kaz added the correct, sample size adjusted version of this while meeting with Samara for transition

kaz_macro_bin<-function(kaz1){

col_name <- deparse(substitute(kaz1))

C_mean<-mean(CCC[[col_name]])

T_mean<-mean(TTT[[col_name]])

C_sd<-sd(CCC[[col_name]])

T_sd<-sd(TTT[[col_name]])

C_n<-length(CCC[[col_name]])

T_n<-length(TTT[[col_name]])

#binary

Odds_C<-(C_mean/(1-C_mean))

Odds_T<-(T_mean/(1-T_mean))

Odds_ratio<-Odds_T/Odds_C

LN_C<-log(Odds_C)

LN_T<-log(Odds_T)

LN_DIF<-LN_T-LN_C

# WWC_effect=(round(LN_DIF/1.65,0.001))

WWC_effect_binary<-(LN_DIF/1.65)

#sample size adjustment (Kaz is adding this on December 30 2022)

#I didn't use this for writing the report draft

total_n<-C_n+T_n

omega<-(1-3/( 4*total_n -9))

WWC_binary_effect_n_adjusted=(omega*LN_DIF)/1.65;

print(T_n)

print(C_n)

print(total_n)

print(T_mean)

print(C_mean)

print("Cox Index without sample size adjustment")

print(WWC_effect_binary)

print("Cox Index with sample size adjustment -- Use this")

print(WWC_binary_effect_n_adjusted)

print ("FYI: Adjustment factor")

print(omega)

}

###############################################################################

table(psmdata$treat)

kaz_macro_bin(male)

kaz_macro_bin(minority)

kaz_macro_bin(disadv)

kaz_macro_bin(binary_dualcredit)

kaz_macro_lin(GPA_12_GRADE)

kaz_macro_lin(SAT_TOTAL)

#Sam asked me to check this

kaz_macro_lin(TOTAL_DUALCREDIT)

kaz_macro_bin(enroll_FR_spring)

kaz_macro_bin(enroll_SP_fall)

kaz_macro_bin(enroll_SP_spring)