爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 14039|回复: 9

[求助] python 做REOF

[复制链接]
发表于 2015-4-27 22:30:13 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
感觉论坛里REOF的代码不少,但是教程和心得严重不足呀,新手根本不会用。我一直都坚持用python处理数据,希望python也有REOF的函数和代码。我仔细看了文章教程步骤和疑问如下:1、对于降水资料阵X,求资料阵X的相关阵的特征值及其特征向量,构成矩阵V和R,则因子荷载阵A=VR**0.5(问题:相关阵应该是C=XX'吧)
2、主分量矩阵为FR**0.5'V'X
3、确定显著的主分量个数(怎么确定)
4、对因子荷载阵􀀁 进行极大方差转动,最后求出F*(这个最不懂)􀀁另外,下面这个函数是不是极大方差转动呀,具体怎么用,

def varimax(Phi, gamma = 1.0, q = 20, tol = 1e-6):    from scipy import eye, asarray, dot, sum, svd    p,k = Phi.shape    R = eye(k)    d=0    for i in xrange(q):        d_old = d        Lambda = dot(Phi, R)        u,s,vh = svd(dot(Phi.T,asarray(Lambda)**3 - (gamma/p) * dot(Lambda, diag(diag(dot(Lambda.T,Lambda))))))        R = dot(u,vh)        d = sum(s)        if d_old!=0 and d/d_old < 1 + tol: break    return dot(Phi, R)

总之还请大家多多指点,我的同学学长都不做这个,问老师又叫我自己找,还望大家多多帮助:)


密码修改失败请联系微信:mofangbao
 楼主| 发表于 2015-4-27 22:32:22 | 显示全部楼层
抱歉粘贴出错了,代码在http://en.wikipedia.org/wiki/Talk%3aVarimax_rotation里面
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2015-4-28 00:23:22 | 显示全部楼层
我的理解是varimax函数里的phi就是A,返回的就是A*,欢迎指教!
密码修改失败请联系微信:mofangbao
发表于 2015-5-20 16:11:33 | 显示全部楼层
没用过eof分析,所以对那个算法不了解
密码修改失败请联系微信:mofangbao
发表于 2015-6-17 11:43:53 | 显示全部楼层
http://fisica.ehu.es/pyclimate/DownloadPage   楼主可以了解一下这个扩展包,有EOF的程序
密码修改失败请联系微信:mofangbao
发表于 2016-3-30 21:53:06 | 显示全部楼层
这种纯数字的计算用R做很轻松啊,之后可以在python中调用R。
密码修改失败请联系微信:mofangbao
发表于 2016-4-30 17:11:47 | 显示全部楼层
没看懂!我也想知道怎么做啊
密码修改失败请联系微信:mofangbao
发表于 2017-1-23 21:25:46 | 显示全部楼层
学习了{:eb502:}{:eb502:}
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

发表于 2018-7-4 10:34:05 | 显示全部楼层
多谢分享。
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

发表于 2018-8-4 15:09:51 | 显示全部楼层
{:eb502:}
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表