几年前的描述了如何提取用于绘制拟合gam模型的平滑分量的数据。它是有效的,但只有当有一个平滑的变量时。我有多个平滑变量,不幸的是,我只能从系列的最后一个变量中提取平滑。下面是一个示例:
library(mgcv)
a = rnorm(100)
b = runif(100)
y = a*b/(a+b)
mod = gam(y~s(a)+s(b))
summary(mod)
plotData <- list()
trace(mgcv:::plot.gam, at=list(c(25,3,3,3)),
#this gets you to the location wher
我试图在同一个图中绘制三个gam函数(相同的单位),x轴是日期(1月1日至12月31日),y轴是浓度。
## pm, macc and pred in a same plot
gam.pre.pm10.time<-mgcv::gam(pre.pm10~s(time),data=mypred1)
plot(gam.pre.pm10.time,shade=T,xaxt="n",scale=-1,lty=3)
axis(1,labels=c("Jan", "Feb", "Mar", "Apr", "May
我一直在用R.中的mgcv来拟合不同层次的GAM(以下简称HGAM),我可以毫无问题地提取和绘制它们的随机效应预测。相反,提取和绘制他们对固定效果的预测只对某些模型有效,我不知道为什么。
这里有一个实际例子,它指的是在不同地点取样的两种花卉(Taxon)的颜色光谱(也讨论了):
rm(list=ls()) # wipe R's memory clean
library(pacman) # load packages, installing them from CRAN if needed
p_load(RCurl) # allows accessing data from URL
ss
我想用plot_ly软件包在R中进行三维曲面绘制。
我有三个向量,包括x,y和z值,如下所示;
x <- rep(1,times=40) # 40 values
y <- rep(2,times=40)
z <- rep(10, times=40)
就add_surface函数的用法而言,据我正确理解,我需要一个x-y坐标上z值的矩阵。
否则会给我带来错误;
plot_ly(x = x, y = y, z = z) %>% add_surface()
Error: `z` must be a numeric matrix
我怎样才能做z矩阵?
(在这里,z矩阵应该有
我有一个GAM,现在添加了一个国家作为一个因素,来模拟国家内部的关系(我认为这样做是正确的,如果没有的话,请告诉我),现在我希望绘制我的新模型
! Aesthetics must be either length 1 or the same as the data (480): y
这是我使用的代码和我的数据片段(如果您需要我的整个数据集,我可以附加它),希望有人能够绘制这个数据集,我认为这个错误是因为我没有正确地绘制模型,现在我添加了国家作为一个因素。
模型代码;
mod = gam(gdp_per_capita ~ s(fisheries_production_pc, k = 25, bs
我在R中有一个数据列表,列表中的每个元素都是具有相同协变量的数据。但是,对于每个数据,协变量的值是不同的,因为我为每个数据应用了一个具有不同组合的平滑算法。
然后,我为每个数据设置了一个gam。我现在要做的是为每个协变量绘制一个图,并为每个数据绘制平滑线。
更新
只是为了共享一些代码,并使其更加清晰:现在我想做一些类似于面-图的事情。其中,每个地块包含不同gams的协变量(x1和x2)的平滑。我希望这有道理..。
library(mgcv)
# make list of dataframes for storing data
data = vector("list", len