- 积分
- 5483
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2011-9-23
- 最后登录
- 1970-1-1
![[Vamei] 粉丝数:1157 微博数:1011 新浪微博达人勋](source/plugin/sina_login/img/light.png)
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
【原创】用NCL做主变量分析(PCA, EOF)
EOF(Empirical Orthogonal Function, 又名Principal Component Analysis)方法:矢量变量(x1,x2, ... xn)计算得到的covariance矩阵或者correlation矩阵具有对称性。从数学上,对称矩阵可以对角化,得到特征值(eigenvalue)和特征矢量。由于对称矩阵对角化过程中可以保持矩阵trace不变的特点,可以知道这些特征值代表了在各个特征矢量上的variance. 具有高特征值的特征矢量代表了variance最大的方向,也就是所谓的principal component analysis。 El Nino, IOD 等现象的发现和总结,都有EOF分析的贡献。
关于EOF分析的基本原理,可以参考
Statistcal Methods in the Atmospheric Sciences, Daniel S.Wilks.
事实上这本书是从应用出发。还可以考虑一下其他数学的统计教材。注意,在大气中的名字是EOF, 在数学中的名字是PCA。
在NCL中已经有写好的EOF分析程序:
eof = eof_func(ori_data, neval, optEOF) 返回PC1, PC2, ....PCneval
ts = eof_ts(ori_data, neval, optEOF) 返回在各个时间点上每个EOF function的“得分” (比如说PC1在这个时间的强弱)
rec = eof2data(eof, ts) 利用PC1,PC2, ...., PCneval, 和“得分”重构原数据
其中, ori_data是input data. 比如说我们有一个观测站的数据,ori_data 是一个2维数组,第一个维度上是各个物理量(T, P, QV, U,V),第二个维度上是时间, 比如说300天(注意,NCL的EOF函数要求最后一个维度必须是时间)。那么ori_data就是 5x300的二维数组。
neval是你要返回的主变量数目,比如 3, 则返回前三个主变量(PC1, PC2, PC3)。
optEOF = True
optEOF@jopt = 0 利用covariance计算(利用correlation计算, 如果= 1)
另外,各个PC所占的比重可以在eof的attribute里查到。
在得到各个PC和ts之后,可以根据实际需要,继续进行下面的分析。
T
|
评分
-
查看全部评分
|