Enhanced pregnancy testing
The value of pregnancy testing is often over-estimated, because the pregnancy test is not the only test used. After three weeks many of the non-pregnant sows will return to oestrus. Oestrus signs are a very specific indicator of non-pregnancy. If this Oestrus (heat) is detected, the pig producer knows that the sow is not pregnant and therefore, she will not make any pregnancy test of the sows. This is an example of the so-called verification bias.
Thus a more realistic example will have to include the heat detection at three weeks after mating, that is, one week before the pregnancy testIn addition, a herd level for pregnancy rate is included. We allow for the possibility of different herd levels for the pregnancy rate. A simple expansion of the net is shown in the figure below.
The graph in figure has two additional nodes.
- $H_M$ Heat_Detection Indicates the quality of the heat detection method (corresponds to $P_M$. The node has two states (Good, Bad) with prior probabilities (0.50,0.50)
- $H_T$ Outcome of Heat_Detection Indicates the outcome of the heat detection (corresponds to $P_T$). The node has two states ( Neg, Pos).
GRAPPA
Again we start reading the GRAPPA code
source("grappa.r")Then we define $P_M$ and $H_M$
query('PM',c(0.5,0.5)) query('HM',c(0.5,0.5))and the Herd node with 7 levels of pregnancy rate
tx<-rep(1,7)/7 pHerd<-c(0.70, 0.75,0.80, 0.85, 0.90, 0.95, 0.975) tab('Herd',7,tx,as.character(pHerd))The pregnancy state node, $S$ is now a child of the Herd node. Thus the definition differ from the simple net. The conditional distribution of $P_T$ and $H_T$ is very similar to the simple net.
# make Pregnancy state node tab(c('S','Herd'),c(2,7), as.vector(rbind(1-pHerd,pHerd)), c('no','yes')) tab(c('PT','S','PM'),, c(0.85,0.15, 0.05,0.95, 0.65,0.35, 0.15,0.85),c("neg","pos")) # Måske forkert i det oprindelige net tab(c('HT','S','HM'),, c( 0.25,0.75, 0.5,0.5, 0.99,0.01, 0.98,0.02 ),c("neg","pos")) vs('PM',c('Good','Bad')) vs('HM',c('Good','Bad'))The initialisation step is identical
# compile, initialise and equilibrate compile() initcliqs() trav()And the input of evidence just as standard. A few examples follows.
equil() prop.evid('Herd','0.7') prop.evid('PT','neg') pnmarg('S') equil() prop.evid('Herd','0.7') prop.evid('HT','neg') pnmarg('S') prop.evid('PT','neg') pnmarg('S')
No comments:
Post a Comment