爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 11312|回复: 8

[其他] 线性回归问题

[复制链接]

新浪微博达人勋

发表于 2021-10-19 19:54:53 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 推开世界的门 于 2021-10-19 20:11 编辑

各位大佬,非常抱歉。叨扰大家,我想请问一下如何求两组数据的回归方程呢?,如下列两组数据a1和a2,时间序列都是1950-1990,求一个线性回归方程y=kx+b,其中k应该为两组数据的相关性,那么b用哪个函数可以确定呢,数组比较多,所以如果ncl处理更方便一点。
a1
27.96774
a2
1.801017
27.91092
1.419363
27.90236
1.535143
27.93173
1.66675
28.00713
1.961259
27.83422
1.117052
27.87683
1.510553
28.06966
2.067458
27.92752
1.875387
28.05965
1.699253
28.15343
1.324489
28.04453
2.082381
28.15018
1.828656
28.32475
2.767909
28.1543
1.83427
28.03699
2.297135
28.30981
1.901899
28.27892
2.310006
28.1358
2.65395
28.07014
1.857434
28.06121
0.9075552
28.0159
1.273672
27.70146
2.693526
27.76564
0.6403334
28.02465
2.289139
27.70432
0.9882634
27.6315
2.049191
27.90511
1.616049
27.8028
1.408753
27.88092
1.762757
27.88425
2.36526
28.00392
1.591004
27.73189
3.020699
27.50834
1.052505
28.20459
1.736361
28.03667
1.774717
27.99497
2.865948
27.76427
2.032925
28.04434
1.158222
28.08507
2.105983
28.11559
2.762481


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

新浪微博达人勋

发表于 2021-10-19 23:48:14 | 显示全部楼层
为啥要用ncl呢
python或者R语言 一行就出结果了啊
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-10-20 10:20:03 | 显示全部楼层
topmad 发表于 2021-10-19 23:48
为啥要用ncl呢
python或者R语言 一行就出结果了啊

好的 谢谢您
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-10-26 19:38:14 | 显示全部楼层
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-10-27 09:55:13 | 显示全部楼层
rc    = regline(a1,a2)
print(rc)
得到的xave、yave是平均值;
tval是t统计量;
rstd是回归系数的标准差;
yintercept是y截距,也就是你要的b;
nptxy是样本个数;
最下面的那个数值就是你要的斜率k
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-10-27 11:46:46 | 显示全部楼层
本帖最后由 推开世界的门 于 2021-10-27 11:48 编辑
guoguohh 发表于 2021-10-27 09:55
rc    = regline(a1,a2)
print(rc)
得到的xave、yave是平均值;

谢谢大佬,如果对于一个三维数组,怎么才能更方便的求出k和b呀,如我想对一个三维(时间|50,纬度|121,经度|121)的nc文件的每个格点求一个回归一元线性回归方程y=kx+b,x为用其他数据定义的自变量,请问一下怎么才能将每个格点的b算出来呢,下面是我写的代码,如果只算每个格点的k值的话,可以算出来,但是不知道值该怎么才能一次性将所有格点的b值算出来k=new((/120,120/),float)
do i=0,119
  do j=0,119
    k(i,j)   = regline (x,y(:,i,j))
  end do
end do

print(k)


密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-10-27 14:47:16 | 显示全部楼层
推开世界的门 发表于 2021-10-27 11:46
谢谢大佬,如果对于一个三维数组,怎么才能更方便的求出k和b呀,如我想对一个三维(时间|50,纬度|121, ...

https://www.ncl.ucar.edu/Document/Functions/Built-in/regCoef_n.shtml
你参考一下官网的这个函数,多维的不用写循环,看每个的b值直接print(变量名@yintercept)就得到了
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-10-27 16:28:45 | 显示全部楼层
guoguohh 发表于 2021-10-27 14:47
https://www.ncl.ucar.edu/Document/Functions/Built-in/regCoef_n.shtml
你参考一下官网的这个函数,多 ...

好的 大佬! 谢谢您!问题已解决
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-10-27 20:54:43 | 显示全部楼层
推开世界的门 发表于 2021-10-27 16:28
好的 大佬! 谢谢您!问题已解决

没事哦,能帮到你就好~
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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