On Wed, 5 Oct 2005, allan_sta_staff_sci_main_uct at mail.uct.ac.za wrote:
> hi all
>
> why does the following not work???
>
> this was someone elses code and i couldnt explain why it doesn't work.
I think this is a case of FAQ 7.17: Why does outer() behave strangely with
my function?
-thomas
> m=matrix(c(0,0),2,1)
> v=matrix(c(1,0,0,1),2,2)
>
> Y=function(X1,X2,mu=m,V=v)
> {
> X=matrix(c(X1,X2),2,1)
> a=(1/((2*pi)*sqrt(det(V))))*exp((-0.5)*(t(X-mu)%*%solve(V)%*%(X-mu)))
> a[1]
> }
>
> x1=seq(-1,1)
> x2=x1
>
> Z=outer(x1,x2,FUN="Y",mu=m,V=v)
>
> persp(x1,x2,Z)
>
>
>
>
> my code:
>
> BINORMAL<-function(varx=1,vary=1,covxy=0,meanx=0,meany=0)
> {
> #the following function plots the density of a bi variate normal
distribution
>
> covXY<-matrix(c(varx,covxy,covxy,vary),2,2)
> A<-solve(covXY)
>
>
#up<-max(meanx+4*varx^.5,meanx-4*varx^.5,meany+4*vary^.5,meany-4*vary^.5)
> #x <- seq(-up,up,length=50)
> #y <- x
>
> x <- seq(meanx-3*varx^.5,meanx+3*varx^.5,length=50)
> y <- seq(meany-3*vary^.5,meany+3*vary^.5,length=50)
>
> f <- function(x,y,...)
> {
> detA<-det(A)
>
quadForm<-A[1,1]*(x-meanx)^2+2*A[1,2]*(x-meanx)*(y-meany)+A[2,2]*(y-meany)^2
> K<-sqrt(detA)/(2*pi)
> exp(-0.5*quadForm)*K
> }
>
> z <- outer(x, y, f)
>
> par(mfrow=c(1,2))
> persp(x, y, z,theta = 30, phi =
30,col="white",main="BI-VARIATE NORMAL
> DISTRIBUTION")
> contour(x,y,z,main=paste("xy plot, corr(X,Y)=
",(covxy/(varx*vary)^.5)))
>
> print("NOTE -sqrt(varx*vary)<=covxy<=sqrt(varx*vary)")
> #print(A)
> }
> BINORMAL(varx=1,vary=1,covxy=0,meanx=0,meany=0)
>
> thanx
>
> /allan
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
http://www.R-project.org/posting-guide.html
>
Thomas Lumley Assoc. Professor, Biostatistics
tlumley at u.washington.edu University of Washington, Seattle