<TeXmacs|1.0.3.2>

<style|generic>

<\body>
  <with|prog-language|r|prog-session|default|<\session>
    <\output>
      \;

      R : Copyright 2003, The R Foundation for Statistical Computing

      Version 1.8.1 \ (2003-11-21), ISBN 3-900051-00-3

      \;

      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.

      \;

      R is a collaborative project with many contributors.

      Type 'contributors()' for more information and

      'citation()' on how to cite R in publications.

      \;

      Type 'demo()' for some demos, 'help()' for on-line help, or

      'help.start()' for a HTML browser interface to help.

      Type 'q()' to quit R.

      \;

      ---------------------------------------------------------

      TeXmacs interface. Use v() to insert current graphic into

      TeXmacs buffer. Use q("yes") to quit and save.

      ---------------------------------------------------------

      <with|mode|math|x<rsup|2>+y<rsup|2>>

      <tformat|<table|<row|<cell|>|<cell|1>|<cell|2>>|<row|<cell|<hline>1>|<cell|0.00>|<cell|0.00>>|<row|<cell|2>|<cell|0.00>|<cell|0.00>>|<row|<cell|<hline>>|<cell|>|<cell|>>>>
    </output>

    <\input|<with|color|red|<with|mode|math|\<succ\>><with|color|black|>> >
      3
    </input>

    <\output>
      3

      [1] 3
    </output>

    <\input|<with|color|red|<with|mode|math|\<succ\>><with|color|black|>> >
      4
    </input>

    <\output>
      [1] 4
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      \;
    </input>
  </session>>

  <section|Lecture 7 - Bootstrap and Jackknife>

  The principle of the bootstrap method is that the data the we gathered can
  represent the external world.

  In order to get a distribution of possible values that we could have
  measured, we re-sample from the data.

  <subsection|Example: Median>

  Let us say that we have a population of 2000 people, whose heights are the
  following:

  <with|prog-language|r|prog-session|default|<\session>
    <\input|<with|color|red|<with|mode|math|\<succ\>><with|color|black|>> >
      population=c(rnorm(1500,mean=180,sd=10),rnorm(500,mean=140,sd=10))
    </input>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      hist(population,n=30);v()
    </input>

    <\output>
      <postscript|<tuple|<raw-data|%!PS-Adobe-3.0
      EPSF-3.0\n%%DocumentNeededResources: font Helvetica\n%%+ font
      Helvetica-Bold\n%%+ font Helvetica-Oblique\n%%+ font
      Helvetica-BoldOblique\n%%+ font Symbol\n%%Title: R Graphics
      Output\n%%Creator: R Software\n%%Pages: (atend)\n%%BoundingBox: 154 277
      442 565\n%%EndComments\n%%BeginProlog\n/bp \ { gs gs } def\n% begin
      .ps.prolog\n/gs \ { gsave } def\n/gr \ { grestore } def\n/ep \ {
      showpage gr gr } def\n/m \ \ { moveto } def\n/l \ { rlineto } def\n/np
      \ { newpath } def\n/cp \ { closepath } def\n/f \ \ { fill } def\n/o
      \ \ { stroke } def\n/c \ \ { newpath 0 360 arc } def\n/r \ \ { 4 2 roll
      moveto 1 copy 3 -1 roll exch 0 exch rlineto 0 rlineto -1 mul 0 exch
      rlineto closepath } def\n/p1 \ { stroke } def\n/p2 \ { gsave bg
      setrgbcolor fill grestore newpath } def\n/p3 \ { gsave bg setrgbcolor
      fill grestore stroke } def\n/t \ \ { 6 -2 roll moveto gsave rotate\n
      \ \ \ \ \ \ ps mul neg 0 2 1 roll rmoveto\n \ \ \ \ \ \ 1 index
      stringwidth pop\n \ \ \ \ \ \ mul neg 0 rmoveto show grestore }
      def\n/cl \ { grestore gsave newpath 3 index 3 index moveto 1 index\n
      \ \ \ \ \ \ 4 -1 roll lineto \ exch 1 index lineto lineto\n
      \ \ \ \ \ \ closepath clip newpath } def\n/rgb { setrgbcolor } def\n/s
      \ \ { scalefont setfont } def\n/R \ \ { /Font1 findfont } def\n/B \ \ {
      /Font2 findfont } def\n/I \ \ { /Font3 findfont } def\n/BI \ { /Font4
      findfont } def\n/S \ \ { /Font5 findfont } def\n1 setlinecap 1
      setlinejoin\n% end \ \ .ps.prolog\n%%IncludeResource: font
      Helvetica\n/Helvetica findfont\ndup length dict begin\n \ {1 index /FID
      ne {def} {pop pop} ifelse} forall\n \ /Encoding ISOLatin1Encoding def\n
      \ currentdict\n \ end\n/Font1 exch definefont pop\n%%IncludeResource:
      font Helvetica-Bold\n/Helvetica-Bold findfont\ndup length dict begin\n
      \ {1 index /FID ne {def} {pop pop} ifelse} forall\n \ /Encoding
      ISOLatin1Encoding def\n \ currentdict\n \ end\n/Font2 exch definefont
      pop\n%%IncludeResource: font Helvetica-Oblique\n/Helvetica-Oblique
      findfont\ndup length dict begin\n \ {1 index /FID ne {def} {pop pop}
      ifelse} forall\n \ /Encoding ISOLatin1Encoding def\n \ currentdict\n
      \ end\n/Font3 exch definefont pop\n%%IncludeResource: font
      Helvetica-BoldOblique\n/Helvetica-BoldOblique findfont\ndup length dict
      begin\n \ {1 index /FID ne {def} {pop pop} ifelse} forall\n \ /Encoding
      ISOLatin1Encoding def\n \ currentdict\n \ end\n/Font4 exch definefont
      pop\n%%IncludeResource: font Symbol\n/Symbol findfont\ndup length dict
      begin\n \ {1 index /FID ne {def} {pop pop} ifelse} forall\n
      \ currentdict\n \ end\n/Font5 exch definefont pop\n%%EndProlog\n%%Page:
      2 2\nbp\n153.64 276.94 441.64 564.94 cl\n/ps 14 def B 14 s\n0 0 0
      rgb\n309.64 535.32 (Histogram of population) .5 0 0 t\n/ps 12 def R 12
      s\n309.64 292.54 (population) .5 0 0 t\n164.44 426.94 (Frequency) .5 0
      90 t\n153.64 276.94 441.64 564.94 cl\n0 0 0 rgb\n0.75 setlinewidth\n[]
      0 setdash\nnp\n230.53 338.14 m\n158.22 0 l\no\nnp\n230.53 338.14 m\n0
      -6.00 l\no\nnp\n270.08 338.14 m\n0 -6.00 l\no\nnp\n309.64 338.14 m\n0
      -6.00 l\no\nnp\n349.19 338.14 m\n0 -6.00 l\no\nnp\n388.75 338.14 m\n0
      -6.00 l\no\n/ps 12 def R 12 s\n230.53 316.54 (120) .5 0 0 t\n270.08
      316.54 (140) .5 0 0 t\n309.64 316.54 (160) .5 0 0 t\n349.19 316.54
      (180) .5 0 0 t\n388.75 316.54 (200) .5 0 0 t\nnp\n202.84 344.72 m\n0
      161.22 l\no\nnp\n202.84 344.72 m\n-6.00 0 l\no\nnp\n202.84 371.59
      m\n-6.00 0 l\no\nnp\n202.84 398.46 m\n-6.00 0 l\no\nnp\n202.84 425.33
      m\n-6.00 0 l\no\nnp\n202.84 452.20 m\n-6.00 0 l\no\nnp\n202.84 479.07
      m\n-6.00 0 l\no\nnp\n202.84 505.94 m\n-6.00 0 l\no\n188.44 344.72 (0)
      .5 0 90 t\n188.44 371.59 (50) .5 0 90 t\n188.44 398.46 (100) .5 0 90
      t\n188.44 452.20 (200) .5 0 90 t\n188.44 505.94 (300) .5 0 90 t\n202.84
      338.14 416.44 515.74 cl\n0 0 0 rgb\n0.75 setlinewidth\n[] 0
      setdash\n210.75 344.72 9.89 1.07 r p1\n220.64 344.72 9.89 4.84 r
      p1\n230.53 344.72 9.89 9.67 r p1\n240.42 344.72 9.89 30.09 r p1\n250.30
      344.72 9.89 36.01 r p1\n260.19 344.72 9.89 55.89 r p1\n270.08 344.72
      9.89 52.13 r p1\n279.97 344.72 9.89 31.71 r p1\n289.86 344.72 9.89
      30.63 r p1\n299.75 344.72 9.89 27.94 r p1\n309.64 344.72 9.89 38.69 r
      p1\n319.53 344.72 9.89 75.24 r p1\n329.42 344.72 9.89 112.85 r
      p1\n339.30 344.72 9.89 154.77 r p1\n349.19 344.72 9.89 164.44 r
      p1\n359.08 344.72 9.89 129.51 r p1\n368.97 344.72 9.89 72.01 r
      p1\n378.86 344.72 9.89 27.41 r p1\n388.75 344.72 9.89 14.51 r
      p1\n398.64 344.72 9.89 5.37 r p1\nep\n%%Trailer\n%%Pages:
      2\n%%EOF\n>|ps>||||||>
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      \;
    </input>
  </session>>

  Now let us assume that we measure the heights of 20 randomly chosen people
  exactly:

  <with|prog-language|r|prog-session|default|<\session>
    <\input|<with|color|red|<with|mode|math|\<succ\>><with|color|black|>> >
      measurements=sample(population,20)
    </input>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      measurements
    </input>

    <\output>
      \ [1] 184.1049 186.0301 162.4606 176.1285 133.3787 135.8835 142.8405
      175.5389

      \ [9] 117.5551 187.8455 203.9851 141.7764 179.8468 176.3813 147.5747
      119.2880

      [17] 188.9668 173.2810 173.1390 184.8293
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      \;
    </input>
  </session>>

  We want to know the median of the distribution. To approximante that, we
  measure the median of the measurements:

  <with|prog-language|r|prog-session|default|<\session>
    <\input|<with|color|red|<with|mode|math|\<succ\>><with|color|black|>> >
      mean(measurements)
    </input>

    <\output>
      [1] 164.5417
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      @@@
    </input>

    <\output>
      [1] 164.5417
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      \;
    </input>
  </session>>

  We know now the mdeian of the mesurements. How wrong are we?

  If we had the whole population at our disposal, we could do the process of
  sampling many times, and see the distribution of the median:

  <with|prog-language|r|prog-session|default|<\session>
    <\input|<with|color|red|<with|mode|math|\<succ\>><with|color|black|>> >
      pop.samples=t(sapply(1:10000,function(i) sample(population,20) ))
    </input>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      dim(pop.samples)
    </input>

    <\output>
      [1] 10000 \ \ \ 20
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      pop.samples.medians=apply(pop.samples,1,median)
    </input>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      hist(pop.samples.medians,n=30);v()
    </input>

    <\output>
      <postscript|<tuple|<raw-data|%!PS-Adobe-3.0
      EPSF-3.0\n%%DocumentNeededResources: font Helvetica\n%%+ font
      Helvetica-Bold\n%%+ font Helvetica-Oblique\n%%+ font
      Helvetica-BoldOblique\n%%+ font Symbol\n%%Title: R Graphics
      Output\n%%Creator: R Software\n%%Pages: (atend)\n%%BoundingBox: 154 277
      442 565\n%%EndComments\n%%BeginProlog\n/bp \ { gs gs } def\n% begin
      .ps.prolog\n/gs \ { gsave } def\n/gr \ { grestore } def\n/ep \ {
      showpage gr gr } def\n/m \ \ { moveto } def\n/l \ { rlineto } def\n/np
      \ { newpath } def\n/cp \ { closepath } def\n/f \ \ { fill } def\n/o
      \ \ { stroke } def\n/c \ \ { newpath 0 360 arc } def\n/r \ \ { 4 2 roll
      moveto 1 copy 3 -1 roll exch 0 exch rlineto 0 rlineto -1 mul 0 exch
      rlineto closepath } def\n/p1 \ { stroke } def\n/p2 \ { gsave bg
      setrgbcolor fill grestore newpath } def\n/p3 \ { gsave bg setrgbcolor
      fill grestore stroke } def\n/t \ \ { 6 -2 roll moveto gsave rotate\n
      \ \ \ \ \ \ ps mul neg 0 2 1 roll rmoveto\n \ \ \ \ \ \ 1 index
      stringwidth pop\n \ \ \ \ \ \ mul neg 0 rmoveto show grestore }
      def\n/cl \ { grestore gsave newpath 3 index 3 index moveto 1 index\n
      \ \ \ \ \ \ 4 -1 roll lineto \ exch 1 index lineto lineto\n
      \ \ \ \ \ \ closepath clip newpath } def\n/rgb { setrgbcolor } def\n/s
      \ \ { scalefont setfont } def\n/R \ \ { /Font1 findfont } def\n/B \ \ {
      /Font2 findfont } def\n/I \ \ { /Font3 findfont } def\n/BI \ { /Font4
      findfont } def\n/S \ \ { /Font5 findfont } def\n1 setlinecap 1
      setlinejoin\n% end \ \ .ps.prolog\n%%IncludeResource: font
      Helvetica\n/Helvetica findfont\ndup length dict begin\n \ {1 index /FID
      ne {def} {pop pop} ifelse} forall\n \ /Encoding ISOLatin1Encoding def\n
      \ currentdict\n \ end\n/Font1 exch definefont pop\n%%IncludeResource:
      font Helvetica-Bold\n/Helvetica-Bold findfont\ndup length dict begin\n
      \ {1 index /FID ne {def} {pop pop} ifelse} forall\n \ /Encoding
      ISOLatin1Encoding def\n \ currentdict\n \ end\n/Font2 exch definefont
      pop\n%%IncludeResource: font Helvetica-Oblique\n/Helvetica-Oblique
      findfont\ndup length dict begin\n \ {1 index /FID ne {def} {pop pop}
      ifelse} forall\n \ /Encoding ISOLatin1Encoding def\n \ currentdict\n
      \ end\n/Font3 exch definefont pop\n%%IncludeResource: font
      Helvetica-BoldOblique\n/Helvetica-BoldOblique findfont\ndup length dict
      begin\n \ {1 index /FID ne {def} {pop pop} ifelse} forall\n \ /Encoding
      ISOLatin1Encoding def\n \ currentdict\n \ end\n/Font4 exch definefont
      pop\n%%IncludeResource: font Symbol\n/Symbol findfont\ndup length dict
      begin\n \ {1 index /FID ne {def} {pop pop} ifelse} forall\n
      \ currentdict\n \ end\n/Font5 exch definefont pop\n%%EndProlog\n%%Page:
      2 2\nbp\n202.84 338.14 416.44 515.74 cl\n153.64 276.94 441.64 564.94
      cl\n/ps 14 def B 14 s\n0 0 0 rgb\n309.64 535.32 (Histogram of
      pop.samples.medians) .5 0 0 t\n/ps 12 def R 12 s\n309.64 292.54
      (pop.samples.medians) .5 0 0 t\n164.44 426.94 (Frequency) .5 0 90
      t\n153.64 276.94 441.64 564.94 cl\n0 0 0 rgb\n0.75 setlinewidth\n[] 0
      setdash\nnp\n210.75 338.14 m\n197.78 0 l\no\nnp\n210.75 338.14 m\n0
      -6.00 l\no\nnp\n250.30 338.14 m\n0 -6.00 l\no\nnp\n289.86 338.14 m\n0
      -6.00 l\no\nnp\n329.42 338.14 m\n0 -6.00 l\no\nnp\n368.97 338.14 m\n0
      -6.00 l\no\nnp\n408.53 338.14 m\n0 -6.00 l\no\n/ps 12 def R 12
      s\n210.75 316.54 (140) .5 0 0 t\n250.30 316.54 (150) .5 0 0 t\n289.86
      316.54 (160) .5 0 0 t\n329.42 316.54 (170) .5 0 0 t\n368.97 316.54
      (180) .5 0 0 t\n408.53 316.54 (190) .5 0 0 t\nnp\n202.84 344.72 m\n0
      167.46 l\no\nnp\n202.84 344.72 m\n-6.00 0 l\no\nnp\n202.84 386.59
      m\n-6.00 0 l\no\nnp\n202.84 428.45 m\n-6.00 0 l\no\nnp\n202.84 470.32
      m\n-6.00 0 l\no\nnp\n202.84 512.18 m\n-6.00 0 l\no\n188.44 344.72 (0)
      .5 0 90 t\n188.44 386.59 (500) .5 0 90 t\n188.44 428.45 (1000) .5 0 90
      t\n188.44 470.32 (1500) .5 0 90 t\n188.44 512.18 (2000) .5 0 90
      t\n202.84 338.14 416.44 515.74 cl\n0 0 0 rgb\n0.75 setlinewidth\n[] 0
      setdash\n210.75 344.72 7.91 0.08 r p1\n218.66 344.72 7.91 0.17 r
      p1\n226.57 344.72 7.91 0.25 r p1\n234.48 344.72 7.91 0.33 r p1\n242.39
      344.72 7.91 0.08 r p1\n250.30 344.72 7.91 0.67 r p1\n258.22 344.72 7.91
      1.00 r p1\n266.13 344.72 7.91 1.42 r p1\n274.04 344.72 7.91 1.67 r
      p1\n281.95 344.72 7.91 2.85 r p1\n289.86 344.72 7.91 3.18 r p1\n297.77
      344.72 7.91 5.94 r p1\n305.68 344.72 7.91 11.22 r p1\n313.59 344.72
      7.91 21.27 r p1\n321.50 344.72 7.91 40.11 r p1\n329.42 344.72 7.91
      72.26 r p1\n337.33 344.72 7.91 103.66 r p1\n345.24 344.72 7.91 155.32 r
      p1\n353.15 344.72 7.91 164.44 r p1\n361.06 344.72 7.91 137.15 r
      p1\n368.97 344.72 7.91 78.12 r p1\n376.88 344.72 7.91 29.31 r
      p1\n384.79 344.72 7.91 6.03 r p1\n392.70 344.72 7.91 0.50 r p1\n400.62
      344.72 7.91 0.25 r p1\nep\n%%Trailer\n%%Pages: 2\n%%EOF\n>|ps>||||||>
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      median(population)
    </input>

    <\output>
      [1] 176.1048
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      2
    </input>

    <\output>
      [1] 2
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      \;
    </input>

    \;
  </session>>

  We can see that we're likely to be about 10cm off the real median.

  But we don't have the real population. We only have our samples. To
  estimate the distribution of medians, we sample from the sample, instead of
  from the real population:

  <with|prog-language|r|prog-session|default|<\session>
    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      sample.samples=t(sapply(1:10000,function(i)
      sample(measurements,20,rep=T) ))
    </input>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      sample.samples.medians=apply(sample.samples,1,median)
    </input>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      layout( matrix(1:2,2,1));par(cex=0.7);hist(pop.samples.medians,n=30,xlim=c(135,190)

      );hist(sample.samples.medians,n=30,xlim=c(135,190));v();layout(1)
    </input>

    <\input|<with|color|red|+ <with|color|black|>>>
      \;
    </input>

    <\output>
      <postscript|<tuple|<raw-data|%!PS-Adobe-3.0
      EPSF-3.0\n%%DocumentNeededResources: font Helvetica\n%%+ font
      Helvetica-Bold\n%%+ font Helvetica-Oblique\n%%+ font
      Helvetica-BoldOblique\n%%+ font Symbol\n%%Title: R Graphics
      Output\n%%Creator: R Software\n%%Pages: (atend)\n%%BoundingBox: 154 277
      442 565\n%%EndComments\n%%BeginProlog\n/bp \ { gs gs } def\n% begin
      .ps.prolog\n/gs \ { gsave } def\n/gr \ { grestore } def\n/ep \ {
      showpage gr gr } def\n/m \ \ { moveto } def\n/l \ { rlineto } def\n/np
      \ { newpath } def\n/cp \ { closepath } def\n/f \ \ { fill } def\n/o
      \ \ { stroke } def\n/c \ \ { newpath 0 360 arc } def\n/r \ \ { 4 2 roll
      moveto 1 copy 3 -1 roll exch 0 exch rlineto 0 rlineto -1 mul 0 exch
      rlineto closepath } def\n/p1 \ { stroke } def\n/p2 \ { gsave bg
      setrgbcolor fill grestore newpath } def\n/p3 \ { gsave bg setrgbcolor
      fill grestore stroke } def\n/t \ \ { 6 -2 roll moveto gsave rotate\n
      \ \ \ \ \ \ ps mul neg 0 2 1 roll rmoveto\n \ \ \ \ \ \ 1 index
      stringwidth pop\n \ \ \ \ \ \ mul neg 0 rmoveto show grestore }
      def\n/cl \ { grestore gsave newpath 3 index 3 index moveto 1 index\n
      \ \ \ \ \ \ 4 -1 roll lineto \ exch 1 index lineto lineto\n
      \ \ \ \ \ \ closepath clip newpath } def\n/rgb { setrgbcolor } def\n/s
      \ \ { scalefont setfont } def\n/R \ \ { /Font1 findfont } def\n/B \ \ {
      /Font2 findfont } def\n/I \ \ { /Font3 findfont } def\n/BI \ { /Font4
      findfont } def\n/S \ \ { /Font5 findfont } def\n1 setlinecap 1
      setlinejoin\n% end \ \ .ps.prolog\n%%IncludeResource: font
      Helvetica\n/Helvetica findfont\ndup length dict begin\n \ {1 index /FID
      ne {def} {pop pop} ifelse} forall\n \ /Encoding ISOLatin1Encoding def\n
      \ currentdict\n \ end\n/Font1 exch definefont pop\n%%IncludeResource:
      font Helvetica-Bold\n/Helvetica-Bold findfont\ndup length dict begin\n
      \ {1 index /FID ne {def} {pop pop} ifelse} forall\n \ /Encoding
      ISOLatin1Encoding def\n \ currentdict\n \ end\n/Font2 exch definefont
      pop\n%%IncludeResource: font Helvetica-Oblique\n/Helvetica-Oblique
      findfont\ndup length dict begin\n \ {1 index /FID ne {def} {pop pop}
      ifelse} forall\n \ /Encoding ISOLatin1Encoding def\n \ currentdict\n
      \ end\n/Font3 exch definefont pop\n%%IncludeResource: font
      Helvetica-BoldOblique\n/Helvetica-BoldOblique findfont\ndup length dict
      begin\n \ {1 index /FID ne {def} {pop pop} ifelse} forall\n \ /Encoding
      ISOLatin1Encoding def\n \ currentdict\n \ end\n/Font4 exch definefont
      pop\n%%IncludeResource: font Symbol\n/Symbol findfont\ndup length dict
      begin\n \ {1 index /FID ne {def} {pop pop} ifelse} forall\n
      \ currentdict\n \ end\n/Font5 exch definefont pop\n%%EndProlog\n%%Page:
      2 2\nbp\n188.08 463.78 424.00 530.50 cl\n153.64 420.94 441.64 564.94
      cl\n/ps 10 def B 10 s\n0 0 0 rgb\n306.04 544.13 (Histogram of
      pop.samples.medians) .5 0 0 t\n/ps 8 def R 8 s\n306.04 431.86
      (pop.samples.medians) .5 0 0 t\n161.20 497.14 (Frequency) .5 0 90
      t\n153.64 276.94 441.64 564.94 cl\n0 0 0 rgb\n0.75 setlinewidth\n[] 0
      setdash\nnp\n216.67 463.78 m\n198.59 0 l\no\nnp\n216.67 463.78 m\n0
      -4.20 l\no\nnp\n256.39 463.78 m\n0 -4.20 l\no\nnp\n296.11 463.78 m\n0
      -4.20 l\no\nnp\n335.83 463.78 m\n0 -4.20 l\no\nnp\n375.54 463.78 m\n0
      -4.20 l\no\nnp\n415.26 463.78 m\n0 -4.20 l\no\n/ps 8 def R 8 s\n216.67
      448.66 (140) .5 0 0 t\n256.39 448.66 (150) .5 0 0 t\n296.11 448.66
      (160) .5 0 0 t\n335.83 448.66 (170) .5 0 0 t\n375.54 448.66 (180) .5 0
      0 t\n415.26 448.66 (190) .5 0 0 t\nnp\n188.08 466.26 m\n0 62.91
      l\no\nnp\n188.08 466.26 m\n-4.20 0 l\no\nnp\n188.08 481.98 m\n-4.20 0
      l\no\nnp\n188.08 497.71 m\n-4.20 0 l\no\nnp\n188.08 513.44 m\n-4.20 0
      l\no\nnp\n188.08 529.17 m\n-4.20 0 l\no\n178.00 466.26 (0) .5 0 90
      t\n178.00 481.98 (500) .5 0 90 t\n178.00 513.44 (1500) .5 0 90
      t\n188.08 463.78 424.00 530.50 cl\n0 0 0 rgb\n0.75 setlinewidth\n[] 0
      setdash\n216.67 466.26 7.94 0.03 r p1\n224.62 466.26 7.94 0.06 r
      p1\n232.56 466.26 7.94 0.09 r p1\n240.50 466.26 7.94 0.13 r p1\n248.45
      466.26 7.94 0.03 r p1\n256.39 466.26 7.94 0.25 r p1\n264.33 466.26 7.94
      0.38 r p1\n272.28 466.26 7.94 0.53 r p1\n280.22 466.26 7.94 0.63 r
      p1\n288.17 466.26 7.94 1.07 r p1\n296.11 466.26 7.94 1.20 r p1\n304.05
      466.26 7.94 2.23 r p1\n312.00 466.26 7.94 4.21 r p1\n319.94 466.26 7.94
      7.99 r p1\n327.88 466.26 7.94 15.07 r p1\n335.83 466.26 7.94 27.15 r
      p1\n343.77 466.26 7.94 38.94 r p1\n351.71 466.26 7.94 58.35 r
      p1\n359.66 466.26 7.94 61.78 r p1\n367.60 466.26 7.94 51.52 r
      p1\n375.54 466.26 7.94 29.35 r p1\n383.49 466.26 7.94 11.01 r
      p1\n391.43 466.26 7.94 2.26 r p1\n399.37 466.26 7.94 0.19 r p1\n407.32
      466.26 7.94 0.09 r p1\n188.08 319.78 424.00 386.50 cl\n153.64 276.94
      441.64 420.94 cl\n/ps 10 def B 10 s\n0 0 0 rgb\n306.04 400.13
      (Histogram of sample.samples.medians) .5 0 0 t\n/ps 8 def R 8 s\n306.04
      287.86 (sample.samples.medians) .5 0 0 t\n161.20 353.14 (Frequency) .5
      0 90 t\n153.64 276.94 441.64 564.94 cl\n0 0 0 rgb\n0.75
      setlinewidth\n[] 0 setdash\nnp\n216.67 319.78 m\n198.59 0
      l\no\nnp\n216.67 319.78 m\n0 -4.20 l\no\nnp\n256.39 319.78 m\n0 -4.20
      l\no\nnp\n296.11 319.78 m\n0 -4.20 l\no\nnp\n335.83 319.78 m\n0 -4.20
      l\no\nnp\n375.54 319.78 m\n0 -4.20 l\no\nnp\n415.26 319.78 m\n0 -4.20
      l\no\n/ps 8 def R 8 s\n216.67 304.66 (140) .5 0 0 t\n256.39 304.66
      (150) .5 0 0 t\n296.11 304.66 (160) .5 0 0 t\n335.83 304.66 (170) .5 0
      0 t\n375.54 304.66 (180) .5 0 0 t\n415.26 304.66 (190) .5 0 0
      t\nnp\n188.08 322.26 m\n0 61.36 l\no\nnp\n188.08 322.26 m\n-4.20 0
      l\no\nnp\n188.08 332.48 m\n-4.20 0 l\no\nnp\n188.08 342.71 m\n-4.20 0
      l\no\nnp\n188.08 352.94 m\n-4.20 0 l\no\nnp\n188.08 363.17 m\n-4.20 0
      l\no\nnp\n188.08 373.40 m\n-4.20 0 l\no\nnp\n188.08 383.62 m\n-4.20 0
      l\no\n178.00 322.26 (0) .5 0 90 t\n178.00 342.71 (1000) .5 0 90
      t\n178.00 373.40 (2500) .5 0 90 t\n188.08 319.78 424.00 386.50 cl\n0 0
      0 rgb\n0.75 setlinewidth\n[] 0 setdash\n192.84 322.26 7.94 0.14 r
      p1\n200.79 322.26 7.94 0.02 r p1\n208.73 322.26 7.94 0.37 r p1\n216.67
      322.26 7.94 0.72 r p1\n224.62 322.26 7.94 2.95 r p1\n232.56 322.26 7.94
      3.29 r p1\n240.50 322.26 7.94 4.07 r p1\n248.45 322.26 7.94 0.00 r
      p1\n256.39 322.26 7.94 0.00 r p1\n264.33 322.26 7.94 1.70 r p1\n272.28
      322.26 7.94 6.26 r p1\n280.22 322.26 7.94 0.78 r p1\n288.17 322.26 7.94
      0.59 r p1\n296.11 322.26 7.94 5.13 r p1\n304.05 322.26 7.94 7.10 r
      p1\n312.00 322.26 7.94 0.02 r p1\n319.94 322.26 7.94 14.32 r p1\n327.88
      322.26 7.94 2.95 r p1\n335.83 322.26 7.94 0.04 r p1\n343.77 322.26 7.94
      39.60 r p1\n351.71 322.26 7.94 61.78 r p1\n359.66 322.26 7.94 33.65 r
      p1\n367.60 322.26 7.94 10.53 r p1\n375.54 322.26 7.94 4.91 r p1\n383.49
      322.26 7.94 0.51 r p1\n391.43 322.26 7.94 2.97 r p1\n399.37 322.26 7.94
      0.16 r p1\nep\n%%Trailer\n%%Pages: 2\n%%EOF\n>|ps>||||||>
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      \;
    </input>
  </session>>

  As you see, we do not get the same distribution! The first distribution was
  created by sampling from the real population. The second distribution was
  sampled from our sample.

  <subsection|Parametric bootstrap>

  Instead of using the sample as our model for the world, we can base a model
  on the sample, and then sample from it. For example, let us look at our
  sample.

  <with|prog-language|r|prog-session|default|<\session>
    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      hist(measurements);rug(measurements);v()
    </input>

    <\output>
      <postscript|<tuple|<raw-data|%!PS-Adobe-3.0
      EPSF-3.0\n%%DocumentNeededResources: font Helvetica\n%%+ font
      Helvetica-Bold\n%%+ font Helvetica-Oblique\n%%+ font
      Helvetica-BoldOblique\n%%+ font Symbol\n%%Title: R Graphics
      Output\n%%Creator: R Software\n%%Pages: (atend)\n%%BoundingBox: 154 277
      442 565\n%%EndComments\n%%BeginProlog\n/bp \ { gs gs } def\n% begin
      .ps.prolog\n/gs \ { gsave } def\n/gr \ { grestore } def\n/ep \ {
      showpage gr gr } def\n/m \ \ { moveto } def\n/l \ { rlineto } def\n/np
      \ { newpath } def\n/cp \ { closepath } def\n/f \ \ { fill } def\n/o
      \ \ { stroke } def\n/c \ \ { newpath 0 360 arc } def\n/r \ \ { 4 2 roll
      moveto 1 copy 3 -1 roll exch 0 exch rlineto 0 rlineto -1 mul 0 exch
      rlineto closepath } def\n/p1 \ { stroke } def\n/p2 \ { gsave bg
      setrgbcolor fill grestore newpath } def\n/p3 \ { gsave bg setrgbcolor
      fill grestore stroke } def\n/t \ \ { 6 -2 roll moveto gsave rotate\n
      \ \ \ \ \ \ ps mul neg 0 2 1 roll rmoveto\n \ \ \ \ \ \ 1 index
      stringwidth pop\n \ \ \ \ \ \ mul neg 0 rmoveto show grestore }
      def\n/cl \ { grestore gsave newpath 3 index 3 index moveto 1 index\n
      \ \ \ \ \ \ 4 -1 roll lineto \ exch 1 index lineto lineto\n
      \ \ \ \ \ \ closepath clip newpath } def\n/rgb { setrgbcolor } def\n/s
      \ \ { scalefont setfont } def\n/R \ \ { /Font1 findfont } def\n/B \ \ {
      /Font2 findfont } def\n/I \ \ { /Font3 findfont } def\n/BI \ { /Font4
      findfont } def\n/S \ \ { /Font5 findfont } def\n1 setlinecap 1
      setlinejoin\n% end \ \ .ps.prolog\n%%IncludeResource: font
      Helvetica\n/Helvetica findfont\ndup length dict begin\n \ {1 index /FID
      ne {def} {pop pop} ifelse} forall\n \ /Encoding ISOLatin1Encoding def\n
      \ currentdict\n \ end\n/Font1 exch definefont pop\n%%IncludeResource:
      font Helvetica-Bold\n/Helvetica-Bold findfont\ndup length dict begin\n
      \ {1 index /FID ne {def} {pop pop} ifelse} forall\n \ /Encoding
      ISOLatin1Encoding def\n \ currentdict\n \ end\n/Font2 exch definefont
      pop\n%%IncludeResource: font Helvetica-Oblique\n/Helvetica-Oblique
      findfont\ndup length dict begin\n \ {1 index /FID ne {def} {pop pop}
      ifelse} forall\n \ /Encoding ISOLatin1Encoding def\n \ currentdict\n
      \ end\n/Font3 exch definefont pop\n%%IncludeResource: font
      Helvetica-BoldOblique\n/Helvetica-BoldOblique findfont\ndup length dict
      begin\n \ {1 index /FID ne {def} {pop pop} ifelse} forall\n \ /Encoding
      ISOLatin1Encoding def\n \ currentdict\n \ end\n/Font4 exch definefont
      pop\n%%IncludeResource: font Symbol\n/Symbol findfont\ndup length dict
      begin\n \ {1 index /FID ne {def} {pop pop} ifelse} forall\n
      \ currentdict\n \ end\n/Font5 exch definefont pop\n%%EndProlog\n%%Page:
      2 2\nbp\n202.84 338.14 416.44 515.74 cl\n153.64 276.94 441.64 564.94
      cl\n/ps 14 def B 14 s\n0 0 0 rgb\n309.64 535.32 (Histogram of
      measurements) .5 0 0 t\n/ps 12 def R 12 s\n309.64 292.54 (measurements)
      .5 0 0 t\n164.44 426.94 (Frequency) .5 0 90 t\n153.64 276.94 441.64
      564.94 cl\n0 0 0 rgb\n0.75 setlinewidth\n[] 0 setdash\nnp\n210.75
      338.14 m\n197.78 0 l\no\nnp\n210.75 338.14 m\n0 -6.00 l\no\nnp\n243.71
      338.14 m\n0 -6.00 l\no\nnp\n276.67 338.14 m\n0 -6.00 l\no\nnp\n309.64
      338.14 m\n0 -6.00 l\no\nnp\n342.60 338.14 m\n0 -6.00 l\no\nnp\n375.56
      338.14 m\n0 -6.00 l\no\nnp\n408.53 338.14 m\n0 -6.00 l\no\n/ps 12 def R
      12 s\n210.75 316.54 (100) .5 0 0 t\n243.71 316.54 (120) .5 0 0
      t\n276.67 316.54 (140) .5 0 0 t\n309.64 316.54 (160) .5 0 0 t\n342.60
      316.54 (180) .5 0 0 t\n375.56 316.54 (200) .5 0 0 t\n408.53 316.54
      (220) .5 0 0 t\nnp\n202.84 344.72 m\n0 164.45 l\no\nnp\n202.84 344.72
      m\n-6.00 0 l\no\nnp\n202.84 368.21 m\n-6.00 0 l\no\nnp\n202.84 391.71
      m\n-6.00 0 l\no\nnp\n202.84 415.20 m\n-6.00 0 l\no\nnp\n202.84 438.69
      m\n-6.00 0 l\no\nnp\n202.84 462.18 m\n-6.00 0 l\no\nnp\n202.84 485.68
      m\n-6.00 0 l\no\nnp\n202.84 509.17 m\n-6.00 0 l\no\n188.44 344.72 (0)
      .5 0 90 t\n188.44 368.21 (1) .5 0 90 t\n188.44 391.71 (2) .5 0 90
      t\n188.44 415.20 (3) .5 0 90 t\n188.44 438.69 (4) .5 0 90 t\n188.44
      462.18 (5) .5 0 90 t\n188.44 485.68 (6) .5 0 90 t\n188.44 509.17 (7) .5
      0 90 t\n202.84 338.14 416.44 515.74 cl\n0 0 0 rgb\n0.75
      setlinewidth\n[] 0 setdash\n210.75 344.72 32.96 46.98 r p1\n243.71
      344.72 32.96 46.98 r p1\n276.67 344.72 32.96 70.48 r p1\n309.64 344.72
      32.96 164.44 r p1\n342.60 344.72 32.96 117.46 r p1\n375.56 344.72 32.96
      23.49 r p1\n153.64 276.94 441.64 564.94 cl\n0 0 0 rgb\n0.38
      setlinewidth\n[] 0 setdash\nnp\n239.68 338.14 m\n142.45 0
      l\no\nnp\n239.68 338.14 m\n0 5.33 l\no\nnp\n242.54 338.14 m\n0 5.33
      l\no\nnp\n265.76 338.14 m\n0 5.33 l\no\nnp\n269.89 338.14 m\n0 5.33
      l\no\nnp\n279.60 338.14 m\n0 5.33 l\no\nnp\n281.36 338.14 m\n0 5.33
      l\no\nnp\n289.16 338.14 m\n0 5.33 l\no\nnp\n313.69 338.14 m\n0 5.33
      l\no\nnp\n331.29 338.14 m\n0 5.33 l\no\nnp\n331.53 338.14 m\n0 5.33
      l\no\nnp\n335.25 338.14 m\n0 5.33 l\no\nnp\n336.22 338.14 m\n0 5.33
      l\no\nnp\n336.64 338.14 m\n0 5.33 l\no\nnp\n342.35 338.14 m\n0 5.33
      l\no\nnp\n349.37 338.14 m\n0 5.33 l\no\nnp\n350.56 338.14 m\n0 5.33
      l\no\nnp\n352.54 338.14 m\n0 5.33 l\no\nnp\n355.53 338.14 m\n0 5.33
      l\no\nnp\n357.38 338.14 m\n0 5.33 l\no\nnp\n382.13 338.14 m\n0 5.33
      l\no\nep\n%%Trailer\n%%Pages: 2\n%%EOF\n>|ps>||||||>
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      \;
    </input>
  </session>>

  It obviously does not look normal - it has too much of a tail on the left.

  We could still try to fit the best normal distrubution we can find, and
  then bootstrap.

  <with|prog-language|r|prog-session|default|<\session>
    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      a=measurements-mean(measurements)
    </input>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      a=a/sd(a)
    </input>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      ks.test(a,pnorm)
    </input>

    <\output>
      \;

      \ \ \ \ \ \ \ \ One-sample Kolmogorov-Smirnov test

      \;

      data: \ a\ 

      D = 0.2335, p-value = 0.2254

      alternative hypothesis: two.sided\ 
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      \;
    </input>
  </session>>

  You can see that because of the small sample size, the KS test is actually
  not significant.

  <with|prog-language|r|prog-session|default|<\session>
    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      mm=mean(measurements);mm
    </input>

    <\output>
      [1] 164.5417
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      msd=sd(measurements);msd
    </input>

    <\output>
      [1] 25.19489
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      parametric=matrix( rnorm(10000*20,mean=mm,sd=msd), 10000, 20)
    </input>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      parametric.medians=apply(parametric,1,median)
    </input>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      layout( matrix(1:3,3,1));par(cex=0.7);hist(pop.samples.medians,n=30,xlim=c(135,190)

      );hist(sample.samples.medians,n=30,xlim=c(135,190)

      );hist(parametric.medians,n=30,xlim=c(135,190));v(width=5,height=5);layout(1)
    </input>

    <\input|<with|color|red|+ <with|color|black|>>>
      \;
    </input>

    <\output>
      <postscript|<tuple|<raw-data|%!PS-Adobe-3.0
      EPSF-3.0\n%%DocumentNeededResources: font Helvetica\n%%+ font
      Helvetica-Bold\n%%+ font Helvetica-Oblique\n%%+ font
      Helvetica-BoldOblique\n%%+ font Symbol\n%%Title: R Graphics
      Output\n%%Creator: R Software\n%%Pages: (atend)\n%%BoundingBox: 118 241
      478 601\n%%EndComments\n%%BeginProlog\n/bp \ { gs gs } def\n% begin
      .ps.prolog\n/gs \ { gsave } def\n/gr \ { grestore } def\n/ep \ {
      showpage gr gr } def\n/m \ \ { moveto } def\n/l \ { rlineto } def\n/np
      \ { newpath } def\n/cp \ { closepath } def\n/f \ \ { fill } def\n/o
      \ \ { stroke } def\n/c \ \ { newpath 0 360 arc } def\n/r \ \ { 4 2 roll
      moveto 1 copy 3 -1 roll exch 0 exch rlineto 0 rlineto -1 mul 0 exch
      rlineto closepath } def\n/p1 \ { stroke } def\n/p2 \ { gsave bg
      setrgbcolor fill grestore newpath } def\n/p3 \ { gsave bg setrgbcolor
      fill grestore stroke } def\n/t \ \ { 6 -2 roll moveto gsave rotate\n
      \ \ \ \ \ \ ps mul neg 0 2 1 roll rmoveto\n \ \ \ \ \ \ 1 index
      stringwidth pop\n \ \ \ \ \ \ mul neg 0 rmoveto show grestore }
      def\n/cl \ { grestore gsave newpath 3 index 3 index moveto 1 index\n
      \ \ \ \ \ \ 4 -1 roll lineto \ exch 1 index lineto lineto\n
      \ \ \ \ \ \ closepath clip newpath } def\n/rgb { setrgbcolor } def\n/s
      \ \ { scalefont setfont } def\n/R \ \ { /Font1 findfont } def\n/B \ \ {
      /Font2 findfont } def\n/I \ \ { /Font3 findfont } def\n/BI \ { /Font4
      findfont } def\n/S \ \ { /Font5 findfont } def\n1 setlinecap 1
      setlinejoin\n% end \ \ .ps.prolog\n%%IncludeResource: font
      Helvetica\n/Helvetica findfont\ndup length dict begin\n \ {1 index /FID
      ne {def} {pop pop} ifelse} forall\n \ /Encoding ISOLatin1Encoding def\n
      \ currentdict\n \ end\n/Font1 exch definefont pop\n%%IncludeResource:
      font Helvetica-Bold\n/Helvetica-Bold findfont\ndup length dict begin\n
      \ {1 index /FID ne {def} {pop pop} ifelse} forall\n \ /Encoding
      ISOLatin1Encoding def\n \ currentdict\n \ end\n/Font2 exch definefont
      pop\n%%IncludeResource: font Helvetica-Oblique\n/Helvetica-Oblique
      findfont\ndup length dict begin\n \ {1 index /FID ne {def} {pop pop}
      ifelse} forall\n \ /Encoding ISOLatin1Encoding def\n \ currentdict\n
      \ end\n/Font3 exch definefont pop\n%%IncludeResource: font
      Helvetica-BoldOblique\n/Helvetica-BoldOblique findfont\ndup length dict
      begin\n \ {1 index /FID ne {def} {pop pop} ifelse} forall\n \ /Encoding
      ISOLatin1Encoding def\n \ currentdict\n \ end\n/Font4 exch definefont
      pop\n%%IncludeResource: font Symbol\n/Symbol findfont\ndup length dict
      begin\n \ {1 index /FID ne {def} {pop pop} ifelse} forall\n
      \ currentdict\n \ end\n/Font5 exch definefont pop\n%%EndProlog\n%%Page:
      2 2\nbp\n152.08 523.78 460.00 566.50 cl\n117.64 480.94 477.64 600.94
      cl\n/ps 10 def B 10 s\n0 0 0 rgb\n306.04 580.13 (Histogram of
      pop.samples.medians) .5 0 0 t\n/ps 8 def R 8 s\n306.04 491.86
      (pop.samples.medians) .5 0 0 t\n125.20 545.14 (Frequency) .5 0 90
      t\n117.64 240.94 477.64 600.94 cl\n0 0 0 rgb\n0.75 setlinewidth\n[] 0
      setdash\nnp\n189.40 523.78 m\n259.19 0 l\no\nnp\n189.40 523.78 m\n0
      -4.20 l\no\nnp\n241.24 523.78 m\n0 -4.20 l\no\nnp\n293.08 523.78 m\n0
      -4.20 l\no\nnp\n344.92 523.78 m\n0 -4.20 l\no\nnp\n396.75 523.78 m\n0
      -4.20 l\no\nnp\n448.59 523.78 m\n0 -4.20 l\no\n/ps 8 def R 8 s\n189.40
      508.66 (140) .5 0 0 t\n241.24 508.66 (150) .5 0 0 t\n293.08 508.66
      (160) .5 0 0 t\n344.92 508.66 (170) .5 0 0 t\n396.75 508.66 (180) .5 0
      0 t\n448.59 508.66 (190) .5 0 0 t\nnp\n152.08 525.37 m\n0 40.28
      l\no\nnp\n152.08 525.37 m\n-4.20 0 l\no\nnp\n152.08 535.44 m\n-4.20 0
      l\no\nnp\n152.08 545.51 m\n-4.20 0 l\no\nnp\n152.08 555.58 m\n-4.20 0
      l\no\nnp\n152.08 565.65 m\n-4.20 0 l\no\n142.00 525.37 (0) .5 0 90
      t\n142.00 545.51 (1000) .5 0 90 t\n152.08 523.78 460.00 566.50 cl\n0 0
      0 rgb\n0.75 setlinewidth\n[] 0 setdash\n189.40 525.37 10.37 0.02 r
      p1\n199.77 525.37 10.37 0.04 r p1\n210.14 525.37 10.37 0.06 r
      p1\n220.50 525.37 10.37 0.08 r p1\n230.87 525.37 10.37 0.02 r
      p1\n241.24 525.37 10.37 0.16 r p1\n251.61 525.37 10.37 0.24 r
      p1\n261.98 525.37 10.37 0.34 r p1\n272.34 525.37 10.37 0.40 r
      p1\n282.71 525.37 10.37 0.68 r p1\n293.08 525.37 10.37 0.77 r
      p1\n303.45 525.37 10.37 1.43 r p1\n313.81 525.37 10.37 2.70 r
      p1\n324.18 525.37 10.37 5.12 r p1\n334.55 525.37 10.37 9.65 r
      p1\n344.92 525.37 10.37 17.38 r p1\n355.28 525.37 10.37 24.93 r
      p1\n365.65 525.37 10.37 37.36 r p1\n376.02 525.37 10.37 39.56 r
      p1\n386.39 525.37 10.37 32.99 r p1\n396.75 525.37 10.37 18.79 r
      p1\n407.12 525.37 10.37 7.05 r p1\n417.49 525.37 10.37 1.45 r
      p1\n427.86 525.37 10.37 0.12 r p1\n438.23 525.37 10.37 0.06 r
      p1\n152.08 403.78 460.00 446.50 cl\n117.64 360.94 477.64 480.94 cl\n/ps
      10 def B 10 s\n0 0 0 rgb\n306.04 460.13 (Histogram of
      sample.samples.medians) .5 0 0 t\n/ps 8 def R 8 s\n306.04 371.86
      (sample.samples.medians) .5 0 0 t\n125.20 425.14 (Frequency) .5 0 90
      t\n117.64 240.94 477.64 600.94 cl\n0 0 0 rgb\n0.75 setlinewidth\n[] 0
      setdash\nnp\n189.40 403.78 m\n259.19 0 l\no\nnp\n189.40 403.78 m\n0
      -4.20 l\no\nnp\n241.24 403.78 m\n0 -4.20 l\no\nnp\n293.08 403.78 m\n0
      -4.20 l\no\nnp\n344.92 403.78 m\n0 -4.20 l\no\nnp\n396.75 403.78 m\n0
      -4.20 l\no\nnp\n448.59 403.78 m\n0 -4.20 l\no\n/ps 8 def R 8 s\n189.40
      388.66 (140) .5 0 0 t\n241.24 388.66 (150) .5 0 0 t\n293.08 388.66
      (160) .5 0 0 t\n344.92 388.66 (170) .5 0 0 t\n396.75 388.66 (180) .5 0
      0 t\n448.59 388.66 (190) .5 0 0 t\nnp\n152.08 405.37 m\n0 39.29
      l\no\nnp\n152.08 405.37 m\n-4.20 0 l\no\nnp\n152.08 411.92 m\n-4.20 0
      l\no\nnp\n152.08 418.46 m\n-4.20 0 l\no\nnp\n152.08 425.01 m\n-4.20 0
      l\no\nnp\n152.08 431.56 m\n-4.20 0 l\no\nnp\n152.08 438.11 m\n-4.20 0
      l\no\nnp\n152.08 444.66 m\n-4.20 0 l\no\n142.00 405.37 (0) .5 0 90
      t\n142.00 425.01 (1500) .5 0 90 t\n152.08 403.78 460.00 446.50 cl\n0 0
      0 rgb\n0.75 setlinewidth\n[] 0 setdash\n158.30 405.37 10.37 0.09 r
      p1\n168.67 405.37 10.37 0.01 r p1\n179.03 405.37 10.37 0.24 r
      p1\n189.40 405.37 10.37 0.46 r p1\n199.77 405.37 10.37 1.89 r
      p1\n210.14 405.37 10.37 2.11 r p1\n220.50 405.37 10.37 2.61 r
      p1\n230.87 405.37 10.37 0.00 r p1\n241.24 405.37 10.37 0.00 r
      p1\n251.61 405.37 10.37 1.09 r p1\n261.98 405.37 10.37 4.01 r
      p1\n272.34 405.37 10.37 0.50 r p1\n282.71 405.37 10.37 0.38 r
      p1\n293.08 405.37 10.37 3.29 r p1\n303.45 405.37 10.37 4.54 r
      p1\n313.81 405.37 10.37 0.01 r p1\n324.18 405.37 10.37 9.17 r
      p1\n334.55 405.37 10.37 1.89 r p1\n344.92 405.37 10.37 0.03 r
      p1\n355.28 405.37 10.37 25.36 r p1\n365.65 405.37 10.37 39.56 r
      p1\n376.02 405.37 10.37 21.55 r p1\n386.39 405.37 10.37 6.75 r
      p1\n396.75 405.37 10.37 3.14 r p1\n407.12 405.37 10.37 0.33 r
      p1\n417.49 405.37 10.37 1.90 r p1\n427.86 405.37 10.37 0.10 r
      p1\n152.08 283.78 460.00 326.50 cl\n117.64 240.94 477.64 360.94 cl\n/ps
      10 def B 10 s\n0 0 0 rgb\n306.04 340.13 (Histogram of
      parametric.medians) .5 0 0 t\n/ps 8 def R 8 s\n306.04 251.86
      (parametric.medians) .5 0 0 t\n125.20 305.14 (Frequency) .5 0 90
      t\n117.64 240.94 477.64 600.94 cl\n0 0 0 rgb\n0.75 setlinewidth\n[] 0
      setdash\nnp\n189.40 283.78 m\n259.19 0 l\no\nnp\n189.40 283.78 m\n0
      -4.20 l\no\nnp\n241.24 283.78 m\n0 -4.20 l\no\nnp\n293.08 283.78 m\n0
      -4.20 l\no\nnp\n344.92 283.78 m\n0 -4.20 l\no\nnp\n396.75 283.78 m\n0
      -4.20 l\no\nnp\n448.59 283.78 m\n0 -4.20 l\no\n/ps 8 def R 8 s\n189.40
      268.66 (140) .5 0 0 t\n241.24 268.66 (150) .5 0 0 t\n293.08 268.66
      (160) .5 0 0 t\n344.92 268.66 (170) .5 0 0 t\n396.75 268.66 (180) .5 0
      0 t\n448.59 268.66 (190) .5 0 0 t\nnp\n152.08 285.37 m\n0 34.88
      l\no\nnp\n152.08 285.37 m\n-4.20 0 l\no\nnp\n152.08 292.34 m\n-4.20 0
      l\no\nnp\n152.08 299.32 m\n-4.20 0 l\no\nnp\n152.08 306.30 m\n-4.20 0
      l\no\nnp\n152.08 313.27 m\n-4.20 0 l\no\nnp\n152.08 320.25 m\n-4.20 0
      l\no\n142.00 285.37 (0) .5 0 90 t\n142.00 306.30 (600) .5 0 90
      t\n152.08 283.78 460.00 326.50 cl\n0 0 0 rgb\n0.75 setlinewidth\n[] 0
      setdash\n179.03 285.37 10.37 0.03 r p1\n189.40 285.37 10.37 0.17 r
      p1\n199.77 285.37 10.37 0.21 r p1\n210.14 285.37 10.37 0.66 r
      p1\n220.50 285.37 10.37 1.40 r p1\n230.87 285.37 10.37 3.21 r
      p1\n241.24 285.37 10.37 5.44 r p1\n251.61 285.37 10.37 9.35 r
      p1\n261.98 285.37 10.37 14.20 r p1\n272.34 285.37 10.37 22.39 r
      p1\n282.71 285.37 10.37 30.42 r p1\n293.08 285.37 10.37 36.21 r
      p1\n303.45 285.37 10.37 39.24 r p1\n313.81 285.37 10.37 39.56 r
      p1\n324.18 285.37 10.37 37.04 r p1\n334.55 285.37 10.37 33.52 r
      p1\n344.92 285.37 10.37 25.11 r p1\n355.28 285.37 10.37 19.85 r
      p1\n365.65 285.37 10.37 13.25 r p1\n376.02 285.37 10.37 8.27 r
      p1\n386.39 285.37 10.37 4.95 r p1\n396.75 285.37 10.37 2.55 r
      p1\n407.12 285.37 10.37 1.01 r p1\n417.49 285.37 10.37 0.52 r
      p1\n427.86 285.37 10.37 0.14 r p1\n438.23 285.37 10.37 0.03 r
      p1\n448.59 285.37 10.37 0.03 r p1\n458.96 285.37 10.37 0.00 r
      p1\nep\n%%Trailer\n%%Pages: 2\n%%EOF\n>|ps>||||||>
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      sd(sample.samples.medians)
    </input>

    <\output>
      [1] 8.75055
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      sd(parametric.medians)
    </input>

    <\output>
      [1] 6.861419
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      sd(pop.samples.medians)
    </input>

    <\output>
      [1] 4.687592
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      \;
    </input>
  </session>>

  <subsection|Jackknife>

  The Jackkinfe method was invented before the bootstrap method, and is very
  similar.

  Instead of taking random samples from the distribution, we drop each of our
  sample points.

  <with|prog-language|r|prog-session|default|<\session>
    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      jack= t( \ sapply(1:length(measurements),function(i) measurements[-i] )
      )
    </input>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      jack[1:4,1:4]
    </input>

    <\output>
      \ \ \ \ \ \ \ \ \ [,1] \ \ \ \ [,2] \ \ \ \ [,3] \ \ \ \ [,4]

      [1,] 186.0301 162.4606 176.1285 133.3787

      [2,] 184.1049 162.4606 176.1285 133.3787

      [3,] 184.1049 186.0301 176.1285 133.3787

      [4,] 184.1049 186.0301 162.4606 133.3787
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      jack.medians=apply( jack, 1, median )
    </input>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      layout( matrix(1:2,2,1));par(cex=0.7);hist(jack.medians,xlim=c(135,190)

      );hist(sample.samples.medians,n=30,xlim=c(135,190));v();layout(1)
    </input>

    <\input|<with|color|red|+ <with|color|black|>>>
      \;
    </input>

    <\output>
      <postscript|<tuple|<raw-data|%!PS-Adobe-3.0
      EPSF-3.0\n%%DocumentNeededResources: font Helvetica\n%%+ font
      Helvetica-Bold\n%%+ font Helvetica-Oblique\n%%+ font
      Helvetica-BoldOblique\n%%+ font Symbol\n%%Title: R Graphics
      Output\n%%Creator: R Software\n%%Pages: (atend)\n%%BoundingBox: 154 277
      442 565\n%%EndComments\n%%BeginProlog\n/bp \ { gs gs } def\n% begin
      .ps.prolog\n/gs \ { gsave } def\n/gr \ { grestore } def\n/ep \ {
      showpage gr gr } def\n/m \ \ { moveto } def\n/l \ { rlineto } def\n/np
      \ { newpath } def\n/cp \ { closepath } def\n/f \ \ { fill } def\n/o
      \ \ { stroke } def\n/c \ \ { newpath 0 360 arc } def\n/r \ \ { 4 2 roll
      moveto 1 copy 3 -1 roll exch 0 exch rlineto 0 rlineto -1 mul 0 exch
      rlineto closepath } def\n/p1 \ { stroke } def\n/p2 \ { gsave bg
      setrgbcolor fill grestore newpath } def\n/p3 \ { gsave bg setrgbcolor
      fill grestore stroke } def\n/t \ \ { 6 -2 roll moveto gsave rotate\n
      \ \ \ \ \ \ ps mul neg 0 2 1 roll rmoveto\n \ \ \ \ \ \ 1 index
      stringwidth pop\n \ \ \ \ \ \ mul neg 0 rmoveto show grestore }
      def\n/cl \ { grestore gsave newpath 3 index 3 index moveto 1 index\n
      \ \ \ \ \ \ 4 -1 roll lineto \ exch 1 index lineto lineto\n
      \ \ \ \ \ \ closepath clip newpath } def\n/rgb { setrgbcolor } def\n/s
      \ \ { scalefont setfont } def\n/R \ \ { /Font1 findfont } def\n/B \ \ {
      /Font2 findfont } def\n/I \ \ { /Font3 findfont } def\n/BI \ { /Font4
      findfont } def\n/S \ \ { /Font5 findfont } def\n1 setlinecap 1
      setlinejoin\n% end \ \ .ps.prolog\n%%IncludeResource: font
      Helvetica\n/Helvetica findfont\ndup length dict begin\n \ {1 index /FID
      ne {def} {pop pop} ifelse} forall\n \ /Encoding ISOLatin1Encoding def\n
      \ currentdict\n \ end\n/Font1 exch definefont pop\n%%IncludeResource:
      font Helvetica-Bold\n/Helvetica-Bold findfont\ndup length dict begin\n
      \ {1 index /FID ne {def} {pop pop} ifelse} forall\n \ /Encoding
      ISOLatin1Encoding def\n \ currentdict\n \ end\n/Font2 exch definefont
      pop\n%%IncludeResource: font Helvetica-Oblique\n/Helvetica-Oblique
      findfont\ndup length dict begin\n \ {1 index /FID ne {def} {pop pop}
      ifelse} forall\n \ /Encoding ISOLatin1Encoding def\n \ currentdict\n
      \ end\n/Font3 exch definefont pop\n%%IncludeResource: font
      Helvetica-BoldOblique\n/Helvetica-BoldOblique findfont\ndup length dict
      begin\n \ {1 index /FID ne {def} {pop pop} ifelse} forall\n \ /Encoding
      ISOLatin1Encoding def\n \ currentdict\n \ end\n/Font4 exch definefont
      pop\n%%IncludeResource: font Symbol\n/Symbol findfont\ndup length dict
      begin\n \ {1 index /FID ne {def} {pop pop} ifelse} forall\n
      \ currentdict\n \ end\n/Font5 exch definefont pop\n%%EndProlog\n%%Page:
      2 2\nbp\n188.08 463.78 424.00 530.50 cl\n153.64 420.94 441.64 564.94
      cl\n/ps 10 def B 10 s\n0 0 0 rgb\n306.04 544.13 (Histogram of
      jack.medians) .5 0 0 t\n/ps 8 def R 8 s\n306.04 431.86 (jack.medians)
      .5 0 0 t\n161.20 497.14 (Frequency) .5 0 90 t\n153.64 276.94 441.64
      564.94 cl\n0 0 0 rgb\n0.75 setlinewidth\n[] 0 setdash\nnp\n216.67
      463.78 m\n198.59 0 l\no\nnp\n216.67 463.78 m\n0 -4.20 l\no\nnp\n256.39
      463.78 m\n0 -4.20 l\no\nnp\n296.11 463.78 m\n0 -4.20 l\no\nnp\n335.83
      463.78 m\n0 -4.20 l\no\nnp\n375.54 463.78 m\n0 -4.20 l\no\nnp\n415.26
      463.78 m\n0 -4.20 l\no\n/ps 8 def R 8 s\n216.67 448.66 (140) .5 0 0
      t\n256.39 448.66 (150) .5 0 0 t\n296.11 448.66 (160) .5 0 0 t\n335.83
      448.66 (170) .5 0 0 t\n375.54 448.66 (180) .5 0 0 t\n415.26 448.66
      (190) .5 0 0 t\nnp\n188.08 466.26 m\n0 61.77 l\no\nnp\n188.08 466.26
      m\n-4.20 0 l\no\nnp\n188.08 478.61 m\n-4.20 0 l\no\nnp\n188.08 490.97
      m\n-4.20 0 l\no\nnp\n188.08 503.32 m\n-4.20 0 l\no\nnp\n188.08 515.68
      m\n-4.20 0 l\no\nnp\n188.08 528.03 m\n-4.20 0 l\no\n178.00 466.26 (0)
      .5 0 90 t\n178.00 478.61 (2) .5 0 90 t\n178.00 490.97 (4) .5 0 90
      t\n178.00 503.32 (6) .5 0 90 t\n178.00 515.68 (8) .5 0 90 t\n188.08
      463.78 424.00 530.50 cl\n0 0 0 rgb\n0.75 setlinewidth\n[] 0
      setdash\n347.74 466.26 1.99 61.78 r p1\n349.73 466.26 1.99 0.00 r
      p1\n351.71 466.26 1.99 0.00 r p1\n353.70 466.26 1.99 0.00 r p1\n355.68
      466.26 1.99 0.00 r p1\n357.67 466.26 1.99 61.78 r p1\n188.08 319.78
      424.00 386.50 cl\n153.64 276.94 441.64 420.94 cl\n/ps 10 def B 10 s\n0
      0 0 rgb\n306.04 400.13 (Histogram of sample.samples.medians) .5 0 0
      t\n/ps 8 def R 8 s\n306.04 287.86 (sample.samples.medians) .5 0 0
      t\n161.20 353.14 (Frequency) .5 0 90 t\n153.64 276.94 441.64 564.94
      cl\n0 0 0 rgb\n0.75 setlinewidth\n[] 0 setdash\nnp\n216.67 319.78
      m\n198.59 0 l\no\nnp\n216.67 319.78 m\n0 -4.20 l\no\nnp\n256.39 319.78
      m\n0 -4.20 l\no\nnp\n296.11 319.78 m\n0 -4.20 l\no\nnp\n335.83 319.78
      m\n0 -4.20 l\no\nnp\n375.54 319.78 m\n0 -4.20 l\no\nnp\n415.26 319.78
      m\n0 -4.20 l\no\n/ps 8 def R 8 s\n216.67 304.66 (140) .5 0 0 t\n256.39
      304.66 (150) .5 0 0 t\n296.11 304.66 (160) .5 0 0 t\n335.83 304.66
      (170) .5 0 0 t\n375.54 304.66 (180) .5 0 0 t\n415.26 304.66 (190) .5 0
      0 t\nnp\n188.08 322.26 m\n0 61.36 l\no\nnp\n188.08 322.26 m\n-4.20 0
      l\no\nnp\n188.08 332.48 m\n-4.20 0 l\no\nnp\n188.08 342.71 m\n-4.20 0
      l\no\nnp\n188.08 352.94 m\n-4.20 0 l\no\nnp\n188.08 363.17 m\n-4.20 0
      l\no\nnp\n188.08 373.40 m\n-4.20 0 l\no\nnp\n188.08 383.62 m\n-4.20 0
      l\no\n178.00 322.26 (0) .5 0 90 t\n178.00 342.71 (1000) .5 0 90
      t\n178.00 373.40 (2500) .5 0 90 t\n188.08 319.78 424.00 386.50 cl\n0 0
      0 rgb\n0.75 setlinewidth\n[] 0 setdash\n192.84 322.26 7.94 0.14 r
      p1\n200.79 322.26 7.94 0.02 r p1\n208.73 322.26 7.94 0.37 r p1\n216.67
      322.26 7.94 0.72 r p1\n224.62 322.26 7.94 2.95 r p1\n232.56 322.26 7.94
      3.29 r p1\n240.50 322.26 7.94 4.07 r p1\n248.45 322.26 7.94 0.00 r
      p1\n256.39 322.26 7.94 0.00 r p1\n264.33 322.26 7.94 1.70 r p1\n272.28
      322.26 7.94 6.26 r p1\n280.22 322.26 7.94 0.78 r p1\n288.17 322.26 7.94
      0.59 r p1\n296.11 322.26 7.94 5.13 r p1\n304.05 322.26 7.94 7.10 r
      p1\n312.00 322.26 7.94 0.02 r p1\n319.94 322.26 7.94 14.32 r p1\n327.88
      322.26 7.94 2.95 r p1\n335.83 322.26 7.94 0.04 r p1\n343.77 322.26 7.94
      39.60 r p1\n351.71 322.26 7.94 61.78 r p1\n359.66 322.26 7.94 33.65 r
      p1\n367.60 322.26 7.94 10.53 r p1\n375.54 322.26 7.94 4.91 r p1\n383.49
      322.26 7.94 0.51 r p1\n391.43 322.26 7.94 2.97 r p1\n399.37 322.26 7.94
      0.16 r p1\nep\n%%Trailer\n%%Pages: 2\n%%EOF\n>|ps>||||||>
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      \;
    </input>
  </session>>

  We can see that the jackknife estimate of the error is too small. In fact
  it is too small by a factor of approxmimately <with|mode|math|<sqrt|20>>,
  or <with|mode|math|<sqrt|(n-1)<rsup|2>/n>>.

  <with|prog-language|r|prog-session|default|<\session>
    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      sd(jack.medians)
    </input>

    <\output>
      [1] 1.158305
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      sd( jack.medians)*sqrt(20)
    </input>

    <\output>
      [1] 5.180097
    </output>

    \;
  </session>>

  It is actually clear that the median will move between 1 2 or 3 points at
  most:

  <with|prog-language|r|prog-session|default|<\session>
    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      median( 1:3)
    </input>

    <\output>
      [1] 2
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      median(1:2)
    </input>

    <\output>
      [1] 1.5
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      median(c(1,3))
    </input>

    <\output>
      [1] 2
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      median( 2:3)\ 
    </input>

    <\output>
      [1] 2.5
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      \;
    </input>
  </session>>

  And as we see in the above example, we get just 2 points.\ 

  <with|prog-language|r|prog-session|default|<\session>
    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      table( jack.medians )
    </input>

    <\output>
      jack.medians

      173.280953077412 175.538905170459\ 

      \ \ \ \ \ \ \ \ \ \ \ \ \ \ 10 \ \ \ \ \ \ \ \ \ \ \ \ \ \ 10\ 
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      \;
    </input>
  </session>>

  Because the median has this property that it ``jumps'', the jackknife is a
  bad choice in this case.\ 

  Let us take another example:

  <with|prog-language|r|prog-session|default|<\session>
    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      a=read.table("/home/dirk/data/regression.txt",head=T)
    </input>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      plot(growth~tannin,data=a);v()
    </input>

    <\output>
      <postscript|<tuple|<raw-data|%!PS-Adobe-3.0
      EPSF-3.0\n%%DocumentNeededResources: font Helvetica\n%%+ font
      Helvetica-Bold\n%%+ font Helvetica-Oblique\n%%+ font
      Helvetica-BoldOblique\n%%+ font Symbol\n%%Title: R Graphics
      Output\n%%Creator: R Software\n%%Pages: (atend)\n%%BoundingBox: 154 277
      442 565\n%%EndComments\n%%BeginProlog\n/bp \ { gs gs } def\n% begin
      .ps.prolog\n/gs \ { gsave } def\n/gr \ { grestore } def\n/ep \ {
      showpage gr gr } def\n/m \ \ { moveto } def\n/l \ { rlineto } def\n/np
      \ { newpath } def\n/cp \ { closepath } def\n/f \ \ { fill } def\n/o
      \ \ { stroke } def\n/c \ \ { newpath 0 360 arc } def\n/r \ \ { 4 2 roll
      moveto 1 copy 3 -1 roll exch 0 exch rlineto 0 rlineto -1 mul 0 exch
      rlineto closepath } def\n/p1 \ { stroke } def\n/p2 \ { gsave bg
      setrgbcolor fill grestore newpath } def\n/p3 \ { gsave bg setrgbcolor
      fill grestore stroke } def\n/t \ \ { 6 -2 roll moveto gsave rotate\n
      \ \ \ \ \ \ ps mul neg 0 2 1 roll rmoveto\n \ \ \ \ \ \ 1 index
      stringwidth pop\n \ \ \ \ \ \ mul neg 0 rmoveto show grestore }
      def\n/cl \ { grestore gsave newpath 3 index 3 index moveto 1 index\n
      \ \ \ \ \ \ 4 -1 roll lineto \ exch 1 index lineto lineto\n
      \ \ \ \ \ \ closepath clip newpath } def\n/rgb { setrgbcolor } def\n/s
      \ \ { scalefont setfont } def\n/R \ \ { /Font1 findfont } def\n/B \ \ {
      /Font2 findfont } def\n/I \ \ { /Font3 findfont } def\n/BI \ { /Font4
      findfont } def\n/S \ \ { /Font5 findfont } def\n1 setlinecap 1
      setlinejoin\n% end \ \ .ps.prolog\n%%IncludeResource: font
      Helvetica\n/Helvetica findfont\ndup length dict begin\n \ {1 index /FID
      ne {def} {pop pop} ifelse} forall\n \ /Encoding ISOLatin1Encoding def\n
      \ currentdict\n \ end\n/Font1 exch definefont pop\n%%IncludeResource:
      font Helvetica-Bold\n/Helvetica-Bold findfont\ndup length dict begin\n
      \ {1 index /FID ne {def} {pop pop} ifelse} forall\n \ /Encoding
      ISOLatin1Encoding def\n \ currentdict\n \ end\n/Font2 exch definefont
      pop\n%%IncludeResource: font Helvetica-Oblique\n/Helvetica-Oblique
      findfont\ndup length dict begin\n \ {1 index /FID ne {def} {pop pop}
      ifelse} forall\n \ /Encoding ISOLatin1Encoding def\n \ currentdict\n
      \ end\n/Font3 exch definefont pop\n%%IncludeResource: font
      Helvetica-BoldOblique\n/Helvetica-BoldOblique findfont\ndup length dict
      begin\n \ {1 index /FID ne {def} {pop pop} ifelse} forall\n \ /Encoding
      ISOLatin1Encoding def\n \ currentdict\n \ end\n/Font4 exch definefont
      pop\n%%IncludeResource: font Symbol\n/Symbol findfont\ndup length dict
      begin\n \ {1 index /FID ne {def} {pop pop} ifelse} forall\n
      \ currentdict\n \ end\n/Font5 exch definefont pop\n%%EndProlog\n%%Page:
      2 2\nbp\n202.84 338.14 416.44 515.74 cl\n202.84 338.14 416.44 515.74
      cl\n0 0 0 rgb\n0.75 setlinewidth\n[] 0 setdash\n210.75 509.17 2.25 c
      p1\n235.47 476.28 2.25 c p1\n260.19 443.39 2.25 c p1\n284.92 492.72
      2.25 c p1\n309.64 410.50 2.25 c p1\n334.36 426.94 2.25 c p1\n359.08
      344.72 2.25 c p1\n383.80 361.17 2.25 c p1\n408.53 361.17 2.25 c
      p1\n153.64 276.94 441.64 564.94 cl\n0 0 0 rgb\n0.75 setlinewidth\n[] 0
      setdash\nnp\n210.75 338.14 m\n197.78 0 l\no\nnp\n210.75 338.14 m\n0
      -6.00 l\no\nnp\n260.19 338.14 m\n0 -6.00 l\no\nnp\n309.64 338.14 m\n0
      -6.00 l\no\nnp\n359.08 338.14 m\n0 -6.00 l\no\nnp\n408.53 338.14 m\n0
      -6.00 l\no\n/ps 12 def R 12 s\n210.75 316.54 (0) .5 0 0 t\n260.19
      316.54 (2) .5 0 0 t\n309.64 316.54 (4) .5 0 0 t\n359.08 316.54 (6) .5 0
      0 t\n408.53 316.54 (8) .5 0 0 t\nnp\n202.84 344.72 m\n0 164.45
      l\no\nnp\n202.84 344.72 m\n-6.00 0 l\no\nnp\n202.84 377.61 m\n-6.00 0
      l\no\nnp\n202.84 410.50 m\n-6.00 0 l\no\nnp\n202.84 443.39 m\n-6.00 0
      l\no\nnp\n202.84 476.28 m\n-6.00 0 l\no\nnp\n202.84 509.17 m\n-6.00 0
      l\no\n188.44 344.72 (2) .5 0 90 t\n188.44 377.61 (4) .5 0 90 t\n188.44
      410.50 (6) .5 0 90 t\n188.44 443.39 (8) .5 0 90 t\n188.44 476.28 (10)
      .5 0 90 t\n188.44 509.17 (12) .5 0 90 t\nnp\n202.84 338.14 m\n213.60 0
      l\n0 177.60 l\n-213.60 0 l\n0 -177.60 l\no\n153.64 276.94 441.64 564.94
      cl\n/ps 12 def R 12 s\n0 0 0 rgb\n309.64 292.54 (tannin) .5 0 0
      t\n164.44 426.94 (growth) .5 0 90 t\nep\n%%Trailer\n%%Pages:
      2\n%%EOF\n>|ps>||||||>
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      reg=lm(growth~tannin,data=a)
    </input>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      reg
    </input>

    <\output>
      \;

      Call:

      lm(formula = growth ~ tannin, data = a)

      \;

      Coefficients:

      (Intercept) \ \ \ \ \ \ tannin \ 

      \ \ \ \ \ 11.756 \ \ \ \ \ \ -1.217 \ 
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      names(reg)
    </input>

    <\output>
      \ [1] "coefficients" \ "residuals" \ \ \ \ "effects" \ \ \ \ \ \ "rank"
      \ \ \ \ \ \ \ \ 

      \ [5] "fitted.values" "assign" \ \ \ \ \ \ \ "qr"
      \ \ \ \ \ \ \ \ \ \ \ "df.residual" \ 

      \ [9] "xlevels" \ \ \ \ \ \ "call" \ \ \ \ \ \ \ \ \ "terms"
      \ \ \ \ \ \ \ \ "model" \ \ \ \ \ \ \ 
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      reg$coefficients[2]
    </input>

    <\output>
      \ \ \ tannin\ 

      -1.216667\ 
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      \;
    </input>
  </session>>

  Let us say that we would like to know how exact this estimate of the slope
  is

  First, let us write a function that given growth and tannin tells us the
  slope:

  <with|prog-language|r|prog-session|default|<\session>
    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      slope=function(gr,ta){reg=lm(gr~ta);reg$coeff[2]}
    </input>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      slope(a$gro,a$tan)
    </input>

    <\output>
      \ \ \ \ \ \ \ ta\ 

      -1.216667\ 
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      \;
    </input>
  </session>>

  Now let us write a function that given idexes, calculates the slope for
  those points of data from a:

  <with|prog-language|r|prog-session|default|<\session>
    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      index.slope=function(i) slope( a$gr[i], a$tan[i] )
    </input>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      a
    </input>

    <\output>
      \ \ growth tannin

      1 \ \ \ \ 12 \ \ \ \ \ 0

      2 \ \ \ \ 10 \ \ \ \ \ 1

      3 \ \ \ \ \ 8 \ \ \ \ \ 2

      4 \ \ \ \ 11 \ \ \ \ \ 3

      5 \ \ \ \ \ 6 \ \ \ \ \ 4

      6 \ \ \ \ \ 7 \ \ \ \ \ 5

      7 \ \ \ \ \ 2 \ \ \ \ \ 6

      8 \ \ \ \ \ 3 \ \ \ \ \ 7

      9 \ \ \ \ \ 3 \ \ \ \ \ 8
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      index.slope(1:9)
    </input>

    <\output>
      \ \ \ \ \ \ \ ta\ 

      -1.216667\ 
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      index.slope(1:3)
    </input>

    <\output>
      ta\ 

      -2\ 
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      index.slope(-1)
    </input>

    <\output>
      \ \ \ \ \ \ \ ta\ 

      -1.190476\ 
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      \;
    </input>
  </session>>

  Now the jackknife is very simple:

  <with|prog-language|r|prog-session|default|<\session>
    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      jack.slopes=sapply(-(1:9), index.slope)
    </input>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      jack.slopes
    </input>

    <\output>
      \ \ \ \ \ \ \ ta \ \ \ \ \ \ \ ta \ \ \ \ \ \ \ ta \ \ \ \ \ \ \ ta
      \ \ \ \ \ \ \ ta \ \ \ \ \ \ \ ta \ \ \ \ \ \ \ ta \ \ \ \ \ \ \ ta\ 

      -1.190476 -1.253133 -1.270270 -1.161359 -1.216667 -1.242038 -1.117117
      -1.200501\ 

      \ \ \ \ \ \ \ ta\ 

      -1.321429\ 
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      \;
    </input>
  </session>>

  Bootstrap is a bit more complicated:

  <with|prog-language|r|prog-session|default|<\session>
    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      boot=t( sapply(1:200,function(i) sample(1:9,rep=T) ) )
    </input>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      boot.slopes=apply(boot,1,index.slope)
    </input>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      layout(matrix(1:2,2,1));par(cex=0.7);hist(boot.slopes,prob=T,xlim=c(-3,-0.5))
    </input>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      hist(jack.slopes,prob=T,xlim=c(-3,-0.5));v();layout(1)
    </input>

    <\output>
      <postscript|<tuple|<raw-data|%!PS-Adobe-3.0
      EPSF-3.0\n%%DocumentNeededResources: font Helvetica\n%%+ font
      Helvetica-Bold\n%%+ font Helvetica-Oblique\n%%+ font
      Helvetica-BoldOblique\n%%+ font Symbol\n%%Title: R Graphics
      Output\n%%Creator: R Software\n%%Pages: (atend)\n%%BoundingBox: 154 277
      442 565\n%%EndComments\n%%BeginProlog\n/bp \ { gs gs } def\n% begin
      .ps.prolog\n/gs \ { gsave } def\n/gr \ { grestore } def\n/ep \ {
      showpage gr gr } def\n/m \ \ { moveto } def\n/l \ { rlineto } def\n/np
      \ { newpath } def\n/cp \ { closepath } def\n/f \ \ { fill } def\n/o
      \ \ { stroke } def\n/c \ \ { newpath 0 360 arc } def\n/r \ \ { 4 2 roll
      moveto 1 copy 3 -1 roll exch 0 exch rlineto 0 rlineto -1 mul 0 exch
      rlineto closepath } def\n/p1 \ { stroke } def\n/p2 \ { gsave bg
      setrgbcolor fill grestore newpath } def\n/p3 \ { gsave bg setrgbcolor
      fill grestore stroke } def\n/t \ \ { 6 -2 roll moveto gsave rotate\n
      \ \ \ \ \ \ ps mul neg 0 2 1 roll rmoveto\n \ \ \ \ \ \ 1 index
      stringwidth pop\n \ \ \ \ \ \ mul neg 0 rmoveto show grestore }
      def\n/cl \ { grestore gsave newpath 3 index 3 index moveto 1 index\n
      \ \ \ \ \ \ 4 -1 roll lineto \ exch 1 index lineto lineto\n
      \ \ \ \ \ \ closepath clip newpath } def\n/rgb { setrgbcolor } def\n/s
      \ \ { scalefont setfont } def\n/R \ \ { /Font1 findfont } def\n/B \ \ {
      /Font2 findfont } def\n/I \ \ { /Font3 findfont } def\n/BI \ { /Font4
      findfont } def\n/S \ \ { /Font5 findfont } def\n1 setlinecap 1
      setlinejoin\n% end \ \ .ps.prolog\n%%IncludeResource: font
      Helvetica\n/Helvetica findfont\ndup length dict begin\n \ {1 index /FID
      ne {def} {pop pop} ifelse} forall\n \ /Encoding ISOLatin1Encoding def\n
      \ currentdict\n \ end\n/Font1 exch definefont pop\n%%IncludeResource:
      font Helvetica-Bold\n/Helvetica-Bold findfont\ndup length dict begin\n
      \ {1 index /FID ne {def} {pop pop} ifelse} forall\n \ /Encoding
      ISOLatin1Encoding def\n \ currentdict\n \ end\n/Font2 exch definefont
      pop\n%%IncludeResource: font Helvetica-Oblique\n/Helvetica-Oblique
      findfont\ndup length dict begin\n \ {1 index /FID ne {def} {pop pop}
      ifelse} forall\n \ /Encoding ISOLatin1Encoding def\n \ currentdict\n
      \ end\n/Font3 exch definefont pop\n%%IncludeResource: font
      Helvetica-BoldOblique\n/Helvetica-BoldOblique findfont\ndup length dict
      begin\n \ {1 index /FID ne {def} {pop pop} ifelse} forall\n \ /Encoding
      ISOLatin1Encoding def\n \ currentdict\n \ end\n/Font4 exch definefont
      pop\n%%IncludeResource: font Symbol\n/Symbol findfont\ndup length dict
      begin\n \ {1 index /FID ne {def} {pop pop} ifelse} forall\n
      \ currentdict\n \ end\n/Font5 exch definefont pop\n%%EndProlog\n%%Page:
      2 2\nbp\n188.08 463.78 424.00 530.50 cl\n153.64 420.94 441.64 564.94
      cl\n/ps 10 def B 10 s\n0 0 0 rgb\n306.04 544.13 (Histogram of
      boot.slopes) .5 0 0 t\n/ps 8 def R 8 s\n306.04 431.86 (boot.slopes) .5
      0 0 t\n161.20 497.14 (Density) .5 0 90 t\n153.64 276.94 441.64 564.94
      cl\n0 0 0 rgb\n0.75 setlinewidth\n[] 0 setdash\nnp\n196.82 463.78
      m\n218.44 0 l\no\nnp\n196.82 463.78 m\n0 -4.20 l\no\nnp\n240.50 463.78
      m\n0 -4.20 l\no\nnp\n284.19 463.78 m\n0 -4.20 l\no\nnp\n327.88 463.78
      m\n0 -4.20 l\no\nnp\n371.57 463.78 m\n0 -4.20 l\no\nnp\n415.26 463.78
      m\n0 -4.20 l\no\n/ps 8 def R 8 s\n196.82 448.66 (-3.0) .5 0 0 t\n240.50
      448.66 (-2.5) .5 0 0 t\n284.19 448.66 (-2.0) .5 0 0 t\n327.88 448.66
      (-1.5) .5 0 0 t\n371.57 448.66 (-1.0) .5 0 0 t\n415.26 448.66 (-0.5) .5
      0 0 t\nnp\n188.08 466.26 m\n0 59.54 l\no\nnp\n188.08 466.26 m\n-4.20 0
      l\no\nnp\n188.08 481.14 m\n-4.20 0 l\no\nnp\n188.08 496.03 m\n-4.20 0
      l\no\nnp\n188.08 510.91 m\n-4.20 0 l\no\nnp\n188.08 525.80 m\n-4.20 0
      l\no\n178.00 466.26 (0.0) .5 0 90 t\n178.00 496.03 (1.0) .5 0 90
      t\n178.00 525.80 (2.0) .5 0 90 t\n188.08 463.78 424.00 530.50 cl\n0 0 0
      rgb\n0.75 setlinewidth\n[] 0 setdash\n249.24 466.26 17.48 0.74 r
      p1\n266.72 466.26 17.48 0.74 r p1\n284.19 466.26 17.48 0.74 r
      p1\n301.67 466.26 17.48 4.47 r p1\n319.14 466.26 17.48 16.37 r
      p1\n336.62 466.26 17.48 61.78 r p1\n354.10 466.26 17.48 55.08 r
      p1\n371.57 466.26 17.48 8.19 r p1\n389.05 466.26 17.48 0.74 r
      p1\n188.08 319.78 424.00 386.50 cl\n153.64 276.94 441.64 420.94 cl\n/ps
      10 def B 10 s\n0 0 0 rgb\n306.04 400.13 (Histogram of jack.slopes) .5 0
      0 t\n/ps 8 def R 8 s\n306.04 287.86 (jack.slopes) .5 0 0 t\n161.20
      353.14 (Density) .5 0 90 t\n153.64 276.94 441.64 564.94 cl\n0 0 0
      rgb\n0.75 setlinewidth\n[] 0 setdash\nnp\n196.82 319.78 m\n218.44 0
      l\no\nnp\n196.82 319.78 m\n0 -4.20 l\no\nnp\n240.50 319.78 m\n0 -4.20
      l\no\nnp\n284.19 319.78 m\n0 -4.20 l\no\nnp\n327.88 319.78 m\n0 -4.20
      l\no\nnp\n371.57 319.78 m\n0 -4.20 l\no\nnp\n415.26 319.78 m\n0 -4.20
      l\no\n/ps 8 def R 8 s\n196.82 304.66 (-3.0) .5 0 0 t\n240.50 304.66
      (-2.5) .5 0 0 t\n284.19 304.66 (-2.0) .5 0 0 t\n327.88 304.66 (-1.5) .5
      0 0 t\n371.57 304.66 (-1.0) .5 0 0 t\n415.26 304.66 (-0.5) .5 0 0
      t\nnp\n188.08 322.26 m\n0 55.60 l\no\nnp\n188.08 322.26 m\n-4.20 0
      l\no\nnp\n188.08 331.52 m\n-4.20 0 l\no\nnp\n188.08 340.79 m\n-4.20 0
      l\no\nnp\n188.08 350.06 m\n-4.20 0 l\no\nnp\n188.08 359.32 m\n-4.20 0
      l\no\nnp\n188.08 368.59 m\n-4.20 0 l\no\nnp\n188.08 377.86 m\n-4.20 0
      l\no\n178.00 322.26 (0) .5 0 90 t\n178.00 340.79 (2) .5 0 90 t\n178.00
      359.32 (4) .5 0 90 t\n178.00 377.86 (6) .5 0 90 t\n188.08 319.78 424.00
      386.50 cl\n0 0 0 rgb\n0.75 setlinewidth\n[] 0 setdash\n340.99 322.26
      4.37 20.59 r p1\n345.36 322.26 4.37 41.19 r p1\n349.73 322.26 4.37
      61.78 r p1\n354.10 322.26 4.37 41.19 r p1\n358.46 322.26 4.37 20.59 r
      p1\nep\n%%Trailer\n%%Pages: 2\n%%EOF\n>|ps>||||||>
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      sd(boot.slopes)
    </input>

    <\output>
      [1] 0.1943785
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      sd(jack.slopes)
    </input>

    <\output>
      [1] 0.06090926
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      sd(jack.slopes)*sqrt(9)
    </input>

    <\output>
      [1] 0.1827278
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      \;
    </input>
  </session>>

  <subsection|Confidence intervals>

  A general rule of thumb says that to estimate the error, 200 bootstrap
  samples are enough. To estimate 95% confidence intervals, one needs around
  1000.

  <with|prog-language|r|prog-session|default|<\session>
    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      boot=t( sapply(1:1000,function(i) sample(1:9,rep=T) ) )
    </input>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      boot.slopes=apply(boot,1,index.slope)
    </input>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      quantile(boot.slopes,0.025)
    </input>

    <\output>
      \ \ \ \ \ 2.5%\ 

      -1.609121\ 
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      quantile(boot.slopes,0.975)
    </input>

    <\output>
      \ \ \ \ \ 97.5%\ 

      -0.9084386\ 
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      \;
    </input>
  </session>>

  There are actually more acurate methods for calculating confidence
  intervals using quantiles. It can be done with the function bcanon in the
  library bootstrap:

  <with|prog-language|r|prog-session|default|<\session>
    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      library(bootstrap)
    </input>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      bcanon(1:9,1000,index.slope)
    </input>

    <\output>
      $confpoints

      \ \ \ \ \ alpha \ bca point

      [1,] 0.025 -1.6774194

      [2,] 0.050 -1.5909091

      [3,] 0.100 -1.4782609

      [4,] 0.160 -1.4000000

      [5,] 0.840 -1.0920330

      [6,] 0.900 -1.0520833

      [7,] 0.950 -1.0061728

      [8,] 0.975 -0.9530201

      \;

      $z0

      [1] -0.06521854

      \;

      $acc

      [1] -0.001202818

      \;

      $u

      [1] -1.190476 -1.253133 -1.270270 -1.161359 -1.216667 -1.242038
      -1.117117

      [8] -1.200501 -1.321429

      \;

      $call

      bcanon(x = 1:9, nboot = 1000, theta = index.slope)

      \;

      Warning message:\ 

      multi-argument returns are deprecated in: return(confpoints, z0, acc,
      u, call = call)\ 
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      \;
    </input>
  </session>>

  <subsection|Permutation tests>

  Permutation tests are very similar to bootstraps. They test if two
  distributions are the same:

  <with|prog-language|r|prog-session|default|<\session>
    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      x=rnorm(10)
    </input>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      y=rnorm(20)+1
    </input>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      mean(x)-mean(y)
    </input>

    <\output>
      [1] -0.7245577
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      \;
    </input>
  </session>>

  In a permutation test, we permute the data, and ask how often it has such a
  difference between the samples:

  <with|prog-language|r|prog-session|default|<\session>
    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      perm=t( sapply( 1:1000, function(i) sample( c(x,y) ) ) )
    </input>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      perm.diff = apply(perm, 1, function(xy){ mean(xy[1:10])-mean(xy[11:30])
      } )
    </input>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      sum( abs(perm.diff) \<gtr\> abs((mean(x)-mean(y))) )
    </input>

    <\output>
      [1] 36
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      36/1000
    </input>

    <\output>
      [1] 0.036
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      \;
    </input>
  </session>>

  So this permutation test sees the data as significantly different

  <with|prog-language|r|prog-session|default|<\session>
    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      t.test(x,y)$p.value
    </input>

    <\output>
      [1] 0.07868077
    </output>

    <\input|<with|color|red|\<gtr\> <with|color|black|>>>
      \;
    </input>
  </session>>

  The permutation test tests the hypothesis that the two distributions are
  the same.

  With a bootstrap test, we could do a very similar test, except that we
  sample <strong|with replacement>.

  \;
