爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 6188|回复: 5

[经验总结] ncl回归函数使用的细节

[复制链接]

新浪微博达人勋

发表于 2022-7-15 11:45:13 | 显示全部楼层 |阅读模式

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

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

x
今天画图的时候对Ncl用了好多次的回归函数有了点好奇,这个不管输入原始场、距平场出来的b值(斜率)都长一样的函数,它画的具体是不是统计书上的那个b值(斜率)
于是做了个测试,首先是直接套用函数


T_spring_nino34  =spring_nino34;指数序列
spring_SIOD_T = regCoef_n(T_spring_nino34,spring_SIOD,0,0)   ;回归函数

print(spring_SIOD_T) ;输出结果为 -0.1669429



接着我自己乖乖用统计课本的公式去计算回归斜率值b值
xysum = new(62, float)
xsum  = xysum
do i = 0 , 61
  xysum(i) =   T_spring_nino34(i) * spring_SIOD(i)
  xsum(i)  =   T_spring_nino34(i) * T_spring_nino34(i)
end do
xyup = (dim_sum_n_Wrap(xysum, 0) - (dim_avg_n_Wrap(spring_SIOD, 0)*dim_avg_n_Wrap(T_spring_nino34, 0)*62.)) ;分子部分
xydown = dim_sum_n_Wrap(xsum, 0) - (dim_avg_n_Wrap(T_spring_nino34, 0)*dim_avg_n_Wrap(T_spring_nino34, 0))*62.;分母部分
xy = xyup/xydown;计算出来了统计课本的2.5公式b值=(累加xy相乘值 - x平均值*y平均值*n)/(累加的x平方 - x平均值*x平均值*n)
print(xy)  ;输出结果也是-0.1669429



得证明,Ncl自带回归函数,算出来的那个值就是我们要的课本上的b值,那有小伙伴肯定要问了,如果输入y场改为标准场,x原值呢, 改动一下:


T_spring_nino34  =spring_nino34
T_spring_SIOD    = dim_standardize_n_Wrap(spring_nino34,1,0) ;对y场做标准化处理
spring_SIOD_T = regCoef_n(T_spring_nino34,T_spring_SIOD,0,0)
print(spring_SIOD_T) ; 输出结果-0.2996776显然数值发生了改变了

用书上的公式再套用标准化后的y场,算出来的也一样啦是-0.2996776,这里就说明y场改成了标准场,数值是量级变了的,符号没动哦还是负相关值,更显著的可能性或许更大了~



那如果我对x场也做标准化处理呢?x y 都标准化
这时候算出来的b值是-0.1767678
,不管是套用ncl函数还是用课本公式去计算都是-0.1767678哦,这个时候符号未改,数量级调小了~


那如果我只对x场做标准化,而y场原值呢?
两版输出都是 -0.09847296 符号没变,量级更小了



那如果是x场距平场,y原值呢?
两版输出都是 -0.1669429(有没有觉得这个数字好熟悉,没错就跟上上上面的测试答案一致,原值xy去算回归b值)



那如果是y场距平场,x原值呢?
两版输出依然是 -0.1669429

那如果xy都距平场呢?
两版输出依然是-0.1669429


所以距平场和原值场出来的都是一个答案的~~大家放心用,也就是不管x场距平y原值,y距平x原值,xy都原值,xy都距平出来都是一个b值,课本2.5公式的那个b值
至于标准场,x标准y原值,x原值y标准,xy都标准,xy都原值,b值都会有差异,但符号不变哈。





密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2022-7-16 09:58:46 | 显示全部楼层
赞一个赞一个
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-7-16 10:51:52 来自手机 | 显示全部楼层
因为线性回归分析y=ax+b的a只是斜率,和平均值没关系,所以对于去掉平均值了的距平和用原始值是没区别的。
但是做了标准化之后,相当于x和y都发生了改变,所以a会变,但这个a的变化只能说明量级的改变,并不是说两者的相关性发生了变化,因为在算相关的时候x和y都是标准化了的。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2022-7-22 21:31:54 | 显示全部楼层
massage 发表于 2022-7-16 10:51
因为线性回归分析y=ax+b的a只是斜率,和平均值没关系,所以对于去掉平均值了的距平和用原始值是没区别的。
...

对的,是这个道理。此外,显著区域是始终不变的,因为事实摆在那里,任何描述方法都是一个门槛
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 成长值: 0
发表于 2023-5-31 13:45:13 | 显示全部楼层
楼主太有心了!!!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2024-2-24 11:00:39 | 显示全部楼层
叩容 发表于 2023-5-31 13:45
楼主太有心了!!!

嘿嘿,是我是我~~
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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