四月雨之音 发表于 2017-1-31 16:58:35

ncl 标准化函数以及回归函数运用

最近在用NCL做回归分析,这个时候有个疑问,比如做850风场回归到EOF降水PC1,那么我先需要对PC进行标准化,如果我对PC标准化了,风场是否也需要标准化呢?我看到文献里头回归分析用的斜率k(y=kx+b)是Y序列的单位/一个标准化,那我猜测是不需要对风场进行任何处理?不知道我的理解是否有误,请大牛指点~这是我的第一个问题

第二个是关于ncl的函数标准化序列,我自己随便假设一个8个数字的序列计算标准化
a = (/2.5,3,3,5,4,4.5,5,-3./)
b = new((/8/),float)
b = dim_standardize(a,1)
do i=0,7
print(b(i))
end do
bmean = dim_avg_n_Wrap(b,0)
print(bmean)
我输出去看这个标准化以后的序列,明显不是我自己手动计算得到的-0.08421 0 0 0.3368 0.1684 0.2526 0.3368 -1.0105(这里我保留小数点后四位哈)
而是跟这几个数字呈现比例关系,比如我用了 = dim_standardize(a,1)里头1这个参数那么就出现-0.2051957 0 00.8207827 0.4103913 0.615587 0.8207827 -2.462348 输出的bmean=0, 接着我试了= dim_standardize(a,0)改了1为0的参数以后出现完全不同的新的八个数字,也不是我手动计算的那八个数字,于是我很好奇,难道标准化的计算公式(X-Xmean)/标准差 这里的标准差有多种计算式?那为啥都不是我学过的标准差。。

四月雨之音 发表于 2017-12-22 11:42:30

happyaliyun 发表于 2017-8-9 18:43
你好,我想问一下关于风场的回归检验,是分别对u、v进行检验嘛?显著性咋判定呢?

有多种方式,看你结果咯,可以对uv一起都过的(条件有点严格),可以挑出来uv 其中一个过了的(条件有点宽),可以uv合起来风速过了的,你可以都画一下,如果差距不是太大就都ok

四月雨之音 发表于 2018-11-6 20:14:52

现在补充回答一下当年的问题,做回归只需要对X序列进行处理,Y不需要,亲测,X滤波得到的序列回归到Y,与X滤波得到的序列回归到同样规格滤波的Y 结果一模一样,但是通过显著性区域从正常的斑驳变成一大块,因此不需要对Y进行额外处理,除非。。为了让信号更明显(实际没有太大意义)。接着回答第二个疑问点,就是,做了标准化处理和距平处理的X序列,做回归的NCL画图会不会影响,毕竟统计公式推导,大家的K斜率都不一样啊。。然而NCL很聪明,不,是写脚本的人聪明,保证了我们不管做啥处理,画出来的回归都是一样的。亲测,如有反例请告诉我。我测试了一个案例一样的。

   pc1 =new((/6,years,modes/),float)
pc1_avg = dim_avg_n(pc1(:,:,0),1)
pc11 = new((/6,270/),float)
do lead = 0,5
pc11(lead,:) = pc1(lead,:,0)- pc1_avg(lead)
end do
SST11 = regCoef_n(pc11,SST(0,:,:,:),1,0)
SST11!1 = "lat"
SST11!2 = "lon"
SST11&lat = fspan(-30.375,50.125,323)
SST11&lon = fspan(0.125,359.875,1440); 上面这个是用的距平数据,PC11距平的X序列画出来的SST11和下面这个程序的SST11是一毛一样。

pc11 = dim_standardize_n_Wrap(pc1(:,:,0),1,1) ;standardize=anomalypaint k
SST11 = regCoef_n(pc11,SST(0,:,:,:),1,0)
SST11!1 = "lat"
SST11!2 = "lon"
SST11&lat = fspan(-30.375,50.125,323)
SST11&lon = fspan(0.125,359.875,1440)

Hurricane_Hu 发表于 2017-1-31 23:13:11

一个是除以样本标准差(n-1),一个是除以总体标准差(n)

四月雨之音 发表于 2017-2-4 21:25:10

本帖最后由 四月雨之音 于 2017-2-4 21:30 编辑

Hurricane_Hu 发表于 2017-1-31 23:13
一个是除以样本标准差(n-1),一个是除以总体标准差(n)
谢谢您的回答!我太粗心了,算的时候忘记开根号了。。简直服了自己,恩恩我算的八个数字是第一种1参数的,0参数的是n-1

carlye2002 发表于 2017-2-6 09:21:07

很棒的东西,正好需要,赞一个

藕茭白空心菜 发表于 2017-2-23 17:00:33

{:eb502:}{:eb502:}谢谢

happyaliyun 发表于 2017-8-9 18:43:14

你好,我想问一下关于风场的回归检验,是分别对u、v进行检验嘛?显著性咋判定呢?

zhangjiayu 发表于 2017-10-13 17:03:00

特别想请教第一个问题

四月雨之音 发表于 2017-12-22 11:45:58

补充一下,stddev这个算标准化的函数用的是n-1的

四月雨之音 发表于 2017-12-22 11:51:48

zhangjiayu 发表于 2017-10-13 17:03
特别想请教第一个问题

后头搞明白了,迟来的回复抱歉,都是可以的,画的是不同的东西1、y = k x +b   同时减掉y平均值y1
y-y1 = kx - kx1 同时除以x的标准差x6y-y1 = x6*(k*x的标准化序列) 2、如果我们只是简单的减去y1那就是 y-y1 = k*(xd) 反正我检验了不论你对x做的是标准化还是距平处理还是不做任何处理,到头来画的都是k就是不做任何处理的k,所以用自带的检验都是一样的图别担心因为操作问题检验的图有变化,你穿啥衣服你还是你~
所以我们如果只对x标准化y不动,画出来的k就是里头的k 而不是k*x6, 如果我们x做的只是距平处理,画的就是k,我们不做任何处理画的还是k
页: [1] 2
查看完整版本: ncl 标准化函数以及回归函数运用