</body>

<\initial>
  <\collection>
    <associate|page-even|30mm>
    <associate|page-reduce-bot|15mm>
    <associate|page-reduce-right|25mm>
    <associate|page-reduce-left|25mm>
    <associate|page-type|a4>
    <associate|page-top|30mm>
    <associate|page-right|30mm>
    <associate|par-width|150mm>
    <associate|page-odd|30mm>
    <associate|page-bot|30mm>
    <associate|language|english>
    <associate|page-reduce-top|15mm>
  </collection>
</initial>

<\references>
  <\collection>
    <associate|toc-5|<tuple|<uninit>|?>>
    <associate|toc-6|<tuple|<uninit>|?>>
    <associate|toc-1|<tuple|<uninit>|?>>
    <associate|toc-2|<tuple|<uninit>|?>>
    <associate|toc-3|<tuple|<uninit>|?>>
    <associate|toc-4|<tuple|<uninit>|?>>
  </collection>
</references>

<\auxiliary>
  <\collection>
    <\associate|toc>
      Lecture 7 - Bootstrap and Jackknife<value|toc-dots><pageref|toc-1>

      <with|par-left|<quote|1.5fn>|Example:
      Median<value|toc-dots><pageref|toc-2>>
    </associate>
  </collection>
</auxiliary>
