统计气象差值图显著性检验
检验方法:T检验
范围
对同一物理量的两个不同时段的均值场做差后检验两个时段的场相差是否显著。
方法
双总体检验公式:
$$ t = \frac{\overline{X_1}-\overline{X_2}}{\sqrt{\frac{(n_1-1)S_1^2+(n_2-1)S_2^2}{n_1+n_2-2}}\left(\frac{1}{n_1}+\frac{1}{n_2}\right)} $$
对于一个格点,在两个时段内,都两列时间序列 $a_1,a_2$,则$\overline{X_1},\overline{X_2}$ 为两个序列均值,$S_1,S_2$ 为两个序列方差,$n_1,n_2$ 为两个序列的长度(样本数)。计算得到每个格点的t值,查T临界值表的双侧某一概率,自由度为 $n_1+n_2-2$ 的临界值,若格点t值绝对值大于临界T值,则有该概率两个样本差异显著。
例子
# P情况减去N情况的显著检验
# PVC与NVC为变量场时间序列,是四维数组,第一维是两种情况,第二维是时间,三四维是平面,在此直接矩阵运算而不是一个个格点计算。
import numpy as np
PVCStd = np.array([np.std(PVC[0], axis=0), np.std(PVC[1], axis=0)])
PVCMean = np.array([np.mean(PVC[0], axis=0), np.mean(PVC[1], axis=0)])
NVCStd = np.array([np.std(NVC[0], axis=0), np.std(NVC[1], axis=0)])
NVCMean = np.array([np.mean(NVC[0], axis=0), np.mean(NVC[1], axis=0)])
# calculate T-test
VCT = [[], []]
for i in range(2):
t1 = PVCMean[i] - NVCMean[i]
t2 = (((n1 - 1) * PVCStd[i] ** 2 + (n2 - 1) * NVCStd[i] ** 2) / (n1 + n2 - 2)) * (1 / n1 + 1 / n2)
VCT[i] = t1 / np.sqrt(t2)
# VCT则为最终需要的两种情况下的t值场