【Python】批量回归分析得到相关系数

本文介绍如何使用Python的pandas和scipy库读取Excel数据,计算第三列到最后一列与第二列Y的相关性,并输出R2、p值、截距和斜率,最后将结果写入新的Excel文件。
摘要由CSDN通过智能技术生成

我有一个excel,第二列为Y,第三列到最后一列,为x1、x2、……xn,现在要分析第三列到最后一列逐列数据与第二列Y数据的相关性,生成一个新excel,得到R2、p值、截距、斜率(对标excel中的回归分析)。

import pandas as pd
from scipy import stats

# 读取 Excel 文件
excel_file = r'D:\1相关性分析数据.xlsx'  # 请替换成您的 Excel 文件路径
df = pd.read_excel(excel_file, sheet_name='合并')

# 取出数据(Y)
y_data = df.iloc[:, 1]

# 创建一个新的 DataFrame 用于存储相关性和线性回归的统计信息
result_df = pd.DataFrame(index=['R2', 'p值', '截距', '斜率'])

# 遍历第三列到最后一列的数据
for column in df.columns[2:]:
    x_data = df[column]
    slope, intercept, r_value, p_value, std_err = stats.linregress(x_data, y_data)
    result_df[column] = [r_value**2, p_value, intercept, slope]

# 将结果写入新的 Excel 文件
output_excel = r'D:\2相关性分析结果.xlsx'  # 请替换成您希望保存的 Excel 文件路径
with pd.ExcelWriter(output_excel) as writer:
    result_df.to_excel(writer, sheet_name='相关性分析', index=True)

print("相关性分析结果已保存到新的 Excel 文件中")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值