- 积分
- 110
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2017-3-31
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
目前使用:xMCA分析获得,左右异类相关分布场,左右时间系数以及解释方差。并计算获得左右时间系数之间的一元回归方程。下一步需要把预测结果,通过投影到已有的预报模态上,得到各模态新一年预报场时间系数。这个投影到已有的预报模态应该怎么理解,各位大佬?以下是部分代码:import pandas as pd
from xMCA import xMCA
import numpy as np
import matplotlib.pyplot as plt
import xarray as xr
import shapefile
from sklearn import linear_model
s2sFile='F:\project\globalDisaster\svd_aysnc_demo_data\data678/0_tp.nc';
sieFile='F:\project\globalDisaster\svd_aysnc_demo_data\data678/0_sie_tp.nc';
s2sData=xr.open_dataarray(s2sFile).transpose(*['time', 'lat', 'lon'])
sieData=xr.open_dataarray(sieFile).transpose(*['time', 'lat', 'lon'])
#步骤一:左场和右场分析
k=3#取3个模态
svd = xMCA(s2sData,sieData)
svd.solver()
#lp,rp分别为左场和右场的模态,(n=3,取得求取的排名靠前的n个模态)。
lp,rp =svd.patterns(n=k)
#lt,rt分别为左场和右场的时间系数序列
lt,rt=svd.expansionCoefs(n=k)
#方差贡献
frac = svd.covFracs(n=k)
#homogeneous 同性
# lho, rho, lphot, rphot = svd.homogeneousPatterns(n=1, statistical_test=True)
#heterogeneous 异性
le, re = svd.heterogeneousPatterns(n=k)
ui=[] #一元回归系数
vi=[]
#步骤二:使用时间系数建立一元回归方程,求出ui和vi。方程ui+vi*βi(时间系数)=Y(订正值)
for i in range(k):
#把左场(预报场)当作x自变量
x=lt.data.reshape(-1,1);#把一维数组转为每个值为独立的数组(如:[1,2,3]转为[[1],[2],[3]])
#把右场(实况场)当作y因变量
y=rt.data
reg = linear_model.LinearRegression().fit(x,y)
r = reg.score(x,y)#r相关系数
v = reg.coef_
u = reg.intercept_
ui.append(u)
|
|