pdf("g11.pdf");options(width=64) #setwd("C:\\Users\\kolassa\\Class555") setwd("~/Taught1/960-555/Data")
#*************************************************************/
# Data from http://lib.stat.cmu.edu/datasets/Arsenic         */
# reformatted into ASCII on the course home page.  Data re-  */
# flect arsenic levels in toenail clippings; covariates in-  */
# clude age, sex (1=M), categorical measures of quantities   */
# used for drinking and cooking, arsenic in the water, and   */
# arsenic in the nails.  To make arsenic.dat from Arsenic, do*/
#antiword Arsenic|awk '((NR>39)&&(NR<61)){print}'>arsenic.dat*/
#*************************************************************/
arsenic<-read.table("arsenic.dat")
names(arsenic)<-c("age","sex","drink","cook","water",
   "nails")
arsenic$status<-(arsenic$water>=.0001)+0
arsenic$water[arsenic$water<.0001]<-.0001
arsenic$lnail<-log(arsenic$nails)
arsenic$lwater<-log(arsenic$water)
# Block 1
naildensity<-density(arsenic$nails)
plot(density(arsenic$nails,bw=naildensity$bw/10),xlab="Arsenic",
   type="l", main="Density estimate with inopportune bandwidths")
lines(density(arsenic$nails,bw=naildensity$bw*5),lty=2)
legend(1,2,legend=paste("Band width default",c("/10","*5")),
   lty=c(1,2))
# Block 2
library(NonparametricHeuristic)
t1<-fun.testreg(dists=c("rnorm","rcauchy","rlaplace","runif","rexp"))
t2<-fun.testreg(dists=c("rnorm","rcauchy","rlaplace","runif","rexp"),npergp=50)
# Block 3
library(quantreg)#For rq
rq(nails~water,data=arsenic)
# Block 4
rqo<-summary(rq(nails~water,data=arsenic))$coef
regp<-rqo[2,2]+diff(rqo[2,2:3])*(0:100)/100
m<-apply(abs(outer(arsenic$nails,rep(1,length(regp)))
   - outer(arsenic$water,regp)-rqo[1,1]),2,sum)
plot(regp,m,type="l",xlab="Regression Parameter", 
   ylab="Sum of absolute values of residuals",
   main="L1 fit for Arsenic Large Scale", 
   sub="Intercept fixed at optimum")
# Block 5
library(deming)#for theilsen
theilsen(arsenic$nails~arsenic$water,data=arsenic,conf=.9)$coef
# Block 6
library(MultNonParam);theil(arsenic$water,arsenic$nails)
#**************************************************************/
#* Data on blood presure change after captopril from          */
#* http://www.stat.ucla.edu/~rgould/datasets/bloodpressure.dat*/
#* Variables are                                              */
#* before systolic bp, after systolic bp, systolic bp change  */
#* before diastolic bp, after diastolic bp, diast. bp change  */
#* Example E from Cox and Snell, Applied Statistics: Princi-  */
#* ples and examples.  First line has column headings.  Fields*/
#* are separated by tabs.  SAS will give an error with this.  */
#**************************************************************/
bp<-as.data.frame(scan('bloodpressure.dat',skip=1,
  what=list(spb=0,spa=0,spd=0,dpb=0,dpa=0,dpd=0)))
# Block 7
#Expect warnings about nonunique estimators.  This is OK.
rqout<-rq(spa~spb,data=bp); summary(rqout)
# Block 8
rqoutt<-rq(spa~spb,tau=.2,data=bp); summary(rqoutt)
# Block 9
plot(bp$spb,bp$spa,main="Systolic Blood Pressure",
   xlab="Before Treatment",ylab="After Treatment")
abline(rqout); abline(rqoutt,lty=2)
legend(150,200,legend=c("Median Regression",
   ".2 Quantile Regresson"),lty=1:2)
# Block 10
library(MASS)#For rlm
rlmout<-rlm(spa~spb,data=bp)
library(quantreg)#For rq
rqout<-rq(spa~spb,data=bp)
plot(bp$spb,bp$spa, main="Blood Pressure After and Before Treatment",
   xlab="Systolic Blood Pressure Before Treatment (mm HG)",
   ylab="Systolic Blood Pressure After Treatment (mm HG)",
   sub="Linear Fits to Original Data")
