如何在Python中计算残余的平方和

如何在Python中计算残余的平方和

残差总和(RSS)计算了回归模型中的方差程度。它估计了模型预测中的误差水平。残差和越小,你的模型越适合你的数据;残差和越大,越差。它是观察数据的平方之和减去预测数据的平方之和。

公式:

如何在Python中计算残余的平方和

方法1:使用其Base公式

在这种方法中,我们将数据集分为自变量和因变量。我们导入sklearn.linear_model.LinearRegression()。我们在其中拟合数据,然后使用predict()方法进行预测。由于数据集只包含100行训练测试分割是没有必要的。

要查看和下载所使用的数据集,请点击这里。

# import packages
import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression
  
  
# reading csv file as pandas dataframe
data = pd.read_csv('headbrain2.csv')
  
# independent variable
X = data[['Head Size(cm^3)']]
  
# output variable (dependent)
y = data['Brain Weight(grams)']
  
# using the linear regression model
model = LinearRegression()
  
# fitting the data
model.fit(X, y)
  
# predicting values
y_pred = model.predict(X)
df = pd.DataFrame({'Actual': y, 'Predicted':
y_pred})
  
print(' residual sum of squares is : '+ str(np.sum(np.square(df['Predicted'] - df['Actual']))))

输出:

 residual sum of squares is : 583207.4514802304

方法2:使用statsmodel.api

在这种方法中,我们导入statsmodel.api。读取数据集后,与之前的方法类似,我们将独立和依赖特征分开。我们在sm.OLS()回归模型中拟合它们。这个模型有一个总结方法,给出了所有指标和回归结果的总结。model.ssr给了我们残差平方和(RSS)的值。我们可以看到,我们从以前的方法中得出的值与model.ssr的值相同。

要查看和下载所使用的数据集,请点击这里。

# import packages
import pandas as pd
import numpy as np
import statsmodels.api as sm
  
# reading csv file as pandas dataframe
data = pd.read_csv('headbrain2.csv')
  
# independent variable
x = data['Head Size(cm^3)']
  
# output variable (dependent)
y = data['Brain Weight(grams)']
  
# adding constant
x = sm.add_constant(x)
  
#fit linear regression model
model = sm.OLS(y, x).fit()
  
#display model summary
print(model.summary())
  
# residual sum of squares
print(model.ssr)

输出:

583207.4514802304

如何在Python中计算残余的平方和

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Numpy教程