如何在R语言中生成偏回归图?附相关数据及实现示例需求
| Cow | Western | Ashely | Jerzy |
|---|---|---|---|
| 24.3 | 34.3 | 50 | 45 |
| 30.2 | 35.3 | 54 | 45 |
| 49 | 45 | 540 | 4353 |
| 70 | 60 | 334 | 343 |
| 69 | 80 | 54 | 342 |
偏回归图(Partial Plot)生成示例
以下用Python实现,以上述表格数据作为演示数据集:
import pandas as pd import statsmodels.api as sm from statsmodels.graphics.regressionplots import plot_partregress # 加载数据集 df = pd.DataFrame({ "Cow": [24.3, 30.2, 49, 70, 69], "Western": [34.3, 35.3, 45, 60, 80], "Ashely": [50, 54, 540, 334, 54], "Jerzy": [45, 45, 4353, 343, 342] }) # 拟合多元线性回归模型:以Ashely为因变量,其余3列为自变量 X = sm.add_constant(df[["Cow", "Western", "Jerzy"]]) y = df["Ashely"] model = sm.OLS(y, X).fit() # 生成Cow对Ashely的偏回归图(自动排除另外两个自变量的影响) fig = plot_partregress(endog="Ashely", exog_i="Cow", exog_others=["Western", "Jerzy"], data=df, obs_labels=False) fig.show()
生成的图可以直接观测排除其他变量干扰后,目标自变量和因变量的净相关关系。
矩阵对角线与观测序号对比实现
核心逻辑是提取n×n矩阵的对角元素,和长度为n的观测序号序列做数值或可视化对比,演示代码如下:
import numpy as np import matplotlib.pyplot as plt # 演示用:基于上述数据集构造4×4协方差矩阵 cov_matrix = df.cov().values # 提取对角线元素 diag_values = np.diag(cov_matrix) # 生成对应长度的观测序号(和矩阵维度匹配,此处为1到4) obs_index = np.arange(1, len(diag_values)+1) # 数值对比:直接输出差值 diff = diag_values - obs_index print("观测序号:", obs_index) print("对角元素值:", diag_values) print("两者差值:", diff) # 可视化对比 plt.plot(obs_index, diag_values, marker='o', label='对角线元素') plt.plot(obs_index, obs_index, marker='s', label='观测序号基准线') plt.xlabel("观测序号") plt.ylabel("数值") plt.legend() plt.show()
如果是用n行观测构造的n×n矩阵,只需要把观测序号长度调整为n即可,逻辑完全一致。
内容的提问来源于stack exchange,提问作者fashionable
相关产品推荐
相关产品推荐

