请选择 进入手机版 | 继续访问电脑版
爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3173|回复: 9

ncl多元回归报错

[复制链接]

新浪微博达人勋

发表于 2023-3-9 21:16:58 | 显示全部楼层 |阅读模式

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

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

x

                               
登录/注册后可看大图

Y有缺测值?怎么处理?



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

新浪微博达人勋

发表于 2023-3-15 22:54:43 | 显示全部楼层
        do i=0,dimsizes(sst_1&latitude)-1
          do  j=0,dimsizes(sst_1&longitude)-1
          if .not. any(ismissing(sst_1(:,i,j) ))  then
          rc_1(:,i,j)= reg_multlin_stats(sst_1(:,i,j),x,opt)
          b_1(:,i,j) = rc_1@bstd
          p_1(:,i,j) = rc_1@pval
          end if
          end do
       end do

注意你这边考虑的是每个格点

.not. any(ismissing(sst_1)) 因为陆地上缺省,结果肯定是false 呀。
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2023-3-10 00:08:09 | 显示全部楼层
剔除y的缺省,并对应的x位置,也剔除掉就行。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2023-3-11 20:55:30 | 显示全部楼层
houtian 发表于 2023-3-10 00:08
剔除y的缺省,并对应的x位置,也剔除掉就行。

可以请教一下怎么剔除嘛
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2023-3-14 03:15:52 | 显示全部楼层
本帖最后由 houtian 于 2023-3-14 03:17 编辑

function:  ind

ynew = y(ind(.not.ismissing(y)))
xnew = x(ind(.not.ismissing(y)))
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2023-3-14 22:39:57 来自手机 | 显示全部楼层
houtian 发表于 2023-03-14 03:15
本帖最后由 houtian 于 2023-3-14 03:17 编辑

function:  ind

ynew = y(ind(.not.ismissing(y)))
xnew = x(ind(.not.ismissing(y)))

如果y是三维的呢,ind只针对一维

                               
登录/注册后可看大图
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2023-3-15 05:41:42 | 显示全部楼层
本帖最后由 houtian 于 2023-3-15 05:43 编辑

看到你私信的程序了
海温数据,在陆地上是没有值。
所以你在通过do 循环对每个格点做回归时,你需要判断这个格点数据序列是不是全都是缺省,是的话就跳过,不是的话通过ind进行挑选。
当然更严格一点,这个格点数据序列只有全不是缺省时,才进行回归操作。海温数据一般在年份上不会缺少
if .not. any(ismissing(y))  then
...
end if


另外,你这是在做本科论文?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2023-3-15 16:36:01 | 显示全部楼层
houtian 发表于 2023-3-15 05:41
看到你私信的程序了
海温数据,在陆地上是没有值。
所以你在通过do 循环对每个格点做回归时,你需要判断 ...

非常感谢您耐心回复!目前研一,在进行文章复刻,在使用ncl时总会遇到很多问题,根据您的回复
  1.         do i=0,dimsizes(sst_1&latitude)-1
  2.           do  j=0,dimsizes(sst_1&longitude)-1
  3.           if .not. any(ismissing(sst_1))  then
  4.           rc_1(:,i,j)= reg_multlin_stats(sst_1(:,i,j),x,opt)
  5.           b_1(:,i,j) = rc_1@bstd
  6.           p_1(:,i,j) = rc_1@pval
  7.           end if
  8.           end do
  9.        end do
复制代码

仍出错,在进行if条件筛选后,左边输出的维数与原来的不同,这个怎么解决呢
warning:ContourPlotInitialize: no valid values in scalar field; ContourPlot not possible:[errno=1101]
warning:ContourPlotInitialize: no valid values in scalar field; ContourPlot not possible:[errno=1101]
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2023-3-16 19:07:22 | 显示全部楼层
houtian 发表于 2023-3-15 22:54
do i=0,dimsizes(sst_1&latitude)-1
          do  j=0,dimsizes(sst_1&longitude)-1
           ...

非常感谢!!!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2023-11-24 17:49:05 | 显示全部楼层
为什么在输出的时候 左右维不匹配
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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