inst/doc/vignette.R

### R code from vignette source 'vignette.Rnw'

###################################################
### code chunk number 1: vignette.Rnw:36-37 (eval = FALSE)
###################################################
## install.packages("Rearrangement")


###################################################
### code chunk number 2: vignette.Rnw:41-42
###################################################
library(Rearrangement)


###################################################
### code chunk number 3: vignette.Rnw:46-47 (eval = FALSE)
###################################################
## help(package="Rearrangement")


###################################################
### code chunk number 4: vignette.Rnw:51-52 (eval = FALSE)
###################################################
## help(rearrangement)


###################################################
### code chunk number 5: vignette.Rnw:74-76
###################################################
data(GrowthChart)
attach(GrowthChart)


###################################################
### code chunk number 6: vignette.Rnw:79-80
###################################################
library(splines)


###################################################
### code chunk number 7: vignette.Rnw:83-89
###################################################
ages <- unique(sort(age))
aknots <- c(3, 5, 8, 10, 11.5, 13, 14.5, 16, 18)
splines_age <- bs(age,kn=aknots)
sformula <- height~splines_age
sfunc <- approxfun(age,lm(sformula)$fitted.values)
splreg <- sfunc(ages)


###################################################
### code chunk number 8: vignette.Rnw:92-93
###################################################
rsplreg <- rearrangement(list(ages),splreg)


###################################################
### code chunk number 9: vignette.Rnw:96-100
###################################################
plot(age,height,pch=21,bg='gray',cex=.5,xlab="Age (years)",ylab="Height (cms)",main="CEF (Regression Splines)",col='gray')
lines(ages,splreg,col='red',lwd=3)
lines(ages,rsplreg,col='blue',lwd=2)
legend("topleft",c('Original','Rearranged'),lty=1,col=c('red','blue'),bty='n')


###################################################
### code chunk number 10: vignette.Rnw:115-116 (eval = FALSE)
###################################################
## rearrangement(x, y, n = 1000, stochastic = FALSE, avg = TRUE, order = 1:length(x))


###################################################
### code chunk number 11: vignette.Rnw:130-131
###################################################
f <- function(x1,x2){(x1 - 1)*(x1 - 2)*(x1 - 3)*(x2 - 1)*(x2 - 2)*(x2 - 3)}


###################################################
### code chunk number 12: vignette.Rnw:134-140
###################################################
x1 <- seq(0, 5, by = .5)
x2 <- x1
l <- NULL
for (i in x2){l <- c(l, f(x1, i))}
y <- matrix(l, nrow = length(x1))
x <- list(x1,x2)


###################################################
### code chunk number 13: vignette.Rnw:143-144
###################################################
ry <- rearrangement(x,y)


###################################################
### code chunk number 14: vignette.Rnw:148-154
###################################################
par(mfrow=c(1,2))
persp(x1,x2,y,col='lightgreen',theta=315,phi=25,r=6,shade=.5,font.lab=15,cex.lab=3)
title("Before Rearrangement",cex.main=3,font.main=30)

persp(x1,x2,ry,col='lightgreen',theta=315,phi=25,r=6,shade=.5,font.lab=15,cex.lab=3)
title("After Rearrangement",cex.main=3,font.main=30)


###################################################
### code chunk number 15: vignette.Rnw:156-157
###################################################
par(mfrow=c(1,1))


###################################################
### code chunk number 16: vignette.Rnw:197-199
###################################################
data(GrowthChart)
attach(GrowthChart)


###################################################
### code chunk number 17: vignette.Rnw:203-209
###################################################
##Normalize the ages to the interval [0, 2*pi]
nage <- 2 * pi * (age - min(age)) / (max(age) - min(age))
formula <- height ~ I(sin(nage)) + I(cos(nage)) + I(sin(2*nage)) + I(cos(2*nage)) + I(sin(3*nage)) + I(cos(3*nage))  + I(sin(4*nage)) + I(cos(4*nage))
j <- simconboot(nage, height, lm, formula)
class(j)
names(j)


###################################################
### code chunk number 18: vignette.Rnw:213-215
###################################################
plot(j, border=NA, col='darkgray', xlab='Age (years)', ylab='Height (cms)', xaxt = "n")
axis(1, at = seq(-2*pi*min(age)/(max(age)-min(age)), 2*pi+1, by=5*2*pi/(max(age)-min(age))), label = seq(0, max(age)+1, by=5))


###################################################
### code chunk number 19: vignette.Rnw:228-229
###################################################
k <- rconint(j)


