GWmodel-Lab / GWmodelS

https://gwmodel-lab.github.io/GWmodelS/
12 stars 3 forks source link

Demo request for GTWR #12

Closed yangcheng258 closed 1 week ago

yangcheng258 commented 1 week ago

请问有GTWR的demo吗?我看到GWmodel有GWR的demo。最主要的是temporal- spatial的distance matrix暂时还不太会自己定义。谢谢啦!@RoryuOu

HPDell commented 1 week ago

你用的是那个 R 包 GWmodel 还是桌面软件 GWmodelS?

RoryuOu commented 1 week ago

不知道您参考的GWR的使用是这篇推文吗:https://mp.weixin.qq.com/s/ifiTSNQV4LQ_NCMsSq_TxQ ? GTWR的界面与GWR的基本相同,里面多了一个可以选择time stamp field的选项,如果您提供计算的数据里有这样的时间属性,选择上即可。不太建议您使用自定义的distance matrix用于GTWR计算。

yangcheng258 commented 1 week ago

强烈请求developers以及各位老师们出一个GTWR demo在GWModel的包里,appreciated it!!!我之前在research gate论坛里也看到了相同的问题,但是一直没有得到解决。真的挺遗憾的。 research gate st.dist()

@RoryuOu :我选择R是因为我的数据量比较大,运转桌面版本GTWModelS一直闪退,所以想用R稳定一点。非常非常感谢你的回答!这是我的configuration。应该是对的了嘛?

image

@HPDell @RoryuOu 我尝试使用R包 GWmodel,但在Manual中未找到关于 st.dist() 函数的例子,因此不知如何下手。请问如何使用x, y, t坐标生成这个 st.dMat ?以Bo Huang 黄老师的housing demo example举例,在R里面请问要怎么样才能用 x y time生成这个st.dist()或者怎么样才能过用在GTWR里?https://www.researchgate.net/publication/329518786_GTWR_ADDIN_Updated_and_Valid_till_Jan_1_2025

Screenshot 2024-11-04 at 9 43 55 AM

追加一些问题个问题:

  1. 请问 数据结构应该是什么样子,或者要怎么样去生成各种bandwidth以及spatial temporal distance matrix? 这是R包 gtwr gtwr(formula, data, regression.points, obs.tv, reg.tv, st.bw, kernel="bisquare", adaptive=FALSE, p=2, theta=0, longlat=F,lamda=0.05,t.units = "auto",ksi=0, st.dMat)

这是st.dist() function去创建spatial temporal distance matrix st.dist(dp.locat, rp.locat, obs.tv, reg.tv,focus=0, p=2, theta=0, longlat=F,lamda=0.05,t.units = "auto", ksi=0, s.dMat,t.dMat)

  1. 标准的程序是选择bandwidth然后带到gtwr(),可是st.bw这里也需要这个st.dMat。 bw.gtwr(formula, data, obs.tv, approach="CV",kernel="bisquare",adaptive=FALSE, p=2, theta=0, longlat=F,lamda=0.05,t.units = "auto",ksi=0, st.dMat, verbose=T)

  2. 请问obs.tv的default是什么?

一个RMD的demo或者在安装包里面的实例会很有帮助。

HPDell commented 1 week ago

如果是 R 包的问题,请在 GWmodel 仓库中提问具体信息。或者可以给卢宾宾老师发邮件反馈这个问题。


针对这个问题,obs.tv 应该设置为时间列,这样的话 bt.gtwr 中的 st.dMat 一般是不用设置的,程序会自动计算。如果要使用 st.dist 设置距离矩阵,那么 dp.locat 设置为空间坐标, obs.tv 设置为时间坐标。

RoryuOu commented 1 week ago
  1. gtwr函数的参数中,必须提供的是formuladataobs.tvst.bwst.bw决定了bandwidth的大小;obs.tv是数据的时间列,需要手动指定。 在不指定st.dMat的情况下,程序会自动根据dataobs.tv,以及lamda(default:0.05),计算spatial temporal distance matrix,用于GTWR的解算。如果手动指定st.dMat,程序直接使用提供的st.dMat,而不再计算时空距离(gtwr函数的lamda不再影响计算结果)
  2. bw.gtwr的逻辑也是一样的,可以不指定st.dMat进行带宽选择。
  3. obs.tv是数据的时间属性,没有default,需要指定具体的时间列。
yangcheng258 commented 1 week ago

Much appreciated! Thank you both so much! Wishing you all the best in your future endeavors!