如何解决如何使用稳健的线性回归或其他用户选择的模型去趋势 xarray.DataSet或 xarray.DataArray?
我的 xarray.DataSet
具有三个维度(纬度、经度和时间)和一个数据变量 (var)。所以,它是每个网格单元的 var 的时间序列。
我想使用鲁棒线性回归(不是通常的最小二乘回归)去趋势每个网格单元的时间序列,例如,sm.RLM()
我发现了一些可能有用的函数,例如 xscale.signal.fitting.detrend
或 here,但它们都使用了普通的最小二乘法。
我可以使用 for
制作一个脚本,该脚本将 sm.RLM()
应用于网格单元(即对于像素 1,应用 sm.RLM()
,连接到 DataArray 以获得结果,然后移动到像素 2, apply sm.RLM()
,concatenate,...),但它太慢了(我糟糕的编码技能......)。
这是一个玩具示例 xarray.DataArray()
(修改自 https://towardsdatascience.com/basic-data-structures-of-xarray-80bab8094efa)
np.random.seed(111)
temperature_3d = 15 + 10 * np.random.randn(3,3,30) # 3-dimensional
lat = np.random.uniform(low=-90,high=90,size=(3,3))
lon = np.random.uniform(low=-180,high=180,3))
days = np.linspace(1,30,30)
# round to two digits after decimal point
temperature_3d = np.around(temperature_3d,decimals=2)
lat,lon = np.around([lat,lon],decimals=2)
da = xr.DataArray(data=temperature_3d,coords={"lat": (["x","y"],lat),"lon": (["x",lon),"day": days},dims=["x","y","day"])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。