BookmarkSubscribeRSS Feed
☑ This topic is solved. Need further help from the community? Please sign in and ask a new question.
blund
Obsidian | Level 7

I would like to specify a "spike and slab" prior in PROC MCMC. Let beta be the parameter. I need beta ~ (1 - p)*D + p*Normal(0,var) where D is a point mass at zero and p is a beta(a,b) ... or perhaps more simply, p = 0.5

1 ACCEPTED SOLUTION

Accepted Solutions
sbxkoenk
SAS Super FREQ

Hello,

 

You cannot specify a spike and slab prior in PROC MCMC!

 

  • There are some standard “Univariate Distributions” that PROC MCMC recognizes in the PRIOR statement.
  • There are some standard “Multivariate Distributions” that PROC MCMC recognizes in the PRIOR statement. The exception is the multinomial distribution (only supported in MODEL statement).
  • To specify an arbitrary distribution (any distribution), you can use the DGENERAL and GENERAL functions.
    • The DGENERAL function is for discrete distributions.
    • The GENERAL function is for continuous distributions.
  • You can work with truncated distributions and censoring data.
  • You can work with a mixture distribution (like a mixture of a Poisson distribution and a distribution that is constant at zero).

The spike and slab prior (S&S prior) is actually a mixture of the dgeneral() and the general() prior and PROC MCMC wouldn’t know how to handle that. In PROC MCMC it (the parameter) needs to be either discrete or continuous.

 

BR, Koen

View solution in original post

3 REPLIES 3
sbxkoenk
SAS Super FREQ

Hello,

 

You cannot specify a spike and slab prior in PROC MCMC!

 

  • There are some standard “Univariate Distributions” that PROC MCMC recognizes in the PRIOR statement.
  • There are some standard “Multivariate Distributions” that PROC MCMC recognizes in the PRIOR statement. The exception is the multinomial distribution (only supported in MODEL statement).
  • To specify an arbitrary distribution (any distribution), you can use the DGENERAL and GENERAL functions.
    • The DGENERAL function is for discrete distributions.
    • The GENERAL function is for continuous distributions.
  • You can work with truncated distributions and censoring data.
  • You can work with a mixture distribution (like a mixture of a Poisson distribution and a distribution that is constant at zero).

The spike and slab prior (S&S prior) is actually a mixture of the dgeneral() and the general() prior and PROC MCMC wouldn’t know how to handle that. In PROC MCMC it (the parameter) needs to be either discrete or continuous.

 

BR, Koen

blund
Obsidian | Level 7

Thanks for the answer!

I think SAS should consider adding functionality to PROC MCMC to include spike and slab priors.

sbxkoenk
SAS Super FREQ

@blund wrote:

I think SAS should consider adding functionality to PROC MCMC to include spike and slab priors.


Click on left-most header (named "Community") on top of this page.
4-th item in the drop-down list is: SAS Product Suggestions

Submit your feature request over there.

 

As a SAS employee I can open the same feature request via an internal channel.

 

Koen

sas-innovate-2024.png

Available on demand!

Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.

 

Register now!

What is ANOVA?

ANOVA, or Analysis Of Variance, is used to compare the averages or means of two or more populations to better understand how they differ. Watch this tutorial for more.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 3 replies
  • 723 views
  • 2 likes
  • 2 in conversation