首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MGCV得到设计矩阵

MGCV得到设计矩阵
EN

Stack Overflow用户
提问于 2015-06-09 10:14:28
回答 1查看 240关注 0票数 3

具有样条基的GAM回归由以下成本函数定义:

cost = ||y - S \beta ||^2 + scale * integral(|S'' \beta|^2)

其中S是由样条定义的设计矩阵。

在R中,我可以使用以下代码计算gam

代码语言:javascript
复制
library('mgcv')
data = data.frame('x'=c(1,2,3,4,5), 'y'=c(1,0,0,0,1))

g = gam(y~s(x, k = 4),family = 'binomial', data = data, scale = 0.5)
plot(g)

我想得到由S函数生成的设计矩阵s()

我怎么能这么做?

EN

回答 1

Stack Overflow用户

发布于 2021-12-24 16:51:08

我相信有两种方法可以从gamObject中获得设计矩阵

代码语言:javascript
复制
library('mgcv')
data <- data.frame('x'=c(1,2,3,4,5), 'y'=c(1,0,0,0,1))

g <-  gam(y~s(x, k = 4),family = 'binomial', data = data, scale = 0.5)
plot(g)

(option1 <- predict(g, type = "lpmatrix"))
# (Intercept)      s(x).1      s(x).2     s(x).3
# 1           1  1.18270529 -0.39063809 -1.4142136
# 2           1  0.94027407  0.07402655 -0.7071068
# 3           1 -0.03736554  0.32947477  0.0000000
# 4           1 -0.97272283  0.21209396  0.7071068
# 5           1 -1.11289099 -0.22495720  1.4142136
# attr(,"model.offset")
# [1] 0
(option2 <- model.matrix.gam(g))
# (Intercept)      s(x).1      s(x).2     s(x).3
# 1           1  1.18270529 -0.39063809 -1.4142136
# 2           1  0.94027407  0.07402655 -0.7071068
# 3           1 -0.03736554  0.32947477  0.0000000
# 4           1 -0.97272283  0.21209396  0.7071068
# 5           1 -1.11289099 -0.22495720  1.4142136
# attr(,"model.offset")
# [1] 0
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30729174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档