Dear R users,
This is a problem that has puzzled me for quite some time, and I wonder if anyone could offer me an insight to what is happening?
I generated a multinomial matrix by using A<-rmultinom(100,1,c(0.4,0.3,0.2,0.1), and multiply this matrix by a set of values say B<-runif(n,100,50). I then calculate var(colSums(A*B)). I was able to work out the theoretical mean of var(colSums(A*B)) by using fun.var.match.gen below.
I was however not sure, why is there a persistent over estimate from my fun.var.match.gen? I have enclosed the tests I have used to demonstrate this fact. The difference is very small but very persistent throughout simulations. Is there something I have overlooked here?
All comments very welcome!
Sebastian.
#### Functions used:
fun.split.matrix<-
function(object, index)
{
result <- lapply(split(object, index), function(x, object)
matrix(x, ncol = ncol(object)), object)
return(result)
}fun.var.match.gen<-function(q,n,mean.cost.m,var.cost.m){
k<-length(q)
mean.o<-sum(n*q*mean.cost.m)/kresult<-sum(n*var.cost.m*q+mean.cost.m^2*(n*q*(1-q+n*q))-2*mean.o*n*q*mean.cost.m+mean.o^2)/(k-1) }
# Test:
p1<-c(10,10,1,8,8,6,10,9,6,5) p1<-p1/sum(p1) e<-5 f<-60000
n1<-4 n.rep<-50000 n.gen<-n1*n.rep
A<-fun.runif(n.gen,e,f)
temp1a<-rmultinom(n.gen,1,p1)*A # Randomly select items to split sam<-sample(rep(1:n.rep,each=n1)) temp3<-sapply(fun.split.matrix(temp1a,sam),colSums)
junk.vars<-apply(temp3,2,var) junk.m<-mean(junk.vars) junk.theo<-fun.var.match.gen(p1,n1,(e+f)/2,(f-e)^2/12)
plot(junk.vars) abline(h=junk.theo,col=2) abline(h=junk.m)
http://adsfac.net/link.asp?cc=FXT002.7542.0
______________________________________________ [EMAIL PROTECTED] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
