python数据可视化:相互关系及分布
adinnet/2020-09-11 14:05/数据可视化
数据可视化是对数据初步和直观的判断。
使用统计模型来估计两个的观测值之间的简单关系是非常有帮助的。seaborn本身并不是统计分析的工具包。要获得与回归模型的拟合相关的定量度量,应使用statsmodels。但是,seaborn的目标是通过可视化方式快速而轻松地浏览数据集。
一、单变量分布

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
sns.set(color_codes=True)
data = pd.read_csv("演示数据-副本.csv")
sns.distplot(data['cr_mean']);

sns.kdeplot(data['age'], shade=True);
二、数据相互关系

sns.jointplot(x="bun_mean", y="cr_mean", data=data, kind="reg");
上面这张图可以看到变量的各自分布情况及相互关系。

sns.jointplot(x="bun_mean", y="cr_mean", data=data,kind="kde");
上面这张图是核密度估计

g = sns.jointplot(x="bun_mean", y="cr_mean", data=data, kind="kde", color="m")
g.plot_joint(plt.scatter, c="g", s=30, linewidth=1, marker="+")
g.ax_joint.collections[0].set_alpha(0);
这张图是核密度并加上了数据分布情况
三、不同分层下的数据相互关系

sns.lmplot(x="bun_mean", y="cr_mean", data=data,hue="rrt");
图中rrt=0代表没有进行肾替代治疗,rrt=1代表进行了肾替代治疗。需要进行肾替代治疗的患者可能具有更高的cr值。

sns.lmplot(x="rdw_mean", y="aps", data=data,hue="survival", col="rrt");
图中survival=0代表生存,=1代表死亡。在未进行rrt治疗的患者中,aps评分和rdw可能能够预测患者是否会发生死亡。

sns.lmplot(x="bun_mean", y="cr_mean", data=data,hue="survival", col="rrt",row="aki");
这组患者中未发生aki的患者很少进行rrt治疗(aki=0/rrt=0),但在发生aki的患者中进行rrt治疗似乎并没有降低死亡率(aki=1/rrt=1),需要进一步分析发生死亡的原因。
以上都是图示的结果,具体的相互关系分析,还需要结合临床并选用合适的回归模型进行回归分析。例如lasso,ols,wls,逐步回归等都可以用来筛选变量。

