%% Summarize Posterior Distribution
% Consider the multiple linear regression model that predicts the US real gross national product (GNPR) using a linear combination of industrial production index (IPI), total employment (E), and real wages (WR).
% \texttt{GNPR}_t=\beta_0+\beta_1\texttt{IPI}_t+\beta_2\texttt{E}_t+\beta_3\texttt{WR}_t+\varepsilon_t.
% For all t time points, \varepsilon_t is a series of independent Gaussian disturbances with a mean of 0 and variance \sigma^2.
% Assume these prior distributions:
% \beta\vert\sigma^2 \sim N_4\left({\rm M},\sigma^2 V\right). {\rm M} is a 4-by-1 vector of means, and V is a scaled 4-by-4 positive definite covariance matrix.
% \sigma^2 \sim IG(A,B). A and B are the shape and scale, respectively, of an inverse gamma distribution.
% These assumptions and the data likelihood imply a normal-inverse-gamma conjugate model.
% Create a normal-inverse-gamma conjugate prior model for the linear regression parameters. Specify the number of predictors p and the variable names.

p = 3;
VarNames = ["IPI" "E" "WR"];
PriorMdl = bayeslm(p,'ModelType','conjugate','VarNames',VarNames);

% PriorMdl is a conjugateblm Bayesian linear regression model object representing the prior distribution of the regression coefficients and disturbance variance.
%
% Summarize the prior distribution.

summarize(PriorMdl)

% The function displays a table of summary statistics and other information about the prior distribution at the command line.
%
% Load the Nelson-Plosser data set and create variables for the predictor and response data.

load Data_NelsonPlosser
X = DataTable{:,PriorMdl.VarNames(2:end)};
y = DataTable.GNPR;

%
% Estimate the posterior distributions. Suppress the estimation display.

PosteriorMdl = estimate(PriorMdl,X,y,'Display',false);

% PosteriorMdl is a conjugateblm model object that contains the posterior distributions of \beta and \sigma^2.
%
% Obtain summary statistics from the posterior distribution.

summary = summarize(PosteriorMdl);

% summary is a structure array containing three fields: MarginalDistributions, Covariances, and JointDistribution.
%
% Display the marginal distribution summary and covariances by using dot notation.

summary.MarginalDistributions
summary.Covariances

% The MarginalDistributions field is a table of summary statistics and other information about the posterior distribution. Covariances is a table containing the covariance matrix of the parameters.
% Copyright 2012 The MathWorks, Inc.