Next: An Example
Up: Computing the Differential
Previous: Computing the Differential
With the approach and enhancements outlined above we will describe the
implementation of the algorithm for the differential diagnosis.
- The facts about the patient are entered via a menu system that
supports both categorical and numeric values. These facts are turned
into finding objects that become the terminal nodes for the diagnostic
network.
- The probabilities of the paths are computed, using the patient
information to adjust the probabilities on the links.
- The input is searched for definite consequences. If any node is
definitely true or definitely false because of a finding, it is asserted
along with any definite implications of these nodes. These definite
nodes provide the first constraint on the hypotheses that can be
generated.
- All of the findings from the input list that potentially reflect
abnormal states are selected to guide the hypothesis generation process.
This list usually contains about ten to thirty items and is the list of
findings that will need some kind of explanation. Each is either caused
by a causal chain in the model or has some probability of
existing independently (reflecting possible causes outside of the
medical domain or occurrence of the finding in normal individuals).
- For each of the abnormal findings and any true nodes that need
causes, a search is made to find all of the diagnostic nodes with
causal paths to the finding.
- The diagnostic nodes and primary nodes that could account for
findings are ordered by the number of findings they account for. The
top node and any others that account for almost as many findings (almost
is four fewer) are used as a seeds for generating hypotheses.
- For each of the seed nodes, the list of
findings and unaccounted nodes (which may include the seed node, if it
is a diagnostic node that is not primary) is checked for ones without a
causal path from anything in the hypothesis. These cause additional
diagnostic or primary nodes to be added to the hypothesis until all of
the findings have at least one possible cause. The additional nodes are
selected from the list of possible diagnostic or primary nodes that
could cause the finding.
- The algorithm tries each explanation
for the finding and adds each new covering set of causes that is not a
superset of another generated from the same seed node.
For each of the cover sets, a hypothesis is built. The hypothesis
starts with the cover set and the known true nodes.
- First a search is made for states that would be
true no matter which causal paths were chosen for the findings.
These are added to the hypothesis.
- The findings and unaccounted states are sorted in
decreasing order of the difference in probability between the first and
second best path, where those paths start at one of the cover set nodes
and include no false nodes.
- For each finding the best path is found from any
state in the accumulating hypothesis and the states on that path are
added to the hypothesis. If the prevalence of the finding is higher
than the additional probability of the path, the path is not added.
However, that finding will be tried again later to make sure there is
not a good explanation for it in the hypothesis.
- When the hypothesis is complete, the links among the nodes in the
hypothesis are checked to make sure there are no circularities in the
hypothesis. If there are, the last link before the loop is completed is
marked as having probability zero.
- The hypothesis is then pruned of unnecessary causes and
unnecessary paths that decrease the probability.
- The probability of the total hypothesis is determined by
multiplying the probabilities of each node in the hypothesis, each node
in the false set, and each finding given the truth of their causes in
the hypothesis.
- The hypotheses are ordered by their
probability. The differential diagnosis list consists of the
best hypothesis and any others with a probability greater than one
percent of the best.
Next: An Example
Up: Computing the Differential
Previous: Computing the Differential