8 votos

Predicción con redes bayesianas en R

He estado intentando aprender por mi cuenta sobre Análisis de Redes, y he sido capaz de desarrollar gráficos DAG en R. Sin embargo, he revisado tres o cuatro paquetes de R y he visto poco en cuanto a una función para generar probabilidades conjuntas para la red. El gráfico DAG me informa sobre las variables en relación unas con otras, pero tengo más curiosidad por las probabilidades y no he encontrado una forma de hacerlo en R. En todo caso, parece que hay muchos paquetes dedicados a generar gráficos o centrados en la inferencia, y quiero saber cómo puedo obtener las probabilidades para las redes.

library("bnlearn")
library("Rgraphviz")

dat=data.frame(won=c(1,0,0,1,0,0), sold=c(0,0,0,1,0,0), insured=c(0,0,1,0,0,1), 
               credit=c("POOR","FAIR","GOOD","FAIR","FAIR","GOOD"))
dat$won = factor(dat$won)
dat$sold = factor(dat$sold)
dat$insured = factor(dat$insured)
dat$credit = factor(dat$credit) 

highlight.opts <- list(nodes = c("won","sold","insured","credit"),
                       col = "red", fill = "grey")
bn.hc <- hc(dat, score = "aic")
graphviz.plot(bn.hc, highlight=highlight.opts)

2voto

JMW.APRN Puntos 21

Creo que todo está en la función bn.fit . Siguiendo con tu código, obtuve

> bn.fit(bn.hc, dat)

  Bayesian network parameters

  Parameters of node won (multinomial distribution)

Conditional probability table:

        0         1 
0.6666667 0.3333333 

  Parameters of node sold (multinomial distribution)

Conditional probability table:

    won
sold   0   1
   0 1.0 0.5
   1 0.0 0.5

  Parameters of node insured (multinomial distribution)

Conditional probability table:

       won
insured   0   1
      0 0.5 1.0
      1 0.5 0.0

  Parameters of node credit (multinomial distribution)

Conditional probability table:

      insured
credit    0    1
  FAIR 0.75 0.00
  GOOD 0.00 1.00
  POOR 0.25 0.00

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X