abline(rlmout,lty=2)
abline(rqout,lty=3)
abline(lm(spa~spb,data=bp),lty=4)
legend(min(bp$spb),max(bp$spa),
 legend=c("Huber","Median","OLS"),lty=2:4)
# Block 11
bp$spa[1]<-120
rqout<-rq(spa~spb,data=bp); rlmout<-rlm(spa~spb,data=bp)
plot(bp$spb,bp$spa,
   xlab="Systolic Blood Pressure Before Treatment (mm HG)",
   ylab="Systolic Blood Pressure After Treatment (mm HG)",
   sub="Linear Fits to Perturbed Data")
abline(rlmout,lty=2);abline(rqout,lty=3);
abline(lm(spa~spb,data=bp),lty=4)
legend(min(bp$spb),max(bp$spa),
 legend=c("Huber","Median","OLS"),lty=2:4)
#*************************************************************/
# Data from http://lib.stat.cmu.edu/datasets/Arsenic         */
# reformatted into ASCII on the course home page.  Data re-  */
# flect arsenic levels in toenail clippings; covariates in-  */
# clude age, sex (1=M), categorical measures of quantities   */
# used for drinking and cooking, arsenic in the water, and   */
# arsenic in the nails.  To make arsenic.dat from Arsenic, do*/
#antiword Arsenic|awk '((NR>39)&&(NR<61)){print}'>arsenic.dat*/
#*************************************************************/
arsenic<-read.table("arsenic.dat")
names(arsenic)<-c("age","sex","drink","cook","water",
   "nails")
arsenic$status<-(arsenic$water>=.0001)+0
arsenic$water[arsenic$water<.0001]<-.0001
arsenic$lnail<-log(arsenic$nails)
arsenic$lwater<-log(arsenic$water)
# Block 12
plot(arsenic$water,arsenic$nails,
  main="Nail and Water Arsenic Levels", xlab="Water",ylab="Nails",
  sub="Smoother fits.  Bandwidth chosen by inspection.")
# Block 13
lines(ksmooth(arsenic$water,arsenic$nails,"normal",bandwidth=0.10),lty=1)
lines(ksmooth(arsenic$water,arsenic$nails,"box",bandwidth=0.10),lty=2)
legend(0.0,2.0,lty=1:3, legend=c("Smoother, Normal Kernel",
   "Smoother, Box Kernel", "Local Polynomial"))
# Block 14
library(KernSmooth)
lines(locpoly(arsenic$water,arsenic$nails,bandwidth=.05,degree=1),lty=3)
# Block 15
plot(arsenic$water,arsenic$nails,main="Nail and Water Arsenic Levels",
  xlab="Water",ylab="Nails", sub="Loess fits")
# Block 16
x<-min(arsenic$water)+(0:50)*diff(range(arsenic$water))/50
lines(x,y=predict(loess(nails~water,data=arsenic),x))
lines(x,y=predict(loess(nails~water,data=arsenic,span=1),x),lty=2)
# Block 17
lines(x,y=predict(loess(nails~water,data=arsenic,span=10),x),lty=3)
legend(0.0,2.0,legend=c("Default span .75",
  "Span 1","Span 10"),lty=1:3)                   
# Block 18
plot(isoreg(arsenic$water,arsenic$nails), xlab="Water As",
   ylab="Nail As", main="Nail Arsenic and Water Arsenic")
# Block 19
plot(arsenic$water,arsenic$nails, main="Nail Arsenic and Water Arsenic")
hgrid<-min(arsenic$water)+(0:50)*diff(range(arsenic$water))/50
lines(predict(spl<-smooth.spline(arsenic$water,arsenic$nails),hgrid))
lines(predict(smooth.spline(arsenic$water,arsenic$nails,spar=.1),hgrid),
  lty=3)
lines(predict(smooth.spline(arsenic$water,arsenic$nails,spar=.5),hgrid),
  lty=2)
legend(1250,1110,lty=1:3,col=1:3,
   legend=paste("Smoothing",c(round(spl$spar,3),.5,.1),
   c("Default","","")))