Skip to content

simulation of levene's test

3 messages · dila, Özgür Asar, R. Michael Weylandt

#
hello,
I try to run simulation of levene's test to find the p-value but the error
of replacement has length zero occur, could anyone help me to fix this
problem?

asim <- 1000
pv<-rep(NA,asim)
for(i in 1:asim)
{print(i)
set.seed(i)
g1 <- rnorm(20,0,2)
g2 <- rnorm(20,0,2)
g3 <- rnorm(20,0,2)	
x <- c(g1,g2,g3)
group<-as.factor(c(rep(1,20),rep(2,20),rep(3,20)))
library(Rcmdr)
pv[i]<-leveneTest(x,group)$p.value
}


--
View this message in context: http://r.789695.n4.nabble.com/simulation-of-levene-s-test-tp4631578.html
Sent from the R help mailing list archive at Nabble.com.
#
Dear Dila,

Try the following:

library(Rcmdr)
asim <- 1000
pv<-NULL
for(i in 1:asim)
{
print(i)
set.seed(i)
g1 <- rnorm(20,0,2)
g2 <- rnorm(20,0,2)
g3 <- rnorm(20,0,2)
x <- c(g1,g2,g3)
group<-as.factor(c(rep(1,20),rep(2,20),rep(3,20)))
pv<-c(pv,leveneTest(x,group)$"Pr(>F)"[1])
} 

Best
Ozgur

-----
************************************
Ozgur ASAR

Research Assistant
Middle East Technical University
Department of Statistics
06531, Ankara Turkey
Ph: 90-312-2105309
http://www.stat.metu.edu.tr/people/assistants/ozgur/
--
View this message in context: http://r.789695.n4.nabble.com/simulation-of-levene-s-test-tp4631578p4631600.html
Sent from the R help mailing list archive at Nabble.com.
#
On Mon, May 28, 2012 at 12:14 PM, ?zg?r Asar <oasar at metu.edu.tr> wrote:
Or avoid the unncessary overhead of Rcmdr and use

library(car)

to provide levenTest instead.
It's also many orders of magnitude more efficient to preallocate "pv"
and then simply put things "into" it.

pv <- vector("real", 1000)
Setting the seed each loop seems excessive but I suppose it's a matter
of taste.
Is there any reason not to do this as x <- rnorm(60, 0, 2)
and this as as.factor(rep(1:3, each = 20))
Once you preallocate pv change this to

pv[i] <- leveneTest(x, group)$"Pr(>F)"[1]

But it's even better not to use the dollar sign shortcut here
(defensive programming and all that -- particularly with nonstandard
names which I'm pretty sure won't give a big error here but will
elsewhere)

pv[i] <- leveneTest(x, group)[["Pr(>F)"]][1]


And even better would be to do this all using the "replicate"
function, but I'll leave that as an exercise to the reader.

Michael