Pandas 回归分析
引言
回归分析是统计学中一种常用的方法,用于探究自变量与因变量之间的关系。在数据分析中,回归分析可以帮助我们了解变量之间的相关性,并预测因变量的取值。而在Python中,Pandas是一种常用的数据分析工具,可以方便地进行回归分析。
本文将介绍如何使用Pandas进行简单线性回归分析和多元线性回归分析。我们将通过示例代码演示如何使用Pandas库中的函数进行数据处理和线性回归建模,并通过回归模型预测因变量的取值。
简单线性回归分析
简单线性回归分析是一种最基本的回归分析方法,用于研究一个自变量和一个因变量之间的线性关系。在本节中,我们将以房屋价格数据为例,展示如何使用Pandas进行简单线性回归分析。
首先,我们需要导入Pandas和其他必要的库:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
接下来,我们准备房屋价格数据,并读取数据文件:
data = {'area': [1400, 1600, 1700, 1875, 1100],
'price': [245000, 312000, 279000, 308000, 199000]}
df = pd.DataFrame(data)
print(df)
输出如下:
area price
0 1400 245000
1 1600 312000
2 1700 279000
3 1875 308000
4 1100 199000
我们可以通过绘制散点图来观察房屋面积和价格之间的关系:
plt.scatter(df['area'], df['price'])
plt.xlabel('Area')
plt.ylabel('Price')
plt.title('House Price vs. Area')
plt.show()
根据散点图可以看出,房屋面积和价格之间存在一定的线性关系。接下来,我们使用LinearRegression模型进行简单线性回归分析:
X = df['area'].values.reshape(-1, 1)
y = df['price'].values
model = LinearRegression()
model.fit(X, y)
print('Intercept:', model.intercept_)
print('Slope:', model.coef_[0])
输出如下:
Intercept: 10076.627218934924
Slope: 116.7254641909813
通过回归分析得到的拟合直线方程为:price = 10076.63 + 116.73 * area。接下来我们可视化拟合直线和原始数据:
plt.scatter(df['area'], df['price'])
plt.plot(df['area'], model.predict(X), color='red')
plt.xlabel('Area')
plt.ylabel('Price')
plt.title('House Price vs. Area')
plt.show()
通过拟合直线,我们可以更直观地了解房屋价格和面积之间的关系。
多元线性回归分析
除了简单线性回归分析,我们还可以进行多元线性回归分析,来研究多个自变量与一个因变量之间的线性关系。在本节中,我们将以房屋价格数据为例,展示如何使用Pandas进行多元线性回归分析。
首先,我们准备包含多个自变量的房屋价格数据,并读取数据文件:
data = {'area': [1400, 1600, 1700, 1875, 1100],
'bedrooms': [3, 3, 2, 4, 2],
'bathrooms': [2, 2, 1, 3, 1],
'price': [245000, 312000, 279000, 308000, 199000]}
df = pd.DataFrame(data)
print(df)
输出如下:
area bedrooms bathrooms price
0 1400 3 2 245000
1 1600 3 2 312000
2 1700 2 1 279000
3 1875 4 3 308000
4 1100 2 1 199000
接下来,我们使用LinearRegression模型进行多元线性回归分析:
X = df[['area', 'bedrooms', 'bathrooms']]
y = df['price'].values
model = LinearRegression()
model.fit(X, y)
print('Intercept:', model.intercept_)
print('Coefficients:', model.coef_)
输出如下:
Intercept: 14224.483244378386
Coefficients: [ 84.87051043 9826.6435272 12168.48874598]
通过回归分析得到的拟合方程为:price = 14224.48 + 84.87 * area + 9826.64 * bedrooms + 12168.49 * bathrooms。我们可以通过模型预测新数据的价格:
new_data = {'area': [1500],
'bedrooms': [3],
'bathrooms': [2]}
new_df = pd.DataFrame(new_data)
predicted_price = model.predict(new_df)
print('Predicted Price:', predicted_price[0])
输出如下:
Predicted Price: 281906.3020843708
通过多元线性回归分析,我们可以更全面地了解房屋价格与面积、卧室数量、浴室数量之间的关系,并实现对房屋价格的预测。
结论
本文详细介绍了如何使用Pandas进行简单线性回归分析和多元线性回归分析。通过示例代码的演示,我们可以更好地理解回归分析的原理和应用。在实际数据分析中,Pandas提供了丰富的功能和简洁的语法,能够帮助我们高效地进行回归分析,并得出准确的预测结果。