相关疑难解决方法(0)

解释R函数的输出bs()(B样条基矩阵)

我经常使用B样条进行回归.到目前为止,我从来不需要bs详细了解输出:我只选择我感兴趣的模型,并适合它lm.但是,我现在需要在外部(非R)代码中重现b样条模型.那么,矩阵产生的含义是什么bs?例:

x <- c(0.0, 11.0, 17.9, 49.3, 77.4)
bs(x, df = 3, degree = 1) # generate degree 1 (linear) B-splines with 2 internal knots
#              1         2         3
# [1,] 0.0000000 0.0000000 0.0000000    
# [2,] 0.8270677 0.0000000 0.0000000    
# [3,] 0.8198433 0.1801567 0.0000000    
# [4,] 0.0000000 0.7286085 0.2713915    
# [5,] 0.0000000 0.0000000 1.0000000   
# attr(,"degree")
# [1] 1
# attr(,"knots")
# 33.33333% 66.66667% 
#  13.30000  38.83333 
# attr(,"Boundary.knots")
# [1]  0.0 77.4
# …
Run Code Online (Sandbox Code Playgroud)

r matrix bspline

9
推荐指数
1
解决办法
4919
查看次数

将拟合的回归样条(由'bs'或'ns'构造)导出为分段多项式

比如下面的一个结,二度,样条:

library(splines)
library(ISLR)
fit.spline <- lm(wage~bs(age, knots=c(42), degree=2), data=Wage)
summary(fit.spline)
Run Code Online (Sandbox Code Playgroud)

我看到了我没想到的估计.

Coefficients:
                                  Estimate  Std. Error   t value    Pr(>|t|)   
(Intercept)                           57.349   3.950   14.518   < 2e-16 ***
bs(age, knots = c(42), degree = 2)1   59.511   5.786   10.285   < 2e-16 ***
bs(age, knots = c(42), degree = 2)2   65.722   4.076   16.122   < 2e-16 ***
bs(age, knots = c(42), degree = 2)3   37.170   9.722    3.823  0.000134 ***
Run Code Online (Sandbox Code Playgroud)

有没有办法在结之前和之后提取二次模型(及其系数)?也就是说,如何在切割点之前和之后提取两个二次模型age = 42

使用summary(fit.spline)产量系数,但(据我的理解)它们对解释没有意义.

regression r spline lm polynomials

4
推荐指数
1
解决办法
1408
查看次数

标签 统计

r ×2

bspline ×1

lm ×1

matrix ×1

polynomials ×1

regression ×1

spline ×1