Documentation Example 4 for PROC PLS

/****************************************************************/
/*          S A S   S A M P L E   L I B R A R Y                 */
/*                                                              */
/*    NAME: PLSEX4                                              */
/*   TITLE: Documentation Example 4 for PROC PLS                */
/* PRODUCT: STAT                                                */
/*  SYSTEM: ALL                                                 */
/*    KEYS: regression analysis, spline smoothing               */
/*   PROCS: PLS                                                 */
/*    DATA:                                                     */
/*                                                              */
/* SUPPORT: RDT                         UPDATE:                 */
/*     REF:                                                     */
/*    MISC:                                                     */
/*                                                              */
/****************************************************************/

/* Example 4: Partial Least Squares Spline Smoothing */

data Wheat;
   keep Row Column Yield;
   input Yield @@;
   iRow = int((_N_-1)/12);
   iCol = mod( _N_-1 ,12);
   Column = iCol*15 + 1; /* Column distance, in feet */
   Row    = iRow* 1 + 1; /* Row    distance, in feet */
   Row = 125 - Row + 1;  /* Invert rows              */
   datalines;
 715 595 580 580 615 610 540 515 557 665 560 612
 770 710 655 675 700 690 565 585 550 574 511 618
 760 715 690 690 655 725 665 640 665 705 644 705
 665 615 685 555 585 630 550 520 553 616 573 570
 755 730 670 580 545 620 580 525 495 565 599 612
 745 670 585 560 550 710 590 545 538 587 600 664
 645 690 550 520 450 630 535 505 530 536 611 578
 585 495 455 470 445 555 500 450 420 461 531 559
 560 540 450 500 505 595 545 530 498 538 453 600
 685 730 610 500 555 645 605 535 534 593 616 638
 755 810 665 570 525 715 650 550 613 607 742 657
 640 635 585 465 430 615 550 515 369 493 635 567
 725 655 530 455 465 560 550 460 455 503 519 555
 715 775 615 545 530 685 595 510 507 561 581 537
 700 705 555 440 455 630 555 425 476 648 532 552
 640 655 495 435 485 585 475 405 422 516 458 559
 620 635 495 445 455 620 505 465 419 591 545 537
 750 630 555 455 510 575 530 470 427 545 562 582
 760 675 610 540 530 675 580 460 513 599 595 675
 630 645 490 445 440 585 490 420 460 542 474 563
 625 540 495 415 445 530 440 430 455 485 461 533
 670 670 560 485 445 590 555 450 516 570 553 623
 655 630 540 465 460 560 465 435 466 454 458 503
 570 535 525 455 415 510 460 420 393 482 426 446
 575 495 540 480 395 555 440 450 437 541 525 514
 690 645 595 515 470 550 515 445 508 508 517 533
 730 730 710 565 465 640 565 550 494 591 594 597
 620 635 595 485 435 530 490 470 465 521 454 537
 620 600 530 455 425 545 395 455 482 484 505 578
 665 685 685 520 480 525 550 465 497 596 563 634
 620 605 530 440 450 500 470 445 510 531 478 514
 615 525 610 515 395 510 455 530 485 554 448 503
 595 625 600 440 435 510 515 525 500 522 496 514
 640 580 630 485 480 610 525 515 574 525 458 518
 695 650 695 550 515 685 570 525 613 560 532 525
 630 610 545 465 460 555 500 575 438 477 480 507
 595 555 580 505 465 540 425 490 467 479 444 507
 645 635 660 550 525 645 515 520 477 510 465 533
 705 660 595 495 465 595 450 505 417 489 399 533
 575 530 600 460 410 500 460 505 459 431 438 578
 530 555 570 450 425 490 450 495 426 443 449 469
 715 680 685 505 535 600 495 480 474 401 495 533
 795 715 740 590 585 585 535 560 518 513 541 548
 660 635 620 495 510 585 520 475 444 405 509 469
 615 580 505 490 505 555 450 470 468 442 474 484
 690 645 630 600 565 645 530 550 454 474 592 548
 675 615 640 505 550 615 535 500 465 456 513 563
 770 625 685 570 575 685 540 475 534 456 467 548
 695 700 770 540 515 685 530 495 508 454 422 600
 660 660 705 570 545 645 500 540 494 500 532 687
 720 730 825 665 605 665 520 550 584 546 537 630
 670 640 710 500 535 575 495 455 512 497 465 600
 655 590 675 575 515 570 490 470 460 427 472 589
 780 790 855 625 575 655 530 540 575 502 503 582
 750 705 770 575 560 565 510 435 486 470 502 570
 585 620 685 620 550 520 435 460 429 485 534 619
 665 605 680 570 560 560 445 465 461 463 533 627
 735 760 790 645 605 595 560 485 466 487 476 645
 795 795 850 700 655 635 540 470 521 582 584 750
 645 685 720 610 520 550 460 440 425 485 462 698
 630 695 665 630 510 575 445 430 433 423 450 627
 685 840 875 640 575 625 570 490 514 539 486 717
 695 780 790 575 520 600 545 470 455 486 488 619
 705 745 840 710 640 610 500 530 498 479 434 574
 655 735 840 640 610 585 560 450 469 562 450 570
 640 880 795 660 580 615 585 460 461 472 504 600
 790 765 890 770 660 690 575 490 485 475 509 582
 670 690 785 645 510 560 535 405 474 455 458 555
 685 790 770 665 600 545 555 390 389 461 439 615
 660 825 960 750 660 680 620 510 501 490 534 694
 705 805 860 635 540 650 555 435 479 457 451 649
 610 720 705 615 540 625 595 380 379 483 502 608
 640 735 805 665 535 605 580 430 427 441 498 638
 690 855 905 700 615 650 615 495 531 448 453 645
 715 765 945 820 695 750 685 530 511 580 510 762
 685 750 825 715 580 660 655 505 414 451 542 642
 685 790 790 695 595 625 510 525 425 471 478 514
 775 845 995 820 655 675 640 545 474 513 599 597
 645 870 890 740 615 655 555 490 433 558 590 567
 725 825 920 640 600 690 575 535 451 484 510 567
 650 865 935 690 645 640 530 520 476 507 525 563
 695 860 960 725 615 710 660 525 438 539 646 623
 735 910 975 775 680 700 770 635 506 526 514 638
 645 745 815 700 605 615 605 550 455 504 503 589
 630 810 730 635 535 650 735 535 458 554 535 615
 680 745 840 730 645 650 775 590 557 561 565 619
 620 730 775 680 610 610 680 515 537 535 553 570
 620 745 660 565 520 635 610 450 476 550 562 575
 560 675 690 635 525 605 635 515 494 516 558 559
 625 700 725 645 645 580 615 640 516 618 615 604
 700 765 725 615 640 705 710 590 619 627 620 645
 685 785 655 600 570 615 670 575 506 602 530 600
 625 550 590 590 605 505 560 595 539 629 571 698
 745 790 675 600 625 685 725 695 686 608 568 672
 680 670 630 640 645 650 695 610 627 579 537 675
 655 730 615 650 640 645 655 620 611 642 685 630
 625 700 675 720 695 680 720 615 595 556 648 578
 670 735 645 620 705 695 650 580 623 541 580 630
 670 820 685 665 715 715 790 660 658 689 725 675
 555 670 590 580 550 665 640 605 553 580 605 638
 650 685 505 525 595 590 560 575 592 559 584 518
 625 760 625 545 635 635 670 625 672 656 577 645
 620 740 575 565 595 610 650 595 515 641 533 623
 580 650 570 575 450 445 670 645 587 634 534 574
 615 705 550 515 530 485 610 570 565 652 518 623
 675 690 615 610 560 625 745 540 584 616 505 668
 720 820 720 650 590 615 770 645 615 755 625 713
 640 780 640 660 605 540 695 580 615 679 540 570
 630 800 715 710 605 575 490 485 564 665 665 582
 625 830 795 765 610 630 775 630 614 760 730 619
 470 685 680 735 560 580 670 610 556 539 488 608
 445 555 605 685 540 615 610 525 640 639 594 739
 400 570 555 655 475 615 715 595 595 740 671 795
 480 495 650 690 535 600 760 655 488 621 578 615
 555 660 715 690 635 655 775 665 652 720 689 728
 520 530 650 605 480 545 585 610 561 670 622 623
 490 475 595 660 475 545 635 550 524 538 626 552
 500 610 590 680 555 625 670 660 581 613 583 585
 425 560 570 570 455 605 605 530 544 645 612 537
 535 550 540 630 480 565 745 515 467 606 563 510
 560 500 560 575 500 475 610 575 492 591 532 499
 530 610 600 620 480 585 650 570 577 612 654 630
 570 585 635 765 550 675 765 620 608 705 677 660
 505 500 580 655 470 565 570 555 537 585 589 619
 465 430 510 680 460 600 670 615 620 594 616 784
;

/* Fitting a Partial Least Squares Spline Model */

ods graphics on;

proc pls data=Wheat cv=random(seed=1) cvtest(seed=12345)
         plot(only)=contourfit(obs=gradient);
   effect splCol = spline(Column);
   effect splRow = spline(Row   );
   model Yield = splCol|splRow;
run;


proc pls data=Wheat cv=random(seed=1) cvtest(seed=12345)
         plot(only)=contourfit(obs=gradient);
   effect splCol = spline(Column / knotmethod=equal(14));
   effect splRow = spline(Row    / knotmethod=equal(14));
   model Yield = splCol|splRow;
run;