在R语言中,gratia包提供了一个强大的工具来可视化广义加性模型(GAM)的平滑项效果。然而,当我们希望将地理信息系统(GIS)数据,如国家边界,添加到这些图中时,可能会遇到一些挑战。今天,我们将探讨如何在gratia生成的平滑曲面图中添加国家边界的实例。
背景介绍
假设我们有一个关于语音发音的GAM模型,包含了经度和纬度作为平滑项。我们希望在图中不仅显示模型的平滑效果,还要展示特定国家的边界,如梵蒂冈。
library(giscoR) library(mgcv) library(gratia) library(dplyr) library(sf) library(ggplot2) # 获取梵蒂冈的数据 vatican <- gisco_get_countries(resolution = "10", country = "VAT") %>% mutate(res = "10M") # 模拟数据 set.seed(1) sound <- sample(0:5, size = 960, replace = TRUE) word <- as.factor(rep(c("alpha", "bravo", "charlie", "delta", "echo", "foxtrot"), each = 4)) age <- as.factor(rep(c("young", "old"), times = 480)) gender <- as.factor(rep(c("female", "female", "male", "male"),