使用 Statsmodels 在 Python 中進行線性迴歸


任何資料科學家都必須理解線性迴歸的基礎知識,因為它是在機器學習和統計學中的一項關鍵演算法。Python 中的許多庫簡化了這種方法的實現,其中 Statsmodels 是功能最強大的庫之一。本文探討了使用 Statsmodels 進行線性迴歸,並使用來自真實資料的示例來幫助理解。

理解線性迴歸

線性迴歸是一種統計方法,透過將線性方程擬合到觀察到的資料來模擬兩個變數之間的關係。其中一個變數是因變數,其變化正在被研究,而另一個變數是解釋(自變數)。

Statsmodels 概述

Statsmodels 是一個專門為統計而建立的 Python 包。它建立在其他強大的庫(如 Matplotlib、SciPy 和 NumPy)之上。Statsmodels 提供了全面的統計檢驗,並且還提供了幾種統計模型的穩健估計。

使用 Statsmodels 實現線性迴歸

在開始之前,請確保已安裝 Statsmodels 和任何其他必需的庫 -

pip install statsmodels pandas numpy matplotlib

示例 1:簡單線性迴歸

讓我們從一個簡單的線性迴歸示例開始,其中只有一個自變數。我們將使用 mtcars 資料集,它是 Statsmodels 中的內建資料集,作為此示例。此資料包含 32 輛不同汽車的 11 個汽車效能和設計特徵,以及燃油消耗資料 (mpg)。

首先,載入資料並匯入相關的庫

import statsmodels.api as sm
import matplotlib.pyplot as plt
import pandas as pd

# load mtcars dataset
mtcars = sm.datasets.get_rdataset("mtcars").data

現在,讓我們擬合一個簡單的線性迴歸模型,其中我們試圖使用 wt(汽車重量)來預測 mpg

# Define dependent and independent variables
X = mtcars["wt"]
y = mtcars["mpg"]

# Add a constant to the independent value
X = sm.add_constant(X)

# Perform linear regression
model = sm.OLS(y, X)
results = model.fit()

# Print out the statistics
print(results.summary())

在此示例中,線性迴歸模型使用 sm.OLS 擬合,並且摘要方法提供了有關模型擬合的全面資訊。

示例 2:多元線性迴歸

現在讓我們繼續討論一個稍微複雜的情況,其中我們有多個自變數。在這種情況下,我們將使用重量和馬力來預測 mpg。

# Define dependent and independent variables
X = mtcars[["wt", "hp"]]
y = mtcars["mpg"]

# Add a constant to the independent value
X = sm.add_constant(X)

# Perform linear regression
model = sm.OLS(y, X)
results = model.fit()

# Print out the statistics
print(results.summary())

現在 X 有兩列,一列用於重量,另一列用於馬力。

示例 3:繪製結果

最後,讓我們以視覺化的方式檢視第一個示例中的迴歸模型。我們將回歸線新增到原始資料 (mpg vs. wt) 並繪製它。

# Plot the original data
plt.scatter(mtcars["wt"], mtcars["mpg"])

# Plot the regression line
plt.plot(mtcars["wt"], results.fittedvalues, 'r')

# Set the labels and show the plot
plt.xlabel('wt')
plt.ylabel('mpg')
plt.title('Linear Regression Plot of mpg vs wt')
plt.show()

在此程式碼片段中,我們使用模型中的擬合值將擬合的線性迴歸線(紅色)新增到由 matplotlib 建立的原始資料的散點圖中。該圖以視覺化的方式說明了 mpg 和重量之間的關係。

解釋結果

迴歸摘要包含幾個統計量度。重量 (wt) 的係數告訴我們,在其他變數固定不變的情況下,每增加一個單位的重量,mpg 將下降多少。R 平方計算模型可以解釋的 mpg 變異百分比。R 平方越接近 1,模型就越準確。

p 值評估係數是否等於零(無影響),這是原假設。如果 p 值較低(< 0.05),則可以拒絕原假設。

結論

線性迴歸是一種強大的統計方法,可以根據多個數據變數之間的相關性進行預測。由於 Python 的 Statsmodels 包提供了強大的功能來實現線性迴歸模型,因此只需幾行程式碼即可建立預測模型。

本文中的三個示例向讀者展示瞭如何使用 Statsmodels 設計簡單和多元線性迴歸模型,以及如何在散點圖上查看回歸線。透過完成這些示例,您可以更深入地瞭解線性迴歸以及如何在 Python 中使用 Statsmodels 包進行線性迴歸。

請記住,現實世界中的資料通常包含多個變數,並且可能需要更復雜的模型。因此,請將此視為更高階 Python 資料分析的第一步。

更新於: 2023 年 7 月 18 日

470 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告