I want to construct Bayesian network for a 800 genes(genes are my node/variables). I have only 30 cancer samples and 30 normal sample. So I want to create network for cancer samples and for the normal samples whether my data is reasonable to learn Bayesian network?

  • 1
    $\begingroup$ You could learn a network with 60 samples, but the quality may not be that good. You could use the PC algorithm by Spirtes et al. (or something more advanced like the MMHC algorithm by Tsamardinos et al.) with the Pearson partial correlation test. Consider setting the maximum conditioning size to 1 or 2, as you do not have many samples. $\endgroup$ – George Jan 19 '14 at 21:36
  • $\begingroup$ @George: it turns out that the PC algorithm is unstable in high dimensions - you get very different results just by permuting the order of variables in your data table. Colombo & Maathuis have a modification called the PC-Stable algorithm, which almost completely eliminates this order-dependence. For an 800-gene network I would definitely use PC-stable rather than PC. $\endgroup$ – Lizzie Silver Nov 6 '14 at 17:46
  • $\begingroup$ @LizzieSilver You are of course correct. I didn't think about it when I wrote the comment. I think that MMHC does not have this problem (i.e. it is invariant under permutation of the variables), but I'm not 100% sure. Another way to avoid the stability problem is to use a score-based method. However, for those specific data, I wouldn't try to learn a Bayesian network at all, as, apart from the small sample size, latent confounders and violations of faithfulness (cycles) probably exist. $\endgroup$ – George Nov 6 '14 at 19:22

I strongly recommend you read up on k-dependent bayesian networks. You need O(2^K) examples where K is the maximum number of nodes on the bayesian network that can be connected to another node. So in other words, the more dependencies you consider between your features, very very rapidly you need more examples. So a full bayesian network for 800 genes means you need 2^800 examples - astronomical.

Nevertheless you could consider only connecting considerably less genes. The way you would do this is by using information theoretic clustering algorithms.

If you only have 30 examples, then I'd suggest only considering pairs, or triples of genes being dependent.

Furthermore if you have such few examples, and (as most people do) your going to use Maximum Likelihood + some kind of Laplacian Smoothing for probability estimation, then your probabilities are going to be way out and quite meaningless. Maximum likelihood only starts making sense when you have 100s of examples.

| cite | improve this answer | |
  • $\begingroup$ Can you provide some references on k-dependent bayesian networks and/or provide justification for your explanation of the number of samples required? $\endgroup$ – Kiran K. May 9 '16 at 13:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.