File: splines-Ex.Rout.save

package info (click to toggle)
r-base 3.1.1-1
  • links: PTS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 85,396 kB
  • sloc: ansic: 306,777; fortran: 91,908; sh: 11,216; makefile: 5,311; yacc: 4,994; tcl: 4,562; objc: 746; perl: 655; asm: 553; java: 31; sed: 6
file content (588 lines) | stat: -rw-r--r-- 20,486 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588

R version 3.1.1 RC (2014-07-04 r66081) -- "Sock it to Me"
Copyright (C) 2014 The R Foundation for Statistical Computing
Platform: x86_64-unknown-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

  Natural language support but running in an English locale

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> pkgname <- "splines"
> source(file.path(R.home("share"), "R", "examples-header.R"))
> options(warn = 1)
> library('splines')
> 
> base::assign(".oldSearch", base::search(), pos = 'CheckExEnv')
> cleanEx()
> nameEx("asVector")
> ### * asVector
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: asVector
> ### Title: Coerce an Object to a Vector
> ### Aliases: asVector
> ### Keywords: models
> 
> ### ** Examples
> 
> require(stats)
> ispl <- interpSpline( weight ~ height,  women )
> pred <- predict(ispl)
> class(pred)
[1] "xyVector"
> utils::str(pred)
List of 2
 $ x: num [1:51] 58 58.3 58.6 58.8 59.1 ...
 $ y: num [1:51] 115 115 116 117 117 ...
 - attr(*, "class")= chr "xyVector"
> asVector(pred)
 [1] 115.0000 115.4908 116.0170 116.6137 117.3153 118.1214 118.9894 119.8747
 [9] 120.7384 121.5787 122.4078 123.2380 124.0759 124.9181 125.7601 126.5980
[17] 127.4340 128.2735 129.1220 129.9792 130.8301 131.6572 132.4454 133.2228
[25] 134.0528 135.0000 136.1000 137.2727 138.4090 139.4026 140.2416 141.0276
[33] 141.8690 142.8564 143.9707 145.1507 146.3356 147.4868 148.6046 149.6935
[41] 150.7604 151.8353 152.9613 154.1817 155.5178 156.9329 158.3808 159.8173
[49] 161.2269 162.6180 164.0000
> 
> 
> 
> cleanEx()
> nameEx("backSpline")
> ### * backSpline
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: backSpline
> ### Title: Monotone Inverse Spline
> ### Aliases: backSpline
> ### Keywords: models
> 
> ### ** Examples
> 
> require(graphics)
> ispl <- interpSpline( women$height, women$weight )
> bspl <- backSpline( ispl )
> plot( bspl )                   # plots over the range of the knots
> points( women$weight, women$height )
> 
> 
> 
> cleanEx()
> nameEx("bs")
> ### * bs
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: bs
> ### Title: B-Spline Basis for Polynomial Splines
> ### Aliases: bs
> ### Keywords: smooth
> 
> ### ** Examples
> 
> require(stats); require(graphics)
> bs(women$height, df = 5)
                 1           2           3            4           5
 [1,] 0.000000e+00 0.000000000 0.000000000 0.000000e+00 0.000000000
 [2,] 4.534439e-01 0.059857872 0.001639942 0.000000e+00 0.000000000
 [3,] 5.969388e-01 0.203352770 0.013119534 0.000000e+00 0.000000000
 [4,] 5.338010e-01 0.376366618 0.044278426 0.000000e+00 0.000000000
 [5,] 3.673469e-01 0.524781341 0.104956268 0.000000e+00 0.000000000
 [6,] 2.001640e-01 0.595025510 0.204719388 9.110787e-05 0.000000000
 [7,] 9.110787e-02 0.566326531 0.336734694 5.830904e-03 0.000000000
 [8,] 3.125000e-02 0.468750000 0.468750000 3.125000e-02 0.000000000
 [9,] 5.830904e-03 0.336734694 0.566326531 9.110787e-02 0.000000000
