\begin{knitrout}
\definecolor{shadecolor}{rgb}{0.969, 0.969, 0.969}\color{fgcolor}\begin{kframe}
\begin{alltt}
\hlstd{nboot}\hlkwb{<-}\hlnum{1000}
\hlkwd{set.seed}\hlstd{(}\hlnum{45}\hlstd{)}
\hlstd{ests.mat}\hlkwb{<-}\hlkwd{matrix}\hlstd{(}\hlnum{0}\hlstd{,}\hlkwc{nrow}\hlstd{=nboot,}\hlkwc{ncol}\hlstd{=}\hlnum{10}\hlstd{)}
\hlstd{n}\hlkwb{<-}\hlkwd{nrow}\hlstd{(small.nhanes)}
\hlkwd{library}\hlstd{(splines)}
\hlkwa{for}\hlstd{(ib} \hlkwa{in} \hlnum{1}\hlopt{:}\hlstd{nboot)\{}
    \hlstd{ind}\hlkwb{<-}\hlkwd{sample}\hlstd{(}\hlnum{1}\hlopt{:}\hlstd{n,}\hlkwc{size}\hlstd{=n,}\hlkwc{rep}\hlstd{=T)}
    \hlstd{boot.nhanes}\hlkwb{<-}\hlstd{small.nhanes[ind,]}
    \hlstd{boot.allsmoke} \hlkwb{<-} \hlstd{boot.nosmoke} \hlkwb{<-} \hlstd{boot.nhanes}
    \hlstd{boot.allsmoke}\hlopt{$}\hlstd{SmokeNow} \hlkwb{<-} \hlnum{1}
    \hlstd{boot.nosmoke}\hlopt{$}\hlstd{SmokeNow} \hlkwb{<-} \hlnum{0}

    \hlstd{ests.mat[ib,}\hlnum{1}\hlstd{]}\hlkwb{<-}\hlkwd{coef}\hlstd{(}\hlkwd{lm}\hlstd{(BPSysAve}\hlopt{~}\hlstd{SmokeNow,}\hlkwc{data}\hlstd{=boot.nhanes))[}\hlnum{2}\hlstd{]}
    \hlstd{ests.mat[ib,}\hlnum{2}\hlstd{]}\hlkwb{<-}\hlkwd{coef}\hlstd{(}\hlkwd{lm}\hlstd{(fmod,}\hlkwc{data}\hlstd{=boot.nhanes))[}\hlnum{2}\hlstd{]}

    \hlstd{mod1.lmX} \hlkwb{<-} \hlkwd{lm}\hlstd{(fmodi,}\hlkwc{data}\hlstd{=boot.nhanes)}
    \hlstd{APO.lmX.1} \hlkwb{<-} \hlkwd{mean}\hlstd{(}\hlkwd{predict}\hlstd{(mod1.lmX,boot.allsmoke))}
    \hlstd{APO.lmX.0} \hlkwb{<-} \hlkwd{mean}\hlstd{(}\hlkwd{predict}\hlstd{(mod1.lmX,boot.nosmoke))}
    \hlstd{ests.mat[ib,}\hlnum{3}\hlstd{]}\hlkwb{<-}\hlstd{APO.lmX.1} \hlopt{-} \hlstd{APO.lmX.0}

    \hlstd{ps.mod} \hlkwb{<-} \hlkwd{glm}\hlstd{(fmods,}\hlkwc{data}\hlstd{=boot.nhanes,}\hlkwc{family}\hlstd{=}\hlstr{"binomial"}\hlstd{)}
    \hlstd{ps.lr} \hlkwb{<-} \hlkwd{predict}\hlstd{(ps.mod,}\hlkwc{type}\hlstd{=}\hlstr{"response"}\hlstd{)}
    \hlstd{ps0}\hlkwb{<-}\hlstd{ps.lr[boot.nhanes}\hlopt{$}\hlstd{SmokeNow}\hlopt{==}\hlnum{0}\hlstd{];ps1}\hlkwb{<-}\hlstd{ps.lr[boot.nhanes}\hlopt{$}\hlstd{SmokeNow}\hlopt{==}\hlnum{1}\hlstd{]}
    \hlstd{quints} \hlkwb{<-} \hlkwd{c}\hlstd{(}\hlnum{0}\hlstd{,}\hlkwd{quantile}\hlstd{(ps.lr,}\hlkwd{seq}\hlstd{(}\hlnum{.2}\hlstd{,}\hlnum{1}\hlstd{,}\hlnum{.2}\hlstd{)))}
    \hlstd{Y}\hlkwb{<-}\hlstd{boot.nhanes}\hlopt{$}\hlstd{BPSysAve}
    \hlstd{ps.lr.quints} \hlkwb{<-} \hlkwd{cut}\hlstd{(ps.lr,quints,}\hlkwc{labels}\hlstd{=}\hlnum{1}\hlopt{:}\hlnum{5}\hlstd{)}
    \hlstd{p.strat} \hlkwb{<-} \hlkwd{table}\hlstd{(ps.lr.quints)}\hlopt{/}\hlkwd{length}\hlstd{(ps.lr.quints)}
    \hlstd{ATE.strat} \hlkwb{<-} \hlkwd{rep}\hlstd{(}\hlnum{NA}\hlstd{,}\hlnum{5}\hlstd{)}
    \hlkwa{for}\hlstd{(j} \hlkwa{in} \hlnum{1}\hlopt{:}\hlnum{5}\hlstd{) \{}
        \hlstd{ATE.strat[j]} \hlkwb{<-} \hlkwd{mean}\hlstd{(Y[boot.nhanes}\hlopt{$}\hlstd{SmokeNow} \hlopt{==} \hlnum{1} \hlopt{&} \hlstd{ps.lr.quints}\hlopt{==}\hlstd{j])}\hlopt{-}
                        \hlkwd{mean}\hlstd{(Y[boot.nhanes}\hlopt{$}\hlstd{SmokeNow} \hlopt{==} \hlnum{0} \hlopt{&} \hlstd{ps.lr.quints}\hlopt{==}\hlstd{j])}
    \hlstd{\}}
    \hlstd{ests.mat[ib,}\hlnum{4}\hlstd{]}\hlkwb{<-}\hlkwd{sum}\hlstd{(ATE.strat}\hlopt{*}\hlstd{p.strat)}

    \hlstd{boot.nhanes}\hlopt{$}\hlstd{ps.lr}\hlkwb{<-}\hlstd{ps.lr}
    \hlstd{ps.lr.match} \hlkwb{<-} \hlkwd{Match}\hlstd{(}\hlkwc{Tr}\hlstd{=boot.nhanes}\hlopt{$}\hlstd{SmokeNow,}\hlkwc{X}\hlstd{=boot.nhanes}\hlopt{$}\hlstd{ps.lr,}\hlkwc{estimand}\hlstd{=}\hlstr{"ATE"}\hlstd{,}\hlkwc{ties}\hlstd{=}\hlnum{FALSE}\hlstd{)}
    \hlstd{matched.samp} \hlkwb{<-} \hlstd{boot.nhanes[}\hlkwd{c}\hlstd{(ps.lr.match}\hlopt{$}\hlstd{index.control,ps.lr.match}\hlopt{$}\hlstd{index.treated),]}
    \hlstd{ests.mat[ib,}\hlnum{5}\hlstd{]}\hlkwb{<-}\hlkwd{mean}\hlstd{(matched.samp}\hlopt{$}\hlstd{BPSysAve[matched.samp}\hlopt{$}\hlstd{SmokeNow} \hlopt{==} \hlnum{1}\hlstd{])} \hlopt{-}
                    \hlkwd{mean}\hlstd{(matched.samp}\hlopt{$}\hlstd{BPSysAve[matched.samp}\hlopt{$}\hlstd{SmokeNow} \hlopt{==} \hlnum{0}\hlstd{])}

    \hlstd{mod1.PSlm1} \hlkwb{<-} \hlkwd{lm}\hlstd{(BPSysAve}\hlopt{~}\hlstd{SmokeNow}\hlopt{+}\hlstd{ps.lr,}\hlkwc{data}\hlstd{=boot.nhanes)}
    \hlstd{APO.PSlm1.1} \hlkwb{<-} \hlkwd{mean}\hlstd{(}\hlkwd{predict}\hlstd{(mod1.PSlm1,boot.allsmoke))}
    \hlstd{APO.PSlm1.0} \hlkwb{<-} \hlkwd{mean}\hlstd{(}\hlkwd{predict}\hlstd{(mod1.PSlm1,boot.nosmoke))}
    \hlstd{ests.mat[ib,}\hlnum{6}\hlstd{]}\hlkwb{<-}\hlstd{APO.PSlm1.1} \hlopt{-} \hlstd{APO.PSlm1.0}

    \hlstd{mod1.PSlm2} \hlkwb{<-} \hlkwd{lm}\hlstd{(BPSysAve}\hlopt{~}\hlstd{(}\hlnum{1}\hlopt{+}\hlstd{SmokeNow)}\hlopt{*}\hlstd{(ps.lr}\hlopt{+}\hlkwd{I}\hlstd{(ps.lr}\hlopt{^}\hlnum{2}\hlstd{)),}\hlkwc{data}\hlstd{=boot.nhanes)}
    \hlstd{APO.PSlm2.1} \hlkwb{<-} \hlkwd{mean}\hlstd{(}\hlkwd{predict}\hlstd{(mod1.PSlm2,boot.allsmoke))}
    \hlstd{APO.PSlm2.0} \hlkwb{<-} \hlkwd{mean}\hlstd{(}\hlkwd{predict}\hlstd{(mod1.PSlm2,boot.nosmoke))}
    \hlstd{ests.mat[ib,}\hlnum{7}\hlstd{]}\hlkwb{<-}\hlstd{APO.PSlm2.1} \hlopt{-} \hlstd{APO.PSlm2.0}

    \hlstd{mod1.PSlm3} \hlkwb{<-} \hlkwd{lm}\hlstd{(BPSysAve}\hlopt{~}\hlstd{(}\hlnum{1}\hlopt{+}\hlstd{SmokeNow)}\hlopt{*}\hlkwd{bs}\hlstd{(ps.lr,}\hlkwc{df}\hlstd{=}\hlnum{4}\hlstd{,}\hlkwc{Boundary.knots} \hlstd{=} \hlkwd{range}\hlstd{(}\hlnum{0}\hlstd{,}\hlnum{1}\hlstd{)),}
                        \hlkwc{data}\hlstd{=boot.nhanes)}
    \hlstd{APO.PSlm3.1} \hlkwb{<-} \hlkwd{mean}\hlstd{(}\hlkwd{predict}\hlstd{(mod1.PSlm3,boot.allsmoke))}
    \hlstd{APO.PSlm3.0} \hlkwb{<-} \hlkwd{mean}\hlstd{(}\hlkwd{predict}\hlstd{(mod1.PSlm3,boot.nosmoke))}
    \hlstd{ests.mat[ib,}\hlnum{8}\hlstd{]}\hlkwb{<-}\hlstd{APO.PSlm3.1} \hlopt{-} \hlstd{APO.PSlm3.0}

    \hlstd{ps.lr.weight} \hlkwb{<-} \hlstd{boot.nhanes}\hlopt{$}\hlstd{SmokeNow}\hlopt{/}\hlstd{ps.lr} \hlopt{+} \hlstd{(}\hlnum{1}\hlopt{-}\hlstd{boot.nhanes}\hlopt{$}\hlstd{SmokeNow)}\hlopt{/}\hlstd{(}\hlnum{1}\hlopt{-}\hlstd{ps.lr)}
    \hlstd{ests.mat[ib,}\hlnum{9}\hlstd{]}\hlkwb{<-}\hlkwd{coef}\hlstd{(}\hlkwd{lm}\hlstd{(Y} \hlopt{~} \hlstd{boot.nhanes}\hlopt{$}\hlstd{SmokeNow,} \hlkwc{weights} \hlstd{= ps.lr.weight))[}\hlnum{2}\hlstd{]}

    \hlstd{boot.allsmoke} \hlkwb{<-} \hlstd{boot.nosmoke} \hlkwb{<-} \hlstd{boot.nhanes}
    \hlstd{boot.allsmoke}\hlopt{$}\hlstd{SmokeNow} \hlkwb{<-} \hlnum{1}
    \hlstd{boot.nosmoke}\hlopt{$}\hlstd{SmokeNow} \hlkwb{<-} \hlnum{0}

    \hlstd{mod1} \hlkwb{<-} \hlkwd{lm}\hlstd{(fmodi,}\hlkwc{data}\hlstd{=boot.nhanes)}
    \hlstd{m1}\hlkwb{<-}\hlkwd{predict}\hlstd{(mod1,boot.allsmoke)}
    \hlstd{m0}\hlkwb{<-}\hlkwd{predict}\hlstd{(mod1,boot.nosmoke)}
    \hlstd{Smoke}\hlkwb{<-}\hlstd{boot.nhanes}\hlopt{$}\hlstd{SmokeNow}
    \hlstd{ps.trunc}\hlkwb{<-}\hlkwd{pmin}\hlstd{(}\hlkwd{pmax}\hlstd{(}\hlnum{0.001}\hlstd{,ps.lr),}\hlnum{0.999}\hlstd{)}
    \hlstd{APO.1}\hlkwb{<-}\hlkwd{mean}\hlstd{(Smoke}\hlopt{*}\hlstd{(Y}\hlopt{-}\hlstd{m1)}\hlopt{/}\hlstd{ps.trunc)}\hlopt{+}\hlkwd{mean}\hlstd{(m1)}
    \hlstd{APO.0}\hlkwb{<-}\hlkwd{mean}\hlstd{((}\hlnum{1}\hlopt{-}\hlstd{Smoke)}\hlopt{*}\hlstd{(Y}\hlopt{-}\hlstd{m0)}\hlopt{/}\hlstd{(}\hlnum{1}\hlopt{-}\hlstd{ps.trunc))}\hlopt{+}\hlkwd{mean}\hlstd{(m0)}
    \hlstd{ests.mat[ib,}\hlnum{10}\hlstd{]}\hlkwb{<-}\hlstd{APO.1}\hlopt{-}\hlstd{APO.0}
\hlstd{\}}
\end{alltt}
\end{kframe}
\end{knitrout}