Next: An Example Up: Computing the Differential Previous: Computing the Differential

The Algorithm for the Differential Diagnosis

With the approach and enhancements outlined above we will describe the implementation of the algorithm for the differential diagnosis.

  1. 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.
  2. The probabilities of the paths are computed, using the patient information to adjust the probabilities on the links.
  3. 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.
  4. 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).
  5. 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.
  6. 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.
  7. 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.
  8. 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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. The hypothesis is then pruned of unnecessary causes and unnecessary paths that decrease the probability.
  6. 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.
  7. 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


wjl@MEDG.lcs.mit.edu
Fri Nov 3 17:21:37 EST 1995