You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用apply家族函数为DataFrame多因变量构建双自变量线性回归模型

使用apply家族函数实现多因变量线性回归

我来给你捋清楚怎么用apply家族函数搞定这个多因变量的线性回归需求哈。首先咱们先把你的数据整理成DataFrame,然后用pandas的apply系列函数来批量拟合5个回归模型。

步骤1:准备数据和依赖库

首先得导入需要的库,然后构造你的数据集:

import pandas as pd
import statsmodels.api as sm

# 构造你提供的数据集
data = {
    'samples.L': [10, 10, 25, 25],
    'samples.T': [1.0, 3.5, 1.0, 3.5],
    'le.1': [9.683726, 9.828530, 24.675467, 24.822328],
    'le.2': [9.691982, 9.829962, 24.677010, 24.822601],
    'le.3': [9.704387, 9.832273, 24.679439, 24.823026],
    'le.4': [9.719390, 9.835296, 24.682560, 24.823410],
    'le.5': [9.735400, 9.838709, 24.685718, 24.823209]
}
df = pd.DataFrame(data)

步骤2:定义回归拟合函数

先写一个函数,输入单个因变量的列名,就能返回拟合好的线性回归模型:

def fit_single_regression(y_col_name):
    # 提取自变量,记得添加截距项
    X = sm.add_constant(df[['samples.L', 'samples.T']])
    # 提取对应的因变量
    y = df[y_col_name]
    # 拟合普通最小二乘回归模型
    model = sm.OLS(y, X).fit()
    return model

步骤3:用apply批量生成模型

咱们把所有le.开头的因变量列名整理成一个Series,然后用apply函数逐个传入上面的拟合函数,就能一次性得到5个模型:

# 筛选出所有需要作为因变量的列
target_cols = [col for col in df.columns if col.startswith('le.')]
# 使用Series的apply批量拟合模型,这就是apply家族的核心用法
regression_models = pd.Series(target_cols).apply(fit_single_regression)

步骤4:查看模型结果

现在你可以通过索引来访问每个模型,比如查看le.1的回归结果:

# 查看单个模型的详细摘要
print(regression_models['le.1'].summary())

# 或者循环遍历所有模型,打印每个模型的结果
for col, model in zip(target_cols, regression_models):
    print(f"\n===== 因变量 {col} 的回归模型结果 =====")
    print(model.summary())

这样就完美实现了用apply家族函数批量处理多因变量的线性回归需求,代码简洁还能批量完成重复工作。

内容的提问来源于stack exchange,提问作者dawei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:09:17