# Diabetes Mellitus
From
- Steffen Michels, Arjen Hommersom, Peter J. F. Lucas, Marina Velikova:
A new probabilistic constraint logic programming language based on a generalised distribution semantics.
Artif. Intell. 228: 1-44 (2015)
We want to compute the probability of insurgence of diabetes mellitus type 2 given the level of glycated
hemoglobin (HbA1c).
Various genetic factors play a role on the onset of type 2 diabetes:
:- use_module(library(mcintyre)).
:- if(current_predicate(use_rendering/1)).
:- use_rendering(c3).
:- use_rendering(graphviz).
:- endif.
:- mc.
:- begin_lpad.
predisposition(average):0.698;predisposition(moderate):0.227;predisposition(high):0.075.
Type2 diabetes has different probability of insurgence given the predisposition:
dm:0.054:-
predisposition(average).
dm:0.131:-
predisposition(moderate).
dm:0.266:-
predisposition(high).
The level of glucose is represented by two normal distributions:
gluc_if_dm(G):gaussian(G,7.5,3.8).
gluc_if_not_dm(G):gaussian(G,5.79,0.98).
The level of HbAc1 depends linearly from the level of glucose plus some noise:
noise_if_dm(N):gaussian(N,0.0,3.3).
noise_if_not_dm(N):gaussian(N,0.0,0.3).
hba1c(H):-
dm,
gluc_if_dm(G),
noise_if_dm(N),
{H=:=1.4+0.92*G+N}.
hba1c(H):-
\+ dm,
gluc_if_not_dm(G),
noise_if_not_dm(N),
{H=:=0.6+0.9*G+N}.
We observe that the level of HbA1c is larger than 7.2:
e:- hba1c(H),{H>7.2}.
:- end_lpad.
We want to compute the probability of diabetes type 2 a priori and given the evidence:
mc_sample(dm,1000,Prob).
mc_mh_sample(dm,e,10000,Prob).