CondIndependentTest.R
1.35 KB
#This file is to test the conditional independence of two variable giving 2 parent set. Please read README file before first executing this code.
CondIndTwoVar =
function (filename = "/home/zgong001/Documents/SprinklerDataset/sprinkler1001.txt", alphalevel = 0.05, methodu="x2", exfilename = "/home/zgong001/Documents/SprinklerDataset/pvalueSorted(sprinkler).xlsx"){
library(bnlearn)
result = data.frame()
sprinkler <- read.table(filename, header = TRUE)
columname = colnames(sprinkler)
m=length(columname)
x=seq(0,m-1,by=1)
colnames(sprinkler)=x
columname = colnames(sprinkler)
TwoVComb = combn(columname,2)
for(jt in 1:ncol(TwoVComb)){
twoV = c(TwoVComb[1,jt], TwoVComb[2,jt])
columnameT = columname[! columname %in% twoV]
colComb = combn(columnameT,2)
for (j in 1:ncol(colComb)){
citest = ci.test(colComb[1,j], colComb[2,j], twoV, test = methodu, data = sprinkler)
lable = paste(paste(colComb[1,j], colComb[2,j],sep=", "), "|", paste(twoV[1], twoV[2], sep=", "), sep=" ")
pvalue = citest$p.value
CIlist= data.frame("Index" = lable, "pvalue" = pvalue)
result = rbind(result, CIlist)
}
}
result2 = result[order(-result[,2]), ]
write.xlsx(result2, exfilename, sheetName = "Sheet1", col.names = TRUE, row.names = TRUE, append = FALSE)
return(result2)
}