[10,] 9.110787e-05 0.204719388 0.595025510 2.001640e-01 0.000000000
[11,] 0.000000e+00 0.104956268 0.524781341 3.673469e-01 0.002915452
[12,] 0.000000e+00 0.044278426 0.376366618 5.338010e-01 0.045553936
[13,] 0.000000e+00 0.013119534 0.203352770 5.969388e-01 0.186588921
[14,] 0.000000e+00 0.001639942 0.059857872 4.534439e-01 0.485058309
[15,] 0.000000e+00 0.000000000 0.000000000 0.000000e+00 1.000000000
attr(,"degree")
[1] 3
attr(,"knots")
33.33333% 66.66667% 
 62.66667  67.33333 
attr(,"Boundary.knots")
[1] 58 72
attr(,"intercept")
[1] FALSE
attr(,"class")
[1] "bs"     "basis"  "matrix"
> summary(fm1 <- lm(weight ~ bs(height, df = 5), data = women))

Call:
lm(formula = weight ~ bs(height, df = 5), data = women)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.31764 -0.13441  0.03922  0.11096  0.35086 

Coefficients:
                    Estimate Std. Error t value Pr(>|t|)    
(Intercept)         114.8799     0.2167 530.146  < 2e-16 ***
bs(height, df = 5)1   3.4657     0.4595   7.543 3.53e-05 ***
bs(height, df = 5)2  13.0300     0.3965  32.860 1.10e-10 ***
bs(height, df = 5)3  27.6161     0.4571  60.415 4.70e-13 ***
bs(height, df = 5)4  40.8481     0.3866 105.669 3.09e-15 ***
bs(height, df = 5)5  49.1296     0.3090 158.979  < 2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.2276 on 9 degrees of freedom
Multiple R-squared:  0.9999,	Adjusted R-squared:  0.9998 
F-statistic: 1.298e+04 on 5 and 9 DF,  p-value: < 2.2e-16

