首页  >  文章  >  后端开发  >  如何在Python中执行ANCOVA?

如何在Python中执行ANCOVA?

王林
王林转载
2023-09-01 17:21:051093浏览

如何在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删除