###################################################
### code chunk number 20: vignette.Rnw:232-248
###################################################
ages <- unique(sort(age))
ffunc <- approxfun(age,lm(formula)$fitted.values)
freg <- ffunc(ages)
rfreg <- rearrangement(list(ages),freg)

plot(k, border=NA, col='#2A2A2A', xlab='Age (years)', ylab='Height (cms)', xaxt = "n")
axis(1, at = seq(-2*pi*min(age)/(max(age)-min(age)), 2*pi+1, by=5*2*pi/(max(age)-min(age))), label = seq(0, max(age)+1, by=5))
polygon.conint(j, border=NA, col='#D2D2D2')
polygon.conint(k, border=NA, col='#2A2A2A', density=50)
points(nage,height, cex = .5, col = '#7E7E7E')

nages <- unique(sort(nage))
lines(nages,freg, col='red',lwd=2)
lines(nages,rfreg, col='blue',lwd=2)
legend("topleft",c('95% CI Original','95% CI Rearranged'),lty=1,lwd=7,col=c('#D2D2D2','#2A2A2A'),bty='n')
legend("topleft",c('95% CI Original','95% CI Rearranged'),lty=1,col=c('red','blue'),bty='n')


###################################################
### code chunk number 21: vignette.Rnw:256-263
###################################################
library(quantreg)
ages <- unique(sort(age))

## Univariate
j2 <- simconboot(age, height, lprq2, formula=0,B=20,h=1,xx=ages,tau=0.5)
k2 <- rconint(j2)
rcqf50 <- rearrangement(data.frame(j2$sortedx),j2$cef)


###################################################
### code chunk number 22: vignette.Rnw:269-278
###################################################
plot(age,height,xlab="Age (years)",ylab = "Height(cms)",col='grey80')
polygon.conint(j2, border=NA, col='#D2D2D2')
polygon.conint(k2, border=NA, col='#2A2A2A', density=50)
lines(j2$sortedx,j2$cef,lty=1,lwd=2.5,col="tomato2")
lines(j2$sortedx,rcqf50,lty=1,lwd=1,col="blue")

legend("topleft",c('95% CI Original','95% CI Rearranged'),lty=1,lwd=7,col=c('#D2D2D2','#2A2A2A'),bty='n')
legend("topleft",c('95% CI Original','95% CI Rearranged'),lty=1,col=c('red','blue'),bty='n')
title(main="CQF (Local linear, h=1) ")


