Monday, October 20, 2025
HomeLanguagesHow to Calculate Residual Sum of Squares in Python

How to Calculate Residual Sum of Squares in Python

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

RELATED ARTICLES

Most Popular

Dominic
32361 POSTS0 COMMENTS
Milvus
88 POSTS0 COMMENTS
Nango Kala
6728 POSTS0 COMMENTS
Nicole Veronica
11892 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11954 POSTS0 COMMENTS
Shaida Kate Naidoo
6852 POSTS0 COMMENTS
Ted Musemwa
7113 POSTS0 COMMENTS
Thapelo Manthata
6805 POSTS0 COMMENTS
Umr Jansen
6801 POSTS0 COMMENTS