[R] cpquery problem

ross.chapman at ecogeonomix.com ross.chapman at ecogeonomix.com
Fri Jul 29 08:37:03 CEST 2016


Hi all

 

I have a problem with the cpquery function in the bnlearn package.

 

I have constructed a hybrid network (using a mix of continuous and discrete
variables).

 

The network is named "fitted".

 

I am interested in predicting the probability of observing a value greater
that a particular threshold in a continuous variable (ABW) from evidence
presented in a mix of continuous and discrete variables.

 

One of the continuous variables (EST) takes 3 values, x, y and z.

 

I find that the cpquery gives very plausible results if the EST is set to
equal x.

 

For example:

 

> cpquery(fitted,event=(ABW>=11), evidence=eval(parse(text="(EST=='x' & TR>9
& BU>15819 &  RF>2989)")),n=10^6)

[1] 0.7471088

 

While inverting the threshold for ABW gives: 

 

> cpquery(fitted,event=(ABW<=11), evidence=eval(parse(text="(EST=='x' & TR>9
& BU>15819 &  RF>2989)")),n=10^6)
[1] 0.2587795

 

However, if I replace EST=='x' with EST=='z' or EST=='y' I get 0 probability
of obtaining a value for ABW that is either greater or less than the
threshold.

 

For example:

 

> cpquery(fitted,event=(ABW>=11), evidence=eval(parse(text="(EST=='y' & TR>9
& BU>15819 &  RF>2989)")),n=10^6)

[1] 0

 

and 

 

> cpquery(fitted,event=(ABW<=11), evidence=eval(parse(text="(EST=='y' & TR>9
& BU>15819 &  RF>2989)")),n=10^6)

[1] 0

 

I do not understand why classes y and z are returning 0 probabilities for
these queries.  

 

My own knowledge from the data is that these classes should both typically
return a value for ABW that is very much higher than the threshold value.

 

Can you help me understand why my cpquery code is not giving the anticipated
results for x and y? 

 

Many thanks

 

Ross

 


	[[alternative HTML version deleted]]



More information about the R-help mailing list