###################################################
### code chunk number 23: vignette.Rnw:298-406 (eval = FALSE)
###################################################
## 
## formula0	<- height ~ age + I((age >= 5)*(age - 5)) + I((age >= 10)*(age - 10))  + I((age >= 15)*(age - 15));
## cef		<- approxfun(age, lm(formula0)$fitted.values);
## ages		<- unique(sort(age));
## mheight 	<- cef(ages);
## 
## ###### Compute Locally Linear Mean Regression ###########################################
## # (Modification of Koenker's lprq with box kernel)
## 
## # Residuals
## residuals0	<- lm(formula0)$residuals;
## 
## set.seed(8);   
## n		<- length(height); 	# sample size
## B		<- 20; 		# Number of replications
## h		<- .5
## 
## formula1 	<- heightb ~ as.factor(age);
## 
## nknots 		<- 9;
## knots_age	<- c(3.0, 5.0, 8.0, 10, 11.5, 13, 14.5, 16, 18);
## splines_age     <- bs(age, degree = 3, intercept = FALSE, knots = knots_age);
## formula2	<- heightb ~ splines_age;
## 
## nage		<- 2 * pi * (age - min(age)) / (max(age) - min(age));
## formula5	<- heightb ~ nage + I(nage^2) + I(sin(nage)) + I(cos(nage)) + I(sin(2*nage)) + I(cos(2*nage));
## 
## mheight0	<- NULL;
## 
## mheight2	<- NULL;
## rmheight2	<- NULL;
## 
## mheight5	<- NULL;
## rmheight5	<- NULL;
## 
## mheight7	<- NULL;
## rmheight7	<- NULL;
## 
## mheight8	<- NULL;
## rmheight8	<- NULL;
## 
## for (s in 1:B) {;
## 
## res 	<- rnorm(n, mean = mean(residuals0), sd = sd(residuals0));
## heightb <- cef(age) + res;
## 
## mheight0	<- rbind(mheight0, mheight);
## 
## 
## cef2		<- approxfun(age, lm(formula2)$fitted.values);
## 	mheight2	<- rbind(mheight2, cef2(ages));
## rmheight2	<- rbind(rmheight2, rearrangement(list(ages), mheight2[s, ]));
## 
## cef5		<- approxfun(age, lm(formula5)$fitted.values);
## 	mheight5	<- rbind(mheight5, cef5(ages));
## rmheight5	<- rbind(rmheight5, rearrangement(list(ages), mheight5[s, ]));
## 
## cef7		<- lplm(age, heightb, h, ages)$fitted.values;
## 	mheight7	<- rbind(mheight7, cef7);
## rmheight7	<- rbind(rmheight7, rearrangement(list(ages), mheight7[s, ]));
## 
## 	cef8		<- lclm(age, heightb, h, ages)$fitted.values;
## 	mheight8	<- rbind(mheight8, cef8);
## 	rmheight8	<- rbind(rmheight8, rearrangement( list(ages), mheight8[s, ]));
## 
## }
## 
## table <- matrix(0, nrow = 3, ncol = 12, dimnames = list(c("L1", "L2", "Linf"), c("Splines", "Rearranged", "Ratio (R/O)","Fourier", "Rearranged", "Ratio (R/O)","Local Poly.", "Rearranged", "Ratio (R/O)","Kernel (h=1)", "Rearranged", "Ratio (R/O)")));
## 
## 
## table[1,1] <- mean(apply(abs(mheight2 - mheight0), 1, mean));
## table[1,2] <- mean(apply(abs(rmheight2 - mheight0), 1, mean));
## table[1,3] <- table[1,2]/table[1,1];
## table[1,4] <- mean(apply(abs(mheight5 - mheight0), 1, mean));
## table[1,5] <- mean(apply(abs(rmheight5 - mheight0), 1, mean));
## table[1,6] <- table[1,5]/table[1,4];
## table[1,7] <- mean(apply(abs(mheight7 - mheight0), 1, mean));
## table[1,8] <- mean(apply(abs(rmheight7 - mheight0), 1, mean));
## table[1,9] <- table[1,8]/table[1,7];
## table[1,10] <- mean(apply(abs(mheight8 - mheight0), 1, mean));
## table[1,11] <- mean(apply(abs(rmheight8 - mheight0), 1, mean));
## table[1,12] <- table[1,11]/table[1,10];
## 
## table[2,1] <- mean(apply(abs(mheight2 - mheight0)^2, 1, mean)^(1/2));
## table[2,2] <- mean(apply(abs(rmheight2 - mheight0)^2, 1, mean)^(1/2));
## table[2,3] <- table[2,2]/table[2,1];
## table[2,4] <- mean(apply(abs(mheight5 - mheight0)^2, 1, mean)^(1/2));
## table[2,5] <- mean(apply(abs(rmheight5 - mheight0)^2, 1, mean)^(1/2));
## table[2,6] <- table[2,5]/table[2,4];
## table[2,7] <- mean(apply(abs(mheight7 - mheight0)^2, 1, mean)^(1/2));
## table[2,8] <- mean(apply(abs(rmheight7 - mheight0)^2, 1, mean)^(1/2));
## table[2,9] <- table[2,8]/table[2,7];
## table[2,10] <- mean(apply(abs(mheight8 - mheight0)^2, 1, mean)^(1/2));
## table[2,11] <- mean(apply(abs(rmheight8 - mheight0)^2, 1, mean)^(1/2));
## table[2,12] <- table[2,11]/table[2,10];
## 
## table[3,1] <- mean(apply(abs(mheight2 - mheight0), 1, max));
## table[3,2] <- mean(apply(abs(rmheight2 - mheight0), 1, max));
## table[3,3] <- table[3,2]/table[3,1];
## table[3,4] <- mean(apply(abs(mheight5 - mheight0), 1, max));
## table[3,5] <- mean(apply(abs(rmheight5 - mheight0), 1, max));
## table[3,6] <- table[3,5]/table[3,4];
## table[3,7] <- mean(apply(abs(mheight7 - mheight0), 1, max));
## table[3,8] <- mean(apply(abs(rmheight7 - mheight0), 1, max));
## table[3,9] <- table[3,8]/table[3,7];
## table[3,10] <- mean(apply(abs(mheight8 - mheight0), 1, max));
## table[3,11] <- mean(apply(abs(rmheight8 - mheight0), 1, max));
## table[3,12] <- table[3,11]/table[3,10];


###################################################
### code chunk number 24: vignette.Rnw:409-410 (eval = FALSE)
###################################################
## table

Try the Rearrangement package in your browser

Any scripts or data that you put into this service are public.

Rearrangement documentation built on May 1, 2019, 11:29 p.m.