Questions tagged «mgcv»

mgcv是用于混合GAM计算工具的R包,具有GCV / AIC / REML平滑度估计功能。

2
广义加性模型-除Simon Wood之外,还有哪些人对其进行研究?
我越来越多地使用GAM。当我为它们的各个组成部分(平滑参数选择,各种样条基,平滑项的p值)提供参考时,它们都是来自英国巴斯大学的一位研究员Simon Wood。 他还是mgcvR 的维护者,R实现了他的工作。 mgcv非常复杂,但效果非常好。 肯定有较旧的东西。最初的想法归功于Hastie&Tibshirani,Ruppert等人在2003年撰写了一本更古老的教科书。 作为一名应聘者,我对学术统计学家中的时代精神没有太多的感觉。他的工作如何看待?一位研究人员在一个领域做了这么多的事情有点奇怪吗?还是因为没有放入其中而没有引起其他人的注意mgcv?我不认为GAM会使用太多,尽管经过统计学培训的人员可以合理地访问该材料,并且该软件已经相当完善。有很多“背景故事”吗? 来自统计期刊的观点文章和其他类似内容的建议将不胜感激。

1
如何在mgcv GAM模型中调整平滑
我试图弄清楚如何在mgcv:gam模型中控制平滑参数。 我有一个二项式变量,我想主要将其建模为固定网格上x和y坐标的函数,以及一些其他影响较小的变量。过去,我使用locfit包和(x,y)值构建了一个相当不错的局部回归模型。 但是,我想尝试将其他变量合并到模型中,看起来通用加性模型(GAM)很有可能。看完gam和mgcv软件包后,它们都具有GAM功能,我选择了后者,因为邮件列表线程中的许多注释似乎都推荐它。缺点是它似乎不支持像黄土或locfit这样的局部回归平滑器。 首先,我只想尝试仅使用(x,y)坐标来复制locfit模型。我尝试使用常规和张量积平滑: my.gam.te <- gam(z ~ te(x, y), family=binomial(logit), data=my.data, scale = -1) my.gam.s <- gam(z ~ s(x, y), family=binomial(logit), data=my.data, scale = -1) 但是,绘制来自模型的预测,与locfit模型相比,它们要平滑得多。因此,我一直在尝试调整模型,使其不会过度平滑。我曾尝试过调整参数sp和k,但是我不清楚它们如何影响平滑度。在locfit中,nn参数控制所使用邻域的跨度,较小的值允许较少的平滑和更多的“摆动”,这有助于捕获网格上二项式结果的概率快速变化的某些区域。我将如何设置gam模型以使其表现相似?
14 r  smoothing  mgcv 

