about summary refs log tree commit diff
path: root/sourcecodes/bnt-master/SLP/examples/test_pc.m
blob: ba2e84c67541d51a6b0b5248d18706de83e4edde (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
% test PC + Chi2 statistical test

clear all;

test='pearson'; % Pearson's Chi2
%test='LRT';     % Likelihood ratio test G2
fprintf('\n=== Structure Learning with PC algorithm (and %s CHI2 test)\n',test);

bnet=mk_asia2_bnet ;

n=8;
names={ 'A' , 'S' , 'T' , 'L' , 'B' , 'O' , 'X' , 'D' };
carre=ones(1,n);
node_type={'tabular','tabular','tabular','tabular','tabular','tabular','tabular','tabular'};

m=2000;
bnet=mk_asia2_bnet;
data = cell(n,m);
for l = 1:m, data(:,l) = sample_bnet(bnet); end
data=cell2mat(data);
fprintf('Complete data have been created.');

tmp=cputime;
PC.dag = learn_struct_pdag_pc('cond_indep_chisquare',n,n-2,data,test);
tmp=cputime-tmp;
fprintf('\t- Execution time : %3.2f seconds\n',tmp);

figure;
[xx yy] = make_layout(bnet.dag);
yy=(yy-0.2)*.8/.6+.1;
xx=(xx-0.2833)*.8/.517+.1;
subplot(1,3,1), [xx yy]=draw_graph(bnet.dag,names,carre,xx,yy); %,carre);
title('ASIA original graph');
subplot(1,3,2), draw_graph(abs(PC.dag),names,carre,xx,yy); %,carre);
title('PC PDAG');
dag = cpdag_to_dag(abs(PC.dag));
subplot(1,3,3), draw_graph(dag,names,carre,xx,yy);
title('PC DAG');
drawnow;