【发布时间】:2021-12-30 01:57:49
【问题描述】:
我正在使用 sklearn 在 Python 中执行相当直接的多元线性回归。请参阅下面的代码 sn-p - full_results 是一个数据框,其中所有变量都是数字。
这段代码的结果是一个单一的决定系数,我相信它表示 y 的变化是由于 x1 - x4 的组合造成的。
我的问题是确定系数是否可以在 4 个输入变量之间进行拆分,因此我可以看到 y 的变化分别归因于每个变量。
我当然可以为每个变量独立运行单变量线性回归,但这感觉不是正确的解决方案。
我记得很多年前在统计课上,并在 R 中做类似的事情。
from sklearn.linear_model import LinearRegression
x = full_results[['x1','x2','x3','x4']].values
y = full_results['y'].values
mlr = LinearRegression()
mlr.fit(x, y)
mlr.score(x, y)
【问题讨论】:
-
这里通常会使用 PCA 吗?
-
“y 有多少变化”是什么意思?你拟合了一个线性模型,所以只有线性权重决定了 y 受 x1, ... x4 变化的影响程度。决定系数衡量模型解释/预测结果/数据点的程度。它是对整个模型的度量。这里解释得更好:stats.stackexchange.com/questions/412526/…
-
您可以执行优势分析。结果为您提供了每个变量解释的 y 方差百分比。确定单个变量的 R2 不会提供正确的信息,因为对单个变量的解释方差的贡献也受到模型中其他变量的影响。例如,具有 X1 的模型和具有 X2 的模型的 R2 之和与具有 X1 和 X2 组合的模型不同。 github.com/dominance-analysis/dominance-analysis
标签: python scikit-learn regression