我有一个 GAM 模型(如下),其中 SST_mean 和 NAO 是数值,周期和区域是分类因素。我使用 mgcv 中的 concurvity 函数检查了 concurvity。
m2 <- gam(Strandings ~ s(SST_mean) + s(NAO, bs="re") + Cycle + Region,
family=poisson, data=DAT_ST, method = "REML")
Run Code Online (Sandbox Code Playgroud)
下面的初始结果具有相当高的值,表明模型中存在曲线。
> concurvity(m2, full = TRUE)
para s(SST_mean) s(NAO)
worst 0.8944583 0.7532177 0.7131497
observed 0.8944583 0.5784295 0.7131497
estimate 0.8944583 0.5309899 0.7131497
Run Code Online (Sandbox Code Playgroud)
我进行了成对比较,看起来曲线问题实际上是在参数项之间而不是在平滑项之间或在平滑项和参数项之间
> concurvity(m2, full = FALSE)
$worst
para s(SST_mean) s(NAO)
para 1.000000e+00 1.736827e-25 0.001064966
s(SST_mean) 1.746022e-25 1.000000e+00 0.351366528
s(NAO) 1.064966e-03 3.513665e-01 1.000000000
Run Code Online (Sandbox Code Playgroud)
是否有任何原因,这是否是我的模型的问题。或者因为参数是分类的,出于某种原因这是可以预料的吗?我读到的高于 0.8 的人表示应该解决的曲线问题,但我在文献中找不到任何特定的阈值。有没有人可以推荐的参考资料?
我在 Google Earth Engine 中为感兴趣的特定区域开发了海面温度的时间序列。运行下面的代码显示整个数据集的海面温度
Map.addLayer(BIOT)
// Load an image.
var sst = ee.ImageCollection('NASA/OCEANDATA/MODIS-Aqua/L3SMI').select('sst')
.filterDate('2013-01-01', '2018-01-01')
.filterBounds(BIOT);
print('sst', sst)
var TS1 = Chart.image.series(sst, BIOT, ee.Reducer.mean(),
1000, 'system:time_start').setOptions({title: 'BIOT SST',vAxis: {title: 'SST
Celsius'},
});
print(TS1);
Map.setCenter(72.25, -6.8, 7); //lat, long, zoom
Map.addLayer (sst, {'min': 23, 'max': 34, 'palette':"0000ff,32cd32,ffff00,ff8c00,ff0000"});
Run Code Online (Sandbox Code Playgroud)
我尝试添加代码:
Map.addLayer(sst.clip(BIOT))
Run Code Online (Sandbox Code Playgroud)
要将数据剪辑到我已经定义的区域 ( BIOT),但图像仍显示所有区域的所有数据,而不是我指定的数据。有任何想法吗?任何帮助表示赞赏!