Hi,

I' am interested in differences between sample's result when samples consist
of full elements and consist of only distinct elements. When sample consist
of full elements it take about 120 sec., but when consist of only distinct
elements it take about 4.5 or 5 times more sec. I expected that opposite of
this result, because unique(sample) has less elements than full sample. Code
as follows;

e <- rnorm(n=50, mean=0, sd=sqrt(0.5625))
x0 <- c(rep(1,50))
x1 <- rnorm(n=50,mean=2,sd=1)
x2 <- rnorm(n=50,mean=2,sd=1)
x3 <- rnorm(n=50,mean=2,sd=1)
x4 <- rnorm(n=50,mean=2,sd=1)
y <- 1+ 2*x1+4*x2+3*x3+2*x4+e
x2[1] = 10     #influential observarion
y[1] = 10      #influential observarion

X <- matrix(c(x0,x1,x2,x3,x4),ncol=5)
Y <- matrix(y,ncol=1)
Design.data <- cbind(X, Y)
 
for (j in 1:nrow(X)) {

result <- vector("list", )

for( i in 1: 3100) {

data <- Design.data[sample(50,50,replace=TRUE),] ##### and
unique(Design.data.....)
dataX <- data[,1:5]
dataY <- data[,6]

B.cap.simulation <- solve(crossprod(dataX)) %*% crossprod(dataX, dataY)
P.simulation <- dataX %*% solve(crossprod(dataX)) %*% t(dataX)
Y.cap.simulation <- P.simulation %*% dataY
e.simulation <- dataY - Y.cap.simulation
dX.simulation <- nrow(dataX) - ncol(dataX)
var.cap.simulation <- crossprod(e.simulation) / (dX.simulation)
ei.simulation <- as.vector(dataY - dataX %*% B.cap.simulation)
pi.simulation <- diag(P.simulation)
var.cap.i.simulation <- (((dX.simulation) *
var.cap.simulation)/(dX.simulation - 1)) -
(ei.simulation^2/((dX.simulation - 1) * (1 - pi.simulation)))
ti.simulation <- ei.simulation / sqrt(var.cap.simulation * (1 -
pi.simulation))
ti.star.simulation <- ei.simulation / sqrt(var.cap.i.simulation * (1 -
pi.simulation))
pi.star.simulation <- pi.simulation + ei.simulation^2 /
crossprod(e.simulation)
WKi.simulation <- (ti.star.simulation)*sqrt(pi.simulation/(1-pi.simulation))
Wi.simulation <- WKi.simulation * sqrt((nrow(dataX)-1)/(1-pi.simulation))

result[[i]] <- list(outWi.simulation=(Wi.simulation),influ.obs = any (dataY
==Y[j,] ))

}

i.obs <- sapply(result,function(x) {x$influ.obs})
ni.result <- result[! i.obs]
ni.Wi.simulation <- sapply(ni.result,function(x) {x$outWi.simulation})
if (j==1) {
ni.Wi.simulation1 <-  ni.Wi.simulation
}else if (j==2) {
ni.Wi.simulation49 <-  matrix(ni.Wi.simulation , nrow=1)

}else{
ni.Wi.simulation49
<-cbind(ni.Wi.simulation49,matrix(ni.Wi.simulation,nrow=1))
}
}

Can someone give me an idea ? Many thanks.

--
View this message in context: 
http://r.789695.n4.nabble.com/Why-unique-sample-decreases-the-performance-tp3391199p3391199.html
Sent from the R help mailing list archive at Nabble.com.

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to