Search code examples
rfunctionobjectregressionvariable-assignment

Problem accessing a parameter from a stan_glm model in R


I have a stan glm model in R defined as

library("bayesplot")
library("rstanarm")
library("ggplot2")
fit <- stan_glm(mpg ~ ., data = mtcars, verbose=F, refresh=0)

if I write fit on the R console I get the following

stan_glm
 family:       gaussian [identity]
 formula:      mpg ~ .
 observations: 32
 predictors:   11
------
            Median MAD_SD
(Intercept) 12.8   18.9  
cyl         -0.1    1.0  
disp         0.0    0.0  
hp           0.0    0.0  
drat         0.8    1.7  
wt          -3.6    1.9  
qsec         0.8    0.7  
vs           0.4    2.2  
am           2.5    2.1  
gear         0.7    1.5  
carb        -0.2    0.8  

Auxiliary parameter(s):
      Median MAD_SD
sigma 2.7    0.4   

I want to access the value of sigma 2.7, but I have searched the whole fit object and I cannot find said value. Can someone please tell me how to get it?

Best regards.


Solution

  • As with most models in R:

    > sigma(fit)
    [1] 2.73695
    

    Or you could look at the summary from the model fit:

    > data.frame(summary(fit))["sigma", "X50."]
    [1] 2.73695
    
    

    Here's the whole thing as a data frame:

    > data.frame(summary(fit))
                          mean         mcse          sd         X10.         X50.          X90. n_eff      Rhat
    (Intercept)    12.54279879 0.3688500381 20.09362601 -13.28687387  12.67403334  37.657467989  2968 0.9998009
    cyl            -0.14129417 0.0222245575  1.14496327  -1.57271970  -0.13706998   1.304047966  2654 1.0010753
    disp            0.01254241 0.0004192311  0.01894256  -0.01120337   0.01249882   0.036613060  2042 1.0022231
    hp             -0.02016698 0.0004809532  0.02358536  -0.05058122  -0.01989331   0.009224238  2405 1.0009357
    drat            0.82805959 0.0304632349  1.77274405  -1.41607775   0.84471838   3.027727259  3386 0.9999689
    wt             -3.63321804 0.0431121638  1.98966613  -6.07796020  -3.69661264  -1.056483472  2130 1.0014011
    qsec            0.80342804 0.0153319656  0.76715953  -0.13873111   0.79090338   1.764204167  2504 0.9995748
    vs              0.25512529 0.0419790836  2.24989830  -2.60945572   0.24651107   3.088975901  2872 1.0004325
    am              2.44688868 0.0373708904  2.15216938  -0.33564211   2.45524074   5.149956580  3317 1.0002911
    gear            0.66267292 0.0301722194  1.58913529  -1.33284819   0.70235564   2.674174920  2774 1.0003578
    carb           -0.24624226 0.0206652408  0.88774657  -1.37569859  -0.22005705   0.835823826  1845 1.0015972
    sigma           2.79090631 0.0107311424  0.46091723   2.25714743   2.73695031   3.393562388  1845 1.0011221
    mean_PPD       20.11202008 0.0109117118  0.71485562  19.22123467  20.09763027  21.022826385  4292 1.0007802
    log-posterior -91.69944650 0.1091773334  3.17634767 -95.99935951 -91.28320154 -88.015240185   846 1.0034657
    

    EDIT:

    The values seem to be stored here:

    > fit$stan_summary
                          mean      se_mean          sd         2.5%          10%           25%          50%          75%
    (Intercept)    12.54279879 0.3688500381 20.09362601 -26.48634773 -13.28687387 -8.276114e-01  12.67403334  25.93675158
    cyl            -0.14129417 0.0222245575  1.14496327  -2.44158279  -1.57271970 -8.798672e-01  -0.13706998   0.61281351
    disp            0.01254241 0.0004192311  0.01894256  -0.02494649  -0.01120337  2.693235e-04   0.01249882   0.02490041
    hp             -0.02016698 0.0004809532  0.02358536  -0.06852215  -0.05058122 -3.558996e-02  -0.01989331  -0.00427638
    drat            0.82805959 0.0304632349  1.77274405  -2.70741993  -1.41607775 -3.076770e-01   0.84471838   1.96589168
    wt             -3.63321804 0.0431121638  1.98966613  -7.48103961  -6.07796020 -4.918608e+00  -3.69661264  -2.34235650
    qsec            0.80342804 0.0153319656  0.76715953  -0.70986523  -0.13873111  2.888309e-01   0.79090338   1.31428152
    vs              0.25512529 0.0419790836  2.24989830  -3.98977789  -2.60945572 -1.236378e+00   0.24651107   1.74000097
    am              2.44688868 0.0373708904  2.15216938  -1.87673358  -0.33564211  1.040208e+00   2.45524074   3.90693690
    gear            0.66267292 0.0301722194  1.58913529  -2.49950225  -1.33284819 -4.218142e-01   0.70235564   1.67673182
    carb           -0.24624226 0.0206652408  0.88774657  -1.98389149  -1.37569859 -8.289038e-01  -0.22005705   0.32451771
    sigma           2.79090631 0.0107311424  0.46091723   2.07779393   2.25714743  2.463056e+00   2.73695031   3.03865908
    mean_PPD       20.11202008 0.0109117118  0.71485562  18.69243403  19.22123467  1.963573e+01  20.09763027  20.58426856
    log-posterior -91.69944650 0.1091773334  3.17634767 -99.30705329 -95.99935951 -9.352336e+01 -91.28320154 -89.39973660
                            90%        97.5%     n_eff      Rhat
    (Intercept)    37.657467989  51.97966438 2967.6793 0.9998009
    cyl             1.304047966   2.10645215 2654.0975 1.0010753
    disp            0.036613060   0.05017971 2041.5976 1.0022231
    hp              0.009224238   0.02580724 2404.8022 1.0009357
    drat            3.027727259   4.30044085 3386.4139 0.9999689
    wt             -1.056483472   0.26494242 2129.9076 1.0014011
    qsec            1.764204167   2.32883378 2503.6620 0.9995748
    vs              3.088975901   4.75387634 2872.4989 1.0004325
    am              5.149956580   6.59500933 3316.5458 1.0002911
    gear            2.674174920   3.81082898 2774.0050 1.0003578
    carb            0.835823826   1.45681246 1845.4278 1.0015972
    sigma           3.393562388   3.85731224 1844.8199 1.0011221
    mean_PPD       21.022826385  21.51807143 4291.9129 1.0007802
    log-posterior -88.015240185 -86.82211851  846.4301 1.0034657