1
广义加性模型(GAM),交互作用和协变量
我一直在探索许多用于预测的工具,并且发现广义可加模型(GAM)具有最大的潜力。GAM非常棒!它们允许非常简洁地指定复杂的模型。但是,同样的简洁性使我有些困惑,特别是在GAM如何理解交互作用项和协变量方面。 考虑一个示例数据集(发布后的代码可重现),其中y是一个由几个高斯扰动的单调函数,外加一些噪声: 数据集具有一些预测变量: x:数据索引(1-100)。 w:辅助功能标记出y存在高斯的部分。w的值为1-20,其中x介于11到30之间,以及51到70之间。否则w为0。 w2:w + 1,因此没有0值。 R的mgcv软件包可轻松为这些数据指定许多可能的模型: 模型1和2非常直观。默认情况下,y仅根据索引值进行x平滑度预测会产生一些模糊正确的提示,但过于平滑。y仅根据w结果预测存在于的“平均高斯”模型中y,而没有其他w值的“感知”模型,所有其他数据点的值均为0。 模型3同时使用x和w作为1D平滑,产生了很好的拟合。模型4使用x并w在2D平滑中使用,也非常适合。这两个模型非常相似,尽管不完全相同。 模型5 x通过“ 模型” w。模型6则相反。mgcv的文档指出,“ by参数可确保平滑函数乘以[by参数中给定的协变量]”。那么5和6型不应该等效吗? 模型7和8使用预测变量之一作为线性项。这些对我来说很直观,因为它们只是在使用GLM对这些预测变量进行处理,然后将影响添加到模型的其余部分。 最后,模型9与模型5相同,除了模型x“通过” w2(为w + 1)进行了平滑处理。对我而言,奇怪的是,w2“ by”交互中缺少零会产生明显不同的效果。 所以,我的问题是: 3型和4型的规格之间有何区别?还有其他例子可以更清楚地说明差异吗? 确切地说,“通过”在这里做什么?我在伍德的书中读到的大部分内容以及该网站的内容都表明“ by”会产生乘法效应,但是我很难理解它的直觉。 为什么模型5和9之间会有如此显着的差异? 接下来是Reprex,用R编写。 library(magrittr) library(tidyverse) library(mgcv) set.seed(1222) data.ex <- tibble( x = 1:100, w = c(rep(0, 10), 1:20, rep(0, 20), 1:20, rep(0, 30)), w2 = …
12 r  modeling  gam  mgcv 

1
R / mgcv:为什么te()和ti()张量积产生不同的曲面?
的mgcv软件包R具有两个功能,用于拟合张量积相互作用:te()和ti()。我了解两者之间的基本分工(拟合非线性交互与将这种交互分解为主要效果和交互)。我不明白的是为什么te(x1, x2)而ti(x1) + ti(x2) + ti(x1, x2)可能产生(略)不同的结果。 MWE(改编自?ti): require(mgcv) test1 <- function(x,z,sx=0.3,sz=0.4) { x <- x*20 (pi**sx*sz)*(1.2*exp(-(x-0.2)^2/sx^2-(z-0.3)^2/sz^2)+ 0.8*exp(-(x-0.7)^2/sx^2-(z-0.8)^2/sz^2)) } n <- 500 x <- runif(n)/20;z <- runif(n); xs <- seq(0,1,length=30)/20;zs <- seq(0,1,length=30) pr <- data.frame(x=rep(xs,30),z=rep(zs,rep(30,30))) truth <- matrix(test1(pr$x,pr$z),30,30) f <- test1(x,z) y <- f + rnorm(n)*0.2 par(mfrow = c(2,2)) # …
11 r  gam  mgcv  conditional-probability  mixed-model  references  bayesian  estimation  conditional-probability  machine-learning  optimization  gradient-descent  r  hypothesis-testing  wilcoxon-mann-whitney  time-series  bayesian  inference  change-point  time-series  anova  repeated-measures  statistical-significance  bayesian  contingency-tables  regression  prediction  quantiles  classification  auc  k-means  scikit-learn  regression  spatial  circular-statistics  t-test  effect-size  cohens-d  r  cross-validation  feature-selection  caret  machine-learning  modeling  python  optimization  frequentist  correlation  sample-size  normalization  group-differences  heteroscedasticity  independence  generalized-least-squares  lme4-nlme  references  mcmc  metropolis-hastings  optimization  r  logistic  feature-selection  separation  clustering  k-means  normal-distribution  gaussian-mixture  kullback-leibler  java  spark-mllib  data-visualization  categorical-data  barplot  hypothesis-testing  statistical-significance  chi-squared  type-i-and-ii-errors  pca  scikit-learn  conditional-expectation  statistical-significance  meta-analysis  intuition  r  time-series  multivariate-analysis  garch  machine-learning  classification  data-mining  missing-data  cart  regression  cross-validation  matrix-decomposition  categorical-data  repeated-measures  chi-squared  assumptions  contingency-tables  prediction  binary-data  trend  test-for-trend  matrix-inverse  anova  categorical-data  regression-coefficients  standard-error  r  distributions  exponential  interarrival-time  copula  log-likelihood  time-series  forecasting  prediction-interval  mean  standard-error  meta-analysis  meta-regression  network-meta-analysis  systematic-review  normal-distribution  multiple-regression  generalized-linear-model  poisson-distribution  poisson-regression  r  sas  cohens-kappa 

1
用mgcv gam进行随机效应预测
我对使用mgcv中的gam来模拟单个船的简单随机效应(在渔业中随时间反复旅行)建模总的鱼获量感兴趣。我有98个科目,所以我想我会使用gam而不是gamm来模拟随机效果。我的模型是: modelGOM <- gam(TotalFish ~ factor(SetYear) + factor(SetMonth) + factor(TimePeriod) + s(SST) + s(VesselID, bs = "re", by = dum) + s(Distance, by = TimePeriod) + offset(log(HooksSet)), data = GOM, family = tw(), method = "REML") 我已经用bs =“ re”和by = dum编码了随机效应(我读到这将使我能够将血管效应预测为其预测值或零)。“ dum”是1的向量。 该模型可以运行,但是我在预测时遇到问题。我选择了其中一个用于预测的容器(Vessel21),并选择了除预测感兴趣的预测变量(距离)以外的所有其他事物的平均值。 data.frame("Distance"=seq(min(GOM$Distance),max(GOM$Distance),length = 100), "SetYear" = '2006', "SetMonth" …

1
如何解释GAM P值?
我叫休,我是一名使用广义加性模型进行探索性分析的博士研究生。 我不确定如何解释来自MGCV软件包的p值,并想检查我的理解(我使用的是1.7-29版,并已查阅了Simon Wood的一些文档)。我首先寻找了其他简历问题,但最相关的问题似乎与一般回归有关,尤其不是GAM p值。 我知道GAM有很多不同的参数,而p值仅是近似值。但是,我只是简单地开始看看我的协变量是否存在任何“信号”。例如: Y〜s(a,k = 3)+ s(b,k = 3)+ s(c,k = 3)+ s(d,k = 3)+ s(e,k = 3) 平滑项的近似p值: s(a)= 0.000473 s(b)= 1.13e-05 s(c)= 0.000736 s(d)= 0.887579 s(e)= 0.234017 ř ²(调整)= 0.62\quad 解释的偏差= 63.7% GCV分数= 411.17\quad 规模估算值= 390.1\quad n = 120 由于格式化,我剪切了df列等。我将每个协变量的p值解释为测试相应的平滑函数是否显着降低模型偏差,其中p是获得数据的概率至少与在零模型0下观察到的“相对不可信”。 这将意味着(例如,在alpha = 0.05的情况下)与零模型相比,平滑函数不会减小“ d”和“ e”的偏差,而对于其他项却会减小。因此,(d)和(e)不会在回归中添加重要信息,并且解释的偏差可归结为(a)(b)(c)? 任何建议将不胜感激,并祝您研究顺利。
10 p-value  mgcv 

2
GAM交叉验证以测试预测误差
我的问题与mgcv R软件包中的GAM有关。由于样本量较小,我想使用留一法交叉验证来确定预测误差。这合理吗?有没有包装或代码,我该怎么做?ipred软件包中的errorest()功能不起作用。一个简单的测试数据集是: library(mgcv) set.seed(0) dat <- gamSim(1,n=400,dist="normal",scale=2) b<-gam(y~s(x0)+s(x1)+s(x2)+s(x3),data=dat) summary(b) pred <- predict(b, type="response") 非常感谢您的帮助!
10 r  cross-validation  gam  mgcv 

4
如何获取mgcv中plot.gam中使用的值?
我想找出在mgcv软件包(x, y)中绘图所使用的值。有谁知道我如何提取或计算这些值?plot(b, seWithMean=TRUE) 这是一个例子: library(mgcv) set.seed(0) dat <- gamSim(1, n=400, dist="normal", scale=2) b <- gam(y~s(x0), data=dat) plot(b, seWithMean=TRUE)

1
自适应GAM在mgcv中平滑
Simon Wood关于GAM的书及其相关的R包mgcv在谈到GAM理论以及对真实数据和模拟数据进行模型拟合时都非常详尽且内容丰富。 对于一维平滑,除了决定是否实施循环基函数和自适应基函数外,实际上没有什么可担心的,与三次,薄板和P样条平滑相比,它可以提供非常不同的预测结果,因为适应性情况下,多个GAM沿着样条曲线拟合到不同区域。据我所知,时间序列建模中循环基数很常见,而当数据相对于响应变量变化很大时,应该考虑采用自适应平滑。但是,应该“谨慎并谨慎地”使用自适应平滑。 我已经研究GAM一段时间了,考虑到我的研究问题,我发现自己在实施顺利方面的想法很多。mgcv包括17种不同的平滑效果(根据我的数量)。我已经考虑了三次和P样条平滑。 我现在的问题是:如果最终目标是将拟合的GAM用于预测目的,那么何时应考虑对非自适应对应变量进行自适应平滑?就我的目的而言,我坚持使用默认的GCV平滑度标准,即使该标准可能会变得不够平滑。 应用生态GAM的文献在不断增长,但是我还没有遇到能够实现自适应平滑的研究。 任何建议表示赞赏。
9 r  mgcv 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.