> 
> ## example of safe prediction
> plot(women, xlab = "Height (in)", ylab = "Weight (lb)")
> ht <- seq(57, 73, length.out = 200)
> lines(ht, predict(fm1, data.frame(height = ht)))
Warning in bs(height, degree = 3L, knots = c(62.6666666666667, 67.3333333333333 :
  some 'x' values beyond boundary knots may cause ill-conditioned bases
> ## Don't show: 
> ## Consistency:
> x <- c(1:3, 5:6)
> stopifnot(identical(bs(x), bs(x, df = 3)),
+           identical(bs(x, df = 4), bs(x, df = 4, knots = NULL)), # not true till 2.15.2
+           !is.null(kk <- attr(bs(x), "knots")), # not true till 1.5.1
+           length(kk) == 0)
> ## End Don't show
> 
> 
> cleanEx()
> nameEx("interpSpline")
> ### * interpSpline
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: interpSpline
> ### Title: Create an Interpolation Spline
> ### Aliases: interpSpline
> ### Keywords: models
> 
> ### ** Examples
> 
> require(graphics); require(stats)
> ispl <- interpSpline( women$height, women$weight )
> ispl2 <- interpSpline( weight ~ height,  women )
> # ispl and ispl2 should be the same
> plot( predict( ispl, seq( 55, 75, length.out = 51 ) ), type = "l" )
> points( women$height, women$weight )
> plot( ispl )    # plots over the range of the knots
> points( women$height, women$weight )
> splineKnots( ispl )
 [1] 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
> 
> 
> 
> cleanEx()
> nameEx("ns")
> ### * ns
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: ns
> ### Title: Generate a Basis Matrix for Natural Cubic Splines
> ### Aliases: ns
> ### Keywords: smooth
> 
> ### ** Examples
> 
> require(stats); require(graphics)
> ns(women$height, df = 5)
                 1            2           3          4             5
 [1,] 0.000000e+00 0.000000e+00  0.00000000 0.00000000  0.0000000000
 [2,] 7.592323e-03 0.000000e+00 -0.08670223 0.26010669 -0.1734044626
 [3,] 6.073858e-02 0.000000e+00 -0.15030440 0.45091320 -0.3006088020
 [4,] 2.047498e-01 6.073858e-05 -0.16778345 0.50335034 -0.3355668952
 [5,] 4.334305e-01 1.311953e-02 -0.13244035 0.39732106 -0.2648807067
 [6,] 6.256681e-01 8.084305e-02 -0.07399720 0.22199159 -0.1479943948
 [7,] 6.477162e-01 2.468416e-01 -0.02616007 0.07993794 -0.0532919575
 [8,] 4.791667e-01 4.791667e-01  0.01406302 0.02031093 -0.0135406187
 [9,] 2.468416e-01 6.477162e-01  0.09733619 0.02286023 -0.0152401533
[10,] 8.084305e-02 6.256681e-01  0.27076826 0.06324188 -0.0405213106
[11,] 1.311953e-02 4.334305e-01  0.48059836 0.12526031 -0.0524087186
[12,] 6.073858e-05 2.047498e-01  0.59541597 0.19899261  0.0007809246
[13,] 0.000000e+00 6.073858e-02  0.50097182 0.27551020  0.1627793975
[14,] 0.000000e+00 7.592323e-03  0.22461127 0.35204082  0.4157555879
[15,] 0.000000e+00 0.000000e+00 -0.14285714 0.42857143  0.7142857143
attr(,"degree")
[1] 3
attr(,"knots")
 20%  40%  60%  80% 
60.8 63.6 66.4 69.2 
attr(,"Boundary.knots")
[1] 58 72
attr(,"intercept")
[1] FALSE
attr(,"class")
[1] "ns"     "basis"  "matrix"
> summary(fm1 <- lm(weight ~ ns(height, df = 5), data = women))

Call:
lm(formula = weight ~ ns(height, df = 5), data = women)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.38333 -0.12585  0.07083  0.15401  0.30426 

Coefficients:
                    Estimate Std. Error t value Pr(>|t|)    
(Intercept)         114.7447     0.2338  490.88  < 2e-16 ***
ns(height, df = 5)1  15.9474     0.3699   43.12 9.69e-12 ***
ns(height, df = 5)2  25.1695     0.4323   58.23 6.55e-13 ***
ns(height, df = 5)3  33.2582     0.3541   93.93 8.91e-15 ***
ns(height, df = 5)4  50.7894     0.6062   83.78 2.49e-14 ***
ns(height, df = 5)5  45.0363     0.2784  161.75  < 2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.2645 on 9 degrees of freedom
Multiple R-squared:  0.9998,	Adjusted R-squared:  0.9997 
F-statistic:  9609 on 5 and 9 DF,  p-value: < 2.2e-16

> 
> ## To see what knots were selected
> attr(terms(fm1), "predvars")
list(weight, ns(height, knots = c(60.8, 63.6, 66.4, 69.2), Boundary.knots = c(58, 
72), intercept = FALSE))
> 
> ## example of safe prediction
> plot(women, xlab = "Height (in)", ylab = "Weight (lb)")
> ht <- seq(57, 73, length.out = 200)
> lines(ht, predict(fm1, data.frame(height = ht)))
> ## Don't show: 
> ## Consistency:
> x <- c(1:3, 5:6)
> stopifnot(identical(ns(x), ns(x, df = 1)),
+           identical(ns(x, df = 2), ns(x, df = 2, knots = NULL)), # not true till 2.15.2
+           !is.null(kk <- attr(ns(x), "knots")), # not true till 1.5.1
+           length(kk) == 0)
> ## End Don't show
> 
> 
> 
> cleanEx()
> nameEx("periodicSpline")
> ### * periodicSpline
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: periodicSpline
> ### Title: Create a Periodic Interpolation Spline
> ### Aliases: periodicSpline
> ### Keywords: models
> 
> ### ** Examples
> 
> require(graphics); require(stats)
> xx <- seq( -pi, pi, length.out = 16 )[-1]
> yy <- sin( xx )
> frm <- data.frame( xx, yy )
> pispl <- periodicSpline( xx, yy, period = 2 * pi)
> pispl2 <- periodicSpline( yy ~ xx, frm, period = 2 * pi )
> stopifnot(all.equal(pispl, pispl2))  # pispl and pispl2 are the same
> 
> plot( pispl )          # displays over one period
> points( yy ~ xx, col = "brown")
> plot( predict( pispl, seq(-3*pi, 3*pi, length.out = 101) ), type = "l" )
> 
> 
> 
> cleanEx()
> nameEx("polySpline")
> ### * polySpline
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: polySpline
> ### Title: Piecewise Polynomial Spline Representation
> ### Aliases: polySpline as.polySpline
> ### Keywords: models
> 
> ### ** Examples
> 
> require(graphics)
> ispl <- polySpline(interpSpline( weight ~ height,  women, bSpline = TRUE))
> print( ispl )   # print the piecewise polynomial representation
polynomial representation of spline for weight ~ height
   constant   linear   quadratic       cubic
58      115 1.731918  0.00000000  0.26808191
59      117 2.536164  0.80424574 -0.34040957
60      120 3.123427 -0.21698298  0.09355638
61      123 2.970130  0.06368616 -0.03381595
62      126 2.996054 -0.03776168  0.04170740
63      129 3.045653  0.08736054 -0.13301367
64      132 2.821333 -0.31168048  0.49034728
65      135 3.669014  1.15936136 -0.82837545
66      139 3.502610 -1.32576498  0.82315452
67      142 3.320544  1.14369857 -0.46424262
68      146 4.215213 -0.24902928  0.03381595
69      150 3.818603 -0.14758144  0.32897883
70      154 4.510376  0.83935505 -0.34973127
71      159 5.139893 -0.20983876  0.06994625
72      164 4.930054  0.00000000  0.00000000
> plot( ispl )    # plots over the range of the knots
> points( women$height, women$weight )
> 
> 
> 
> cleanEx()
> nameEx("predict.bSpline")
> ### * predict.bSpline
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: predict.bSpline
> ### Title: Evaluate a Spline at New Values of x
> ### Aliases: predict.bSpline predict.nbSpline predict.pbSpline
> ###   predict.npolySpline predict.ppolySpline
> ### Keywords: models
> 
> ### ** Examples
> 
> require(graphics); require(stats)
> ispl <- interpSpline( weight ~ height,  women )
> opar <- par(mfrow = c(2, 2), las = 1)
> plot(predict(ispl, nseg = 201),     # plots over the range of the knots
+      main = "Original data with interpolating spline", type = "l",
+      xlab = "height", ylab = "weight")
> points(women$height, women$weight, col = 4)
> plot(predict(ispl, nseg = 201, deriv = 1),
+      main = "First derivative of interpolating spline", type = "l",
+      xlab = "height", ylab = "weight")
> plot(predict(ispl, nseg = 201, deriv = 2),
+      main = "Second derivative of interpolating spline", type = "l",
+      xlab = "height", ylab = "weight")
> plot(predict(ispl, nseg = 401, deriv = 3),
+      main = "Third derivative of interpolating spline", type = "l",
+      xlab = "height", ylab = "weight")
> par(opar)
> 
> 
> 
> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
> cleanEx()
> nameEx("predict.bs")
> ### * predict.bs
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: predict.bs
> ### Title: Evaluate a Spline Basis
> ### Aliases: predict.bs predict.ns
> ### Keywords: smooth
> 
> ### ** Examples
> 
> require(stats)
> basis <- ns(women$height, df = 5)
> newX <- seq(58, 72, length.out = 51)
> # evaluate the basis at the new data
> predict(basis, newX)
                 1            2            3          4            5
 [1,] 0.0000000000 0.0000000000  0.000000000 0.00000000  0.000000000
 [2,] 0.0001666667 0.0000000000 -0.025270112 0.07581034 -0.050540224
 [3,] 0.0013333333 0.0000000000 -0.050033132 0.15009940 -0.100066264
 [4,] 0.0045000000 0.0000000000 -0.073781966 0.22134590 -0.147563933
 [5,] 0.0106666667 0.0000000000 -0.096009523 0.28802857 -0.192019047
 [6,] 0.0208333333 0.0000000000 -0.116208710 0.34862613 -0.232417420
 [7,] 0.0360000000 0.0000000000 -0.133872434 0.40161730 -0.267744868
 [8,] 0.0571666667 0.0000000000 -0.148493603 0.44548081 -0.296987205
 [9,] 0.0853333333 0.0000000000 -0.159565123 0.47869537 -0.319130247
[10,] 0.1215000000 0.0000000000 -0.166579904 0.49973971 -0.333159807
[11,] 0.1666666667 0.0000000000 -0.169030851 0.50709255 -0.338061702
[12,] 0.2211666667 0.0001666667 -0.166622161 0.49986648 -0.333244323
[13,] 0.2826666667 0.0013333333 -0.159903185 0.47970955 -0.319806370
[14,] 0.3481666667 0.0045000000 -0.149634561 0.44890368 -0.299269122
[15,] 0.4146666667 0.0106666667 -0.136576928 0.40973078 -0.273153855
[16,] 0.4791666667 0.0208333333 -0.121490924 0.36447277 -0.242981848
[17,] 0.5386666667 0.0360000000 -0.105137189 0.31541157 -0.210274379
[18,] 0.5901666667 0.0571666667 -0.088276362 0.26482909 -0.176552724
[19,] 0.6306666667 0.0853333333 -0.071669081 0.21500724 -0.143338162
[20,] 0.6571666667 0.1215000000 -0.056075985 0.16822795 -0.112151970
[21,] 0.6666666667 0.1666666667 -0.042257713 0.12677314 -0.084515425
[22,] 0.6571666667 0.2211666667 -0.030651111 0.09245333 -0.061635555
[23,] 0.6306666667 0.2826666667 -0.020397854 0.06519356 -0.043462374
[24,] 0.5901666667 0.3481666667 -0.010315824 0.04444747 -0.029631648
[25,] 0.5386666667 0.4146666667  0.000777096 0.02966871 -0.019779141
[26,] 0.4791666667 0.4791666667  0.014063024 0.02031093 -0.013540619
[27,] 0.4146666667 0.5386666667  0.030724078 0.01582777 -0.010551844
[28,] 0.3481666667 0.5901666667  0.051942375 0.01567287 -0.010448583
[29,] 0.2826666667 0.6306666667  0.078900034 0.01929990 -0.012866600
[30,] 0.2211666667 0.6571666667  0.112779171 0.02616249 -0.017441658
[31,] 0.1666666667 0.6666666667  0.154761905 0.03571429 -0.023809524
[32,] 0.1215000000 0.6571666667  0.205345238 0.04746429 -0.031476190
[33,] 0.0853333333 0.6306666667  0.262285714 0.06114286 -0.039428571
[34,] 0.0571666667 0.5901666667  0.322654762 0.07653571 -0.046523810
[35,] 0.0360000000 0.5386666667  0.383523810 0.09342857 -0.051619048
[36,] 0.0208333333 0.4791666667  0.441964286 0.11160714 -0.053571429
[37,] 0.0106666667 0.4146666667  0.495047619 0.13085714 -0.051238095
[38,] 0.0045000000 0.3481666667  0.539845238 0.15096429 -0.043476190
[39,] 0.0013333333 0.2826666667  0.573428571 0.17171429 -0.029142857
[40,] 0.0001666667 0.2211666667  0.592869048 0.19289286 -0.007095238
[41,] 0.0000000000 0.1666666667  0.595238095 0.21428571  0.023809524
[42,] 0.0000000000 0.1215000000  0.578428571 0.23571429  0.064357143
[43,] 0.0000000000 0.0853333333  0.543619048 0.25714286  0.113904762
[44,] 0.0000000000 0.0571666667  0.492809524 0.27857143  0.171452381
[45,] 0.0000000000 0.0360000000  0.428000000 0.30000000  0.236000000
[46,] 0.0000000000 0.0208333333  0.351190476 0.32142857  0.306547619
[47,] 0.0000000000 0.0106666667  0.264380952 0.34285714  0.382095238
[48,] 0.0000000000 0.0045000000  0.169571429 0.36428571  0.461642857
[49,] 0.0000000000 0.0013333333  0.068761905 0.38571429  0.544190476
[50,] 0.0000000000 0.0001666667 -0.036047619 0.40714286  0.628738095
[51,] 0.0000000000 0.0000000000 -0.142857143 0.42857143  0.714285714
attr(,"degree")
[1] 3
attr(,"knots")
 20%  40%  60%  80% 
60.8 63.6 66.4 69.2 
attr(,"Boundary.knots")
[1] 58 72
attr(,"intercept")
[1] FALSE
attr(,"class")
[1] "ns"     "basis"  "matrix"
> 
> 
> 
> cleanEx()
> nameEx("splineDesign")
> ### * splineDesign
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: splineDesign
> ### Title: Design Matrix for B-splines
> ### Aliases: splineDesign spline.des
> ### Keywords: models
> 
> ### ** Examples
> 
> require(graphics)
> splineDesign(knots = 1:10, x = 4:7)
          [,1]      [,2]      [,3]      [,4]      [,5]      [,6]
[1,] 0.1666667 0.6666667 0.1666667 0.0000000 0.0000000 0.0000000
[2,] 0.0000000 0.1666667 0.6666667 0.1666667 0.0000000 0.0000000
[3,] 0.0000000 0.0000000 0.1666667 0.6666667 0.1666667 0.0000000
[4,] 0.0000000 0.0000000 0.0000000 0.1666667 0.6666667 0.1666667
> ## visualize band structure
> 
> knots <- c(1,1.8,3:5,6.5,7,8.1,9.2,10)  # 10 => 10-4 = 6 Basis splines
> x <- seq(min(knots)-1, max(knots)+1, length.out = 501)
> bb <- splineDesign(knots, x = x, outer.ok = TRUE)
> 
> plot(range(x), c(0,1), type = "n", xlab = "x", ylab = "",
+      main =  "B-splines - sum to 1 inside inner knots")
> mtext(expression(B[j](x) *"  and "* sum(B[j](x), j == 1, 6)), adj = 0)
> abline(v = knots, lty = 3, col = "light gray")
> abline(v = knots[c(4,length(knots)-3)], lty = 3, col = "gray10")
> lines(x, rowSums(bb), col = "gray", lwd = 2)
> matlines(x, bb, ylim = c(0,1), lty = 1)
> 
> 
> 
> cleanEx()
> nameEx("splineKnots")
> ### * splineKnots
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: splineKnots
> ### Title: Knot Vector from a Spline
> ### Aliases: splineKnots
> ### Keywords: models
> 
> ### ** Examples
> 
> ispl <- interpSpline( weight ~ height, women )
> splineKnots( ispl )
 [1] 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
> 
> 
> 
> cleanEx()
> nameEx("splineOrder")
> ### * splineOrder
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: splineOrder
> ### Title: Determine the Order of a Spline
> ### Aliases: splineOrder
> ### Keywords: models
> 
> ### ** Examples
> 
> splineOrder( interpSpline( weight ~ height, women ) )
[1] 4
> 
> 
> 
> cleanEx()
> nameEx("xyVector")
> ### * xyVector
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: xyVector
> ### Title: Construct an 'xyVector' Object
> ### Aliases: xyVector
> ### Keywords: models
> 
> ### ** Examples
> 
> require(stats); require(graphics)
> ispl <- interpSpline( weight ~ height, women )
> weights <- predict( ispl, seq( 55, 75, length.out = 51 ))
> class( weights )
[1] "xyVector"
> plot( weights, type = "l", xlab = "height", ylab = "weight" )
> points( women$height, women$weight )
> weights
$x
 [1] 55.0 55.4 55.8 56.2 56.6 57.0 57.4 57.8 58.2 58.6 59.0 59.4 59.8 60.2 60.6
[16] 61.0 61.4 61.8 62.2 62.6 63.0 63.4 63.8 64.2 64.6 65.0 65.4 65.8 66.2 66.6
[31] 67.0 67.4 67.8 68.2 68.6 69.0 69.4 69.8 70.2 70.6 71.0 71.4 71.8 72.2 72.6
[46] 73.0 73.4 73.8 74.2 74.6 75.0

$y
 [1] 109.8042 110.4970 111.1898 111.8825 112.5753 113.2681 113.9608 114.6536
 [9] 115.3485 116.0971 117.0000 118.1214 119.3694 120.6168 121.8162 123.0000
[17] 124.1961 125.3995 126.5980 127.7930 129.0000 130.2237 131.4243 132.5557
[25] 133.6865 135.0000 136.6001 138.2531 139.6541 140.8021 142.0000 143.4815
[33] 145.1507 146.8334 148.4468 150.0000 151.5249 153.1289 154.9329 156.9329
[41] 159.0000 161.0269 163.0134 164.9860 166.9580 168.9301 170.9021 172.8741
[49] 174.8461 176.8181 178.7902

attr(,"class")
[1] "xyVector"
> 
> 
> 
> ### * <FOOTER>
> ###
> options(digits = 7L)
> base::cat("Time elapsed: ", proc.time() - base::get("ptime", pos = 'CheckExEnv'),"\n")
Time elapsed:  0.137 0.007 0.147 0 0 
> grDevices::dev.off()
null device 
          1 
> ###
> ### Local variables: ***
> ### mode: outline-minor ***
> ### outline-regexp: "\\(> \\)?### [*]+" ***
> ### End: ***
> quit('no')