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