如何在 Python 中执行 Ancova?

ANCOVA(协方差分析)是一种有用的统计方法,因为它可以在分析中包含协变量,这可能有助于调整辅助变量并提高组比较的精度。这些附加因素或协变量可以使用ANCOVA纳入研究。为了确保组间观察到的任何差异是由正在研究的治疗或干预引起的,而不是由不相关的因素引起的,ANCOVA可用于调整协变量对组均值的影响。这可以使组之间的比较更加准确,并就变量之间的联系给出更可靠的结论。在这篇文章中,我们将密切关注ANCOVA并在python中实现它。

什么是ANCOVA?

协方差分析 (ANCOVA) 方法比较两个或多个组的均值,同时调整一个或多个连续变量(称为协变量)的影响。ANCOVA类似于方差分析(方差分析),但它允许变量包含在模型中。因此,它是评估这些因素对群体均值的影响和在组之间进行更准确的比较的宝贵工具。

考虑以下场景 - 您正在进行研究以评估新血压药物的疗效。您从一组服用药物的人和一组不服用药物的人那里收集血压数据,以及研究中每个参与者的年龄数据。您可以使用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的统计模型模块,可以进行ANCOVA(协方差分析)。协方差分析 (ANCOVA) 是一种统计方法,用于比较两个或多个组的均值,同时调整一个或多个连续变量(称为协变量)的影响。

算法

  • 导入 Pandas 和 statsmodel.api

  • 定义Ancova的数据

  • 执行Ancova操作

  • 打印模型摘要

这里演示了使用 scikit−posthocs lib 来运行 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类似于方差分析(方差分析),但它允许变量包含在模型中。因此,它是评估这些因素对群体均值的影响和在组之间进行更准确的比较的宝贵工具。它广泛用于各种研究领域,包括心理学、生物学和经济学,以评估协变量对组平均值的影响,并得出有关变量相关性的更精确结论。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值