Open In App

How to Calculate Residual Sum of Squares in Python

Improve
Improve
Like Article
Like
Save
Share
Report

The residual sum of squares (RSS) calculates the degree of variance in a regression model. It estimates the level of error in the model’s prediction. The smaller the residual sum of squares, the better your model fits your data; the larger the residual sum of squares, the worse. It is the sum of squares of the observed data minus the predicted data. 

Formula:

Method 1: Using Its Base Formula

In this approach, we divide the datasets into independent variables and dependent variables. we import sklearn.linear_model.LinearRegression(). we fit the data in it and then carry out predictions using predict() method. as the dataset only contains 100 rows train test split is not necessary. 

To view and download the dataset used click here

Python




# 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']))))


Output:

 residual sum of squares is : 583207.4514802304

Method 2: Using statsmodel.api

In this approach, we import the statsmodel.api. After reading the datasets, similar to the previous approach we separate independent and dependent features. We fit them in sm.OLS() regression model. This model has a summary method that gives the summary of all metrics and regression results. model.ssr gives us the value of the residual sum of squares(RSS). We can see that the value we derived from the previous approach is the same as model.ssr value. 

To view and download the dataset used click here.

Python




# 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)


Output:

583207.4514802304



Last Updated : 21 Feb, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads