ncl显著性检验函数和EOF函数 | 您所在的位置:网站首页 › 对相关系数进行显著性检验公式是 › ncl显著性检验函数和EOF函数 |
ncl显著性检验函数和EOF函数
2018-01-31
renql
ncl
copyVarMeta
EOF
sig_test
显著性检验函数
0、Student’s t-distribution
1、检验相关系数是否显著
2、两组样本均值差异是否显著
3、检验两组样本的方差是否有显著差别
计算EOF的函数
1、计算EOF特征空间模态
2、计算EOF各模态对应的时间系数
3、检验各模态的特征值是否显著与其他特征值分离
4、其他
copy_VarMeta(var_from,var_to) ;最常用的一个函数,因为若变量的LAT和LON坐标若没有定义单位等要素,画map图会报错
time := cd_calendar(time,option) ;将混合日期转换为公历日期,且option=0时,输出数据会多一维
显著性检验函数
0、Student’s t-distribution
下面的相关系数检验与样本均值检验都用到了学生t分布,都是先计算t统计量,然后根据t分布的概率密度函数计算 a two-tailed probability (prob),若prob小于0.01,则说明其通过99%的显著性检验。 但当例如ncl的 regCoef_n 函数计算回归系数时,会将t统计量作为属性输出,此时若要对回归系数做显著性检验,就需要根据t统计量计算a two-tailed probability (prob)。 t分布的概率密度函数是: a two-tailed probability等于将t分布的概率密度函数从负无穷积到-t值得积分值加上从t积到正无穷的积分值。如下图阴影区域所示。
如果得到的t统计量是一个很大的数组且不确定其正负,此时可以用不完全beta函数计算。
返回统计概率值prob,当 prob.lt.0.01 时,说明其通过99%的显著性检验。上述n代表样本数,n-2 表示自由度。 除了用上述函数进行判断以外,也可以根据公式计算临界相关系数,当相关系数大于临界相关系数则通过显著性检验。而关于临界相关系数网上一般有表格可以查询,耶可以利用一些网站计算。 更详细版相关系数检验临界值表 2、两组样本均值差异是否显著 ttest(均值1,方差1,样本数1,均值2,方差2,样本数2,iflag,tval_opt)iflag,为True表示两组样本有相同的总值方差,为False表示有不同的总值方差 tval_opt,为True表示返回统计概率值和student_t值,为False则只返回统计概率 当统计概率值.lt.显著性水平siglvl(例如0.05),则两组样本差异显著 上图是计算两组样本均值是否有显著差异的t统计量,从中可以发现若两组样本的方差均为0或非常接近0时,该公式不成立,因此此时在ncl中设为缺测。 但是在两组样本的方差都为0且均值有差异的情况下,这两组样本的均值一定是显著不同,但由于ncl将其设为缺测,此时会导致通过显著性检验的点减少, 因此可以将方差无限趋近于0的值设为某个小量,例如0.01。(t值越大,通过显著性检验的可能性就越大) var_vari = where(var_vari.le.0.000001.and.var_vari.ge.-0.000001,0.01,var_vari)不过需要注意的是,对于散度、涡度等量级本身就非常小的物理量来说,其方差也非常小。如果用上述命令将无限趋于0的方差设为0.01,就会导致修改后的方差比实际的方差大很多,于是通过显著性检验的变量会减少。 个人觉得这个检验的原理是:当两组样本均值差异显著大于两组样本的平均标准差时,为通过显著性检验,即两组样本均值有显著差异。 3、检验两组样本的方差是否有显著差别 ftest(方差1,样本数1,方差2,样本数2,0) ;F检验返回统计概率值prob,用法同1,2 F统计值的计算方法如下:
若输入的 data 为(time,nlat,nlon),则得到的为 eof(neval,nlat,nlon),且 eof 是标准化变量(每一空间模态的平方和=1),故空间模态的数值与变量本身的数值大小无关,即空间模态的数值本身无意义,一般只看其分布型。若想使其数值有意义,可通过乘上相应特征值的开方去标准化 eof(ne,:,:) = eof(ne,:,:)*sqrt( eof@eval(ne) ) ; units same as data ,对应的时间系数除以相应特征值的开方。 同时,该函数还会以属性形式返回:eval 特征值(一维数组),pcvar 特征值方差贡献(一维数组)。某一模态的特征值即该模态所有格点的方差和(用某格点数值乘以时间系数再求方差,然后所有格点求和),所有特征值之和就是原始场所有格点的方差和,也是时间系数(主分量)的方差。 此外,还有一个概念————模态局地方差贡献,就是某一模态在某个格点上的方差(用重构方法计算,不同格点的方差不同)对原始场该格点方差的比值。 用原始数据、距平值、标准化变量做EOF,得到的结果都不一样的。用相关矩阵计算EOFs得到的各模态特征值比用协方差矩阵计算得到的小很多,且两者的特征值方差贡献也完全不一样。一般ENSO的辨认是用距平值做EOF,也就是协方差矩阵。 当用相关矩阵计算EOFs时,相当于用标准化变量进行EOF分析,此时各个点的标准化变量可能相差不大,故能同时反映不同区域标准化变量的异常特征,反映的是变量场不同区域的相关情况.适合做分类、分型分析。用标准化变量做的EOF空间型中用值最大的那一点做一点相关图得到的相关图与该EOF空间型最相似,这也是EOF与一点相关图的相似性。 当用协方差矩阵计算EOFs时。相当于用距平变量进行EOF分析,此时EOF分析主要反映距平绝对值较大区域的主要异常特征 当用原始数据计算EOF时,主要空间分布型反映了平均状况,就相当于平均值,因此很少用原始数据做EOF,故该函数中也无这一选项 若研究的年际变率或年代际变率,EOF前需要进行相应的滤波操作,同时记得去趋势。 2、计算EOF各模态对应的时间系数 eof = eofunc_n_Wrap(data,neval,optEOF,dim) optETS = True optETS@jopt = 1 #指使用标准化数据矩阵计算时间序列,默认使用输入的data和eof(此时可设为False) eof_ts = eofunc_ts_n_Wrap(data,eof,optETS,dim) #计算与eof对应的时间序列若输入的 data 为 (time,nlat,nlon), eof(neval,nlat,nlon),则得到 eof_ts(neval,time) (减去均值后的值),同时以属性的形式返回 ts_mean(neval),是 eof_ts 的均值 一般可以用这个时间序列做突变检验、功率谱分析、小波分析、趋势分析、相关计算等等,以衡量该典型空间场的时间变化特征。 3、检验各模态的特征值是否显著与其他特征值分离sig = eofunc_north(eval特征值,时间样本数,prinfo) #也可用特征值的方差贡献pcvar做检验 ` prinfo = True 时,依次打印计算所得的 delta lambda、特征值误差范围的最低界限、特征值、特征值误差范围的最高界限以及分离的显著性 输入的eval或者pcvar只能是一维数组,返回一维逻辑型数组,表示特征值是否显著与其他特征值分离 基于North. et al (1982): Sampling Errors in the Estimation of Empirical Orthogonal Functions.的文章对EOF模态进行显著性检验。公式如下
EOF气象要素场重构的目的: 检验EOF是否正确 选取其中前几个主分量可还原气象要素场的大部分信息,也可以有选择性地还原气象要素场的特点信息EOF气象要素场重构的应用: 研究印度洋海温时,若想要去除ENSO的信号,可以把印度洋和太平洋的SSTA做EOF,一般第一模态反映的就是ENSO的信号,然后重构第一模态(空间模态的每个格点乘以时间系数得到不同时刻该格点的不同值)则得到包含有ENSO信号的SSTA的序列场,原始场减去该序列场,则可消除与ENSO有关的SSTA。 当然要去除ENSO信号也可以通过回归的方法来做。 此外,除了对水平场做EOF外,也可以对垂直积分的水平场、纬向平均的垂直剖面或者纬向平均垂直平均的一维径向分布做EOF。还有将多个变量组合在一起做EOF的情况,例如MJO指数就是将近赤道径向平均的850 hPa、200hPa纬向风和OLR数据的组合场做EOF分析得到的第一模态和第二模态的主分量,且做EOF前已剔除年周期和年际变化分量。 ![]() ![]() 喜欢此文! 上一篇 20180131 linux系统维护常用命令 下一篇 20180203气溶胶与亚洲季风的关系 |
CopyRight 2018-2019 实验室设备网 版权所有 |