首頁  >  文章  >  後端開發  >  如何在Python中執行ANCOVA?

如何在Python中執行ANCOVA?

王林
王林轉載
2023-09-01 17:21:051089瀏覽

如何在Python中執行ANCOVA?

ANCOVA(協方差分析)是一種有用的統計方法,因為它可以在分析中包含協變量,這可以幫助調整輔助變數並增加組間比較的精確度。這些額外的因素或協變量可以透過使用ANCOVA將其納入研究中。為了確保觀察到的組間差異是由研究中的治療或介入引起的,而不是由無關因素引起的,可以使用ANCOVA來調整協變量對組別平均值的影響。這可以使組間比較更準確,並給出更可靠的關於變數之間關係的結論。在本文中,我們將仔細研究ANCOVA並在Python中實施。

什麼是ANCOVA?

協方差分析 (ANCOVA) 方法比較兩個或多個組別的平均值,同時調整一個或多個連續變數(稱為協變數)的影響。 ANCOVA 與 ANOVA(變異數分析)類似,但它允許將變數包含在模型中。因此,它是評估這些因素對組別平均值的影響並在組別之間進行更準確比較的寶貴工具。

考慮以下情境−您正在進行研究,評估一種新的降血壓藥物的療效。您收集了服用該藥物的一組人和不服用藥物的一組人的血壓數據,以及每個參與者的年齡數據。您可以使用ANCOVA來比較兩組在因變數(血壓)上的平均值,同時調整協變數(年齡)對組別平均值的影響。這將使您能夠確定藥物在考慮組間任何年齡差異的情況下是否成功降低血壓。

在Python中實作ANCOVA

考慮以下使用statsmodels模組在Python中執行的ANCOVA:

文法

df = pd.DataFrame({'dependent_variable' : [8, 7, 9, 11, 10, 12, 14, 13, 15, 16],
   'group' : ["A", "A", "A", "B", "B", "B", "C", "C", "C", "C"],
   'covariate' : [20, 30, 40, 30, 40, 50, 40, 50, 60, 70]})

model = ols('dependent_variable ~ group + covariate', data=df).fit()

利用 Python 的 statsmodels 模組,可以進行 ANCOVA(協方差分析)。協方差分析 (ANCOVA) 是一種統計方法,用於比較兩個或多個組別的平均值,同時調整一個或多個連續變數(稱為協變數)的影響。

演算法

  • 導入 Pandas 和 statsmodel.api

  • #定義 Ancova 的資料

  • 執行Ancova操作

  • #列印模型摘要

#Example

的中文翻譯為:

範例

此處示範了使用 scikit−posthocs 函式庫來執行 Dunn 的測試 -

import pandas as pd
import statsmodels.api as sm
from statsmodels.formula.api import ols

# Define the data for the ANCOVA
df = pd.DataFrame({'dependent_variable' : [8, 7, 9, 11, 10, 12, 14, 13, 15, 16],
   'group' : ["A", "A", "A", "B", "B", "B", "C", "C", "C", "C"],
    'covariate' : [20, 30, 40, 30, 40, 50, 40, 50, 60, 70]})

# Perform the ANCOVA
model = ols('dependent_variable ~ group + covariate', data=df).fit()

# Print the summary of the model
print(model.summary())

輸出

                           OLS Regression Results                            
==============================================================================
Dep. Variable:     dependent_variable   R-squared:                       0.939
Model:                            OLS   Adj. R-squared:                  0.909
Method:                 Least Squares   F-statistic:                     31.00
Date:                Fri, 09 Dec 2022   Prob (F-statistic):           0.000476
Time:                        09:52:28   Log-Likelihood:                -10.724
No. Observations:                  10   AIC:                             29.45
Df Residuals:                       6   BIC:                             30.66
Df Model:                           3                                         
Covariance Type:            nonrobust                                         
==============================================================================
                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
Intercept      6.0000      1.054      5.692      0.001       3.421       8.579
group[T.B]     2.3333      0.805      2.898      0.027       0.363       4.303
group[T.C]     4.8333      1.032      4.684      0.003       2.308       7.358
covariate      0.0667      0.030      2.191      0.071      -0.008       0.141
==============================================================================
Omnibus:                        2.800   Durbin-Watson:                   2.783
Prob(Omnibus):                  0.247   Jarque-Bera (JB):                1.590
Skew:                          -0.754   Prob(JB):                        0.452
Kurtosis:                       1.759   Cond. No.                         201.

群組變數和協變數變數的估計係數及其 p 值和信賴區間都會包含在此程式碼的輸出中。此資料可用於比較組別平均值,同時考慮協變數的影響,並評估模型中組別和協變量變數的重要性。

整體而言,statsmodels 模組為 Python 使用者提供了一個強大且適應性強的工具來執行 ANCOVA。它使創建、測試、分析和理解 ANCOVA 模型及其輸出變得簡單。

結論

最後,ANCOVA(協方差分析)是一種用於比較兩個或多個組別的平均值的統計方法,同時調整一個或多個連續變數(稱為協變數)的影響。 ANCOVA類似於ANOVA(變異數分析),但它允許將變數納入模型。因此,它是評估這些因素對組別平均值影響的有價值工具,並產生更準確的組間比較。它在心理學、生物學和經濟學等各種研究領域中廣泛應用,用於評估協變量對群體平均值的影響,並得出關於變數相關性的更精確結論。

以上是如何在Python中執行ANCOVA?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除