How to describe or visualize a multiple linear regression model I'm trying to fit a multiple linear regression model to my data with couple of input parameters, say 3.
\begin{align}
F(x) &= Ax_1 + Bx_2 + Cx_3 + d  \tag{i}  \\
&\text{or}  \\
F(x) &= (A\ B\ C)^T (x_1\ x_2\ x_3) + d  \tag{ii}
\end{align}
How do I explain and visualize this model?  I could think of the following options:  


*

*Mention the regression equation as described in $(i)$ (coefficients, constant) along with standard deviation and then a residual error plot to show the accuracy of this model.  

*Pairwise plots of independent and dependent variables, like this:


*Once the coefficients are known, can the data points used to obtain equation $(i)$ be condensed to their real values. That is, the training data have new values, in the form $x$ instead of $x_1$, $x_2$, $x_3$, $\ldots$ where each of independent variable is multiplied by its respective coefficient.  Then this simplified version can be visually shown as a simple regression as this: 

I'm confused on this in spite of going through appropriate material on this topic. Can someone please explain to me how to "explain" a multiple linear regression model and how to visually show it.
 A: My favorite way of showing the results of a basic multiple linear regression is to first fit the model to normalized (continuous) variables. That is, z-transform the $X$s by subtracting the mean and dividing by the standard deviation, then fit the model and estimate the parameters. When the variables are transformed in this way, the estimated coefficients are 'standardized' to have unit $\Delta Y/\Delta sd(X)$. In this way, the distance the coefficients are from zero ranks their relative 'importance' and their CI gives the precision. I think it sums up the relationships rather well and offers a lot more information than the coefficients and p.values on their natural and often disparate numerical scales. An example is below: 

EDIT: Another possibility is to use an 'added variable plot' (i.e. plot the partial regressions). This gives another perspective in that it shows the bivariate relations between $Y$ and $X_i$ AFTER THE OTHER VARIABLES ARE ACCOUNTED FOR. For example, the partial regressions of $Y \sim X_1 + X_2 + X_3$ would give bivariate relations between $X_i$ against the residuals of $Y$ after regressing against the other two terms. You would go on to do this for each variable. Function avPlots() from library car gives these plots from a fitted lm object. An example is below:  

A: Since they all have to do with explaining the contributors for cirrhosis, have you tried doing a bubble/circle chart and use color to indicate the different regressors and circle radius to indicate relative impact upon cirrhosis? 
I'm referring here to a Google chart type that looks like this:
And on an unrelated note, unless I'm reading your plots wrong, I think you have some redundant regressors in there. Wine is already a liquor so if those two are separate regressors it doesn't make sense to keep both of them, if your goal is to explain the incidence of cirrhosis. 
A: The visualization you show in 3 (scatter diagram of actual value against predicted value) is a good one. It can be used for any regressor. In this case, the example you show helps confirm the assumption of linearity, since the points are scattered above and below the line throughout the range.
Another assumption you have made is a lack of interaction among the factors. If you want to test that, then a good visualization is a scatter diagram of x_i against x_j, where the points are coloured by the size of the error in the prediction. Pairwise interactions among the xs will be revealed by patterns in the colours.
A: @gregory_britten 's answer was exactly what I was looking for.  I figured I would share my implementation in python using pandas, matplotlib, and statsmodels.
X_norm = X4.copy() # This is a pd.Dataframe of the independent variables
X_norm = (X_norm - X_norm.mean()) / X_norm.std()
res_norm = sm.OLS(y_log, sm.add_constant(X_norm)).fit()

to_include = res_norm.params[res_norm.pvalues < 0.05][1:].sort_values() # get only those with significant pvalues
fig, ax = plt.subplots(figsize=(5,6), dpi=100)
ax.scatter(to_include, range(len(to_include)), color="#1a9988", zorder=2)
ax.set_yticks(range(len(to_include)), to_include.index) # label the y axis with the ind. variable names
ax.set_xlabel("Proportional Effect")
ax.set_title("Strength of Relationships")

# add the confidence interval error bars
for idx, ci in enumerate(res_norm.conf_int().loc[to_include.index].iterrows()):
    ax.hlines(idx, ci[1][0], ci[1][1], color="#eb5600", zorder=1, linewidth=3)

plt.axline((0,0), (0,1), color="#eb5600", linestyle="--") # add a dashed line at 0.0


