使用点过程模型进行预测
Using a Point Process model for Prediction
我正在分析救护车事故数据。该数据集涵盖三年,大约有 250000 起事件。
初步分析,事件分布与人口分布有关。
使用 spatstat 拟合点过程模型与此一致,在部分残差图中具有广泛的一致性。
但是,据信在 "social hours",即周五、周六晚上、public 节假日期间,趋势与人口相关趋势有所不同。
我想获取数据的子集,看看它们与总体情况有何不同。由于数据子集中固有的点数较少,我该如何解释强度差异?
或者有没有办法直接用我的拟合模型做大图?
由于存在隐私问题,很难提供数据,而且由于数据集的大小,很难模拟这种情况。我绝不是统计学家,因此我在这里有点不知所措。我有一份
"Spatial Point Patterns Methodology and Applications with R" 这很有用。
到目前为止,我将尝试使用伪代码来解释我的方法..
250k_pts.ppp <- ppp(the_ambulance_data x and y, the_window)
1.3m_census_pts <- ppp(census_data x and y, the_window)
目测密度面的最佳带宽似乎是bw.scott
。这用于拟合点的密度表面。
inc_density <- density(250k_pts.ppp, bw.scott)
pop_density <- density(1.3m_census_pts, bw.scott)
fit0 <- ppm(inc_density ~ 1)
fit_pop <- ppm(inc_density ~ pop_density)
partials <- parres(fit_pop, "pop_density")
绘制部分残差表明与线性拟合的一致性是广泛可接受的,某些区域 'wobble'..
接下来我想做什么:
the_ambulance_data %>% group_by(day_of_week, hour_of_day) %>%
select(x_coord, y_coord) %>% nest() -> nested_day_hour_pts
获取这些列表项之一并创建 ppp,比如 fri_2300hr_ppp;
fri23.den <- density(fri_2300hr_ppp, bw.scott)
fit_fri23 <- fit(fri_2300hr_ppp ~ pop_density)
然后如何将此 ppp 或密度与更广泛的模型进行比较?可以做分散、聚类等特征检验。。可以比较fit_pop
和fit_fri23
的部分残差吗?
我如何控制点数对密度的影响 - 即我有 250k 点而不是子集中的 8000 点。我在想也许是密度表面的分位数?
将标记附加到代表subset/categories 感兴趣的救护车数据(例如'busy' 与'non-busy')。对于非正式或非参数分析,使用 relrisk
等工具,或在使用 split.ppp
分离不同类型的点后使用 density.splitppp
。对于正式分析(考虑样本大小等),您应该将多个候选模型拟合到相同的数据,一个模型具有 busy/nonbusy 效果,另一个模型没有这种效果,然后使用 anova.ppm
正式测试是否有busy/nonbusy效果。参见书中提到的第 14 章。
我正在分析救护车事故数据。该数据集涵盖三年,大约有 250000 起事件。 初步分析,事件分布与人口分布有关。 使用 spatstat 拟合点过程模型与此一致,在部分残差图中具有广泛的一致性。 但是,据信在 "social hours",即周五、周六晚上、public 节假日期间,趋势与人口相关趋势有所不同。
我想获取数据的子集,看看它们与总体情况有何不同。由于数据子集中固有的点数较少,我该如何解释强度差异?
或者有没有办法直接用我的拟合模型做大图?
由于存在隐私问题,很难提供数据,而且由于数据集的大小,很难模拟这种情况。我绝不是统计学家,因此我在这里有点不知所措。我有一份
"Spatial Point Patterns Methodology and Applications with R" 这很有用。
到目前为止,我将尝试使用伪代码来解释我的方法..
250k_pts.ppp <- ppp(the_ambulance_data x and y, the_window)
1.3m_census_pts <- ppp(census_data x and y, the_window)
目测密度面的最佳带宽似乎是bw.scott
。这用于拟合点的密度表面。
inc_density <- density(250k_pts.ppp, bw.scott)
pop_density <- density(1.3m_census_pts, bw.scott)
fit0 <- ppm(inc_density ~ 1)
fit_pop <- ppm(inc_density ~ pop_density)
partials <- parres(fit_pop, "pop_density")
绘制部分残差表明与线性拟合的一致性是广泛可接受的,某些区域 'wobble'..
接下来我想做什么:
the_ambulance_data %>% group_by(day_of_week, hour_of_day) %>%
select(x_coord, y_coord) %>% nest() -> nested_day_hour_pts
获取这些列表项之一并创建 ppp,比如 fri_2300hr_ppp;
fri23.den <- density(fri_2300hr_ppp, bw.scott)
fit_fri23 <- fit(fri_2300hr_ppp ~ pop_density)
然后如何将此 ppp 或密度与更广泛的模型进行比较?可以做分散、聚类等特征检验。。可以比较fit_pop
和fit_fri23
的部分残差吗?
我如何控制点数对密度的影响 - 即我有 250k 点而不是子集中的 8000 点。我在想也许是密度表面的分位数?
将标记附加到代表subset/categories 感兴趣的救护车数据(例如'busy' 与'non-busy')。对于非正式或非参数分析,使用 relrisk
等工具,或在使用 split.ppp
分离不同类型的点后使用 density.splitppp
。对于正式分析(考虑样本大小等),您应该将多个候选模型拟合到相同的数据,一个模型具有 busy/nonbusy 效果,另一个模型没有这种效果,然后使用 anova.ppm
正式测试是否有busy/nonbusy效果。参见书中提到的第 14 章。