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

我有一个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 文件中")

你可能感兴趣的:(Python,python,回归,开发语言,excel)