V1

2022/10/19阅读：23主题：默认主题

# 一.Pingouin库的功能

Pingouin主要是基于Pandas和Numpy类库，Python3实现的统计包。

## 1.T检验

``import numpy as npimport pingouin as pgnp.random.seed(123)mean, cov, n = [4, 5], [(1, .6), (.6, 1)], 30x, y = np.random.multivariate_normal(mean, cov, n).T# T-testprint(pg.ttest(x, y))``

## 2.皮尔逊相关

``print(pg.corr(x, y))``

## 3.Robust correlation(鲁棒相关)

``# Introduce an outlierx[5] = 18# Use the robust biweight midcorrelationprint(pg.corr(x, y, method="bicor"))``

## 4.数据正态性检验

``print(pg.normality(x))                                    # Univariate normalityprint(pg.multivariate_normality(np.column_stack((x, y)))) # Multivariate normality``

## 5.Q-Q plot

``import numpy as npimport pingouin as pgnp.random.seed(123)x = np.random.normal(size=50)ax = pg.qqplot(x, dist='norm')``

## 6.单因素方差分析

``# Read an example datasetdf = pg.read_dataset('mixed_anova')# Run the ANOVAaov = pg.anova(data=df, dv='Scores', between='Group', detailed=True)print(aov)``

## 7.重复测量方差分析

``print(pg.rm_anova(data=df, dv='Scores', within='Time', subject='Subject', detailed=True))``

## 8.Post-hoc tests corrected for multiple-comparisons

``# FDR-corrected post hocs with Hedges'g effect sizeposthoc = pg.pairwise_tests(data=df, dv='Scores', within='Time', subject='Subject', parametric=True, padjust='fdr_bh', effsize='hedges')# Pretty printing of tablepg.print_table(posthoc, floatfmt='.3f')``

## 9.Two-way mixed ANOVA(双因素混合方差分析)

``# Compute the two-way mixed ANOVA and export to a .csv fileaov = pg.mixed_anova(data=df, dv='Scores', between='Group', within='Time', subject='Subject', correction=False, effsize="np2")pg.print_table(aov)``

## 10.Pairwise correlations between columns of a dataframe

``import pandas as pdnp.random.seed(123)z = np.random.normal(5, 1, 30)data = pd.DataFrame({'X': x, 'Y': y, 'Z': z})print(pg.pairwise_corr(data, columns=['X', 'Y', 'Z'], method='pearson'))``

## 11.Convert between effect sizes(效应量间转换)

``# Convert from Cohen's d to Hedges' gpg.convert_effsize(0.4, 'cohen', 'hedges', nx=10, ny=12)``

``0.384``

## 12.多元线性回归

``print(pg.linear_regression(data[['X', 'Z']], data['Y']))``

## 13.中介效应分析

``print(pg.mediation_analysis(data=data, x='X', m='Z', y='Y', seed=42, n_boot=1000))``

## 14.Contingency analysis

``data = pg.read_dataset('chi2_independence')expected, observed, stats = pg.chi2_independence(data, x='sex', y='target')print(stats)``

## 15.Bland-Altman plot(差异图)

``import numpy as npimport pingouin as pgnp.random.seed(123)mean, cov = [10, 11], [[1, 0.8], [0.8, 1]]x, y = np.random.multivariate_normal(mean, cov, 30).Tax = pg.plot_blandaltman(x, y)``

## 16.Plot achieved power of a paired T-test(配对t检验的功率)

``import matplotlib.pyplot as pltimport seaborn as snsimport pingouin as pgimport numpy as npsns.set(style='ticks', context='notebook', font_scale=1.2)d = 0.5  # Fixed effect sizen = np.arange(5, 80, 5)  # Incrementing sample size# Compute the achieved powerpwr = pg.power_ttest(d=d, n=n, contrast='paired')# Start the plotplt.plot(n, pwr, 'ko-.')plt.axhline(0.8, color='r', ls=':')plt.xlabel('Sample size')plt.ylabel('Power (1 - type II error)')plt.title('Achieved power of a paired T-test')sns.despine()``

## 17.Paired plot(配对图)

``import pingouin as pgimport numpy as npdf = pg.read_dataset('mixed_anova').query("Group == 'Meditation' and Time != 'January'")ax = pg.plot_paired(data=df, dv='Scores', within='Time', subject='Subject', dpi=150)ax.set_title("Effect of meditation on school performance")``

# 二.统计学相关概念解释

## 2.功效分析

(1)样本大小：指的是实验中每组观测的数目。
(2)显著性水平(alpha)：犯第一类错误的概率，通常是0.05。
(3)功效(power)：1-第二类错误发生的概率。
(4)效应量(ES, effect size)：量化强度的数值，效应量的计算方式依赖于假设检验中使用的统计方法。

## 4.秩和检验

[1]Pingouin官方文档：https://pingouin-stats.org/index.html
[2]Pingouin GitHub：https://github.com/raphaelvallat/pingouin
[3]Pingouin API：https://pingouin-stats.org/api.html#non-parametric
[4]功效分析：P值的胞弟：https://zhuanlan.zhihu.com/p/141465732
[5]样本量、功效分析和效应量之间的关系：https://zhuanlan.zhihu.com/p/473335639
[6]商业统计分析功效分析：https://www.bilibili.com/video/BV1434y1b7ua/
[7]SPSS之配对样本的T检验：https://blog.csdn.net/qq_51843109/article/details/123616113

V1