Rui,
This is a cientific initiation program.
The idea is to develop a code which can simulate data and calculate the ARL
later.
*So, a little bit later yesterday night, after sending the email, I've
figuered how to use the rnorm and then my problems were gone.
Ok, we were working with normal distribution, that's why I needed to use
rnorm. These simulations have just one purpose: calculate ARL at the end of
the project.
And, I want to thank you for the help, thank you so much, you've really
helped me.
As soon as I'm done with the final report, at the "special thanks" page,
I'm gonna put your name Haha. Because, your help was enormous.
Thanks again, I'll send you a copy of the final report as soon as I finish
it if you wish.
2012/7/31 Rui Barradas <ruipbarradas at sapo.pt>
Hello,
Inline
Em 31-07-2012 02:59, Wellington Silva escreveu:
Ok,
This really helped.
You've probably noticed, I'm a begginer using R.
And when you said that you tried with rnorm and the counts were not zero,
where did you use the rnorm?
Where the runif is, in its stead use
matrix( rnorm(nc*dds), ...etc... )
But note that this is fake data, what is the distribution of your dataset?
Or is the purpose of this simulations? If so, there must also be a
distribution to replicate, no?
Rui Barradas
The point is, I need this count to be different from zero, so I can use
the
ARL later on.
I need how many values are out of control (for each column /variable),
store these values in a vector, calculate this vector's mean, and then
calculate the ARL.
I've got to the same point as you did, but I'm stuck in the same problem.
I
need this count do be different from zero.
I'm still learning, haha, please be patient.
Best Regards.
2012/7/30 Rui Barradas <ruipbarradas at sapo.pt>
Hello,
Try the following.
# make up some data
dds <- 1e3
nc <- 10
xss <- data.frame(matrix(runif(nc*****dds, min=-1, max=1), ncol=nc))
names(xss) <- paste0("xs", 1:10)
# two functions with descriptive names
getControlLimits <- function(x, L = 3){
mu <- mean(x)
sigma <- sd(x)
c(lcl = mu - L*sigma, ucl = mu + L*sigma)
}
countOutOfControl <- function(x, L = 3){
cl <- getControlLimits(x, L = L)
sum( x < cl["lcl"] | x > cl["ucl"] )
}
sapply(xss, getControlLimits) # To know why the next returns all zeros
sapply(xss, countOutOfControl) # No values outside control limits
The data comes from an uniform in the interval (-1, 1) therefore the sd
is
sqrt(1/3) = 0.577. Times 3 gives values for lcl and ucl clearly below and
above -1 and 1, respectively. (I've tried rnorm and the counts were not
zero.)
But this is just a data example to see if the code works, and it does.
Hope this helps,
Rui Barradas
Em 30-07-2012 22:04, Wellington Silva escreveu:
Ok Rui,
I'll try to explain myself a little bit better.
I have 10 columns, with 1000 rows each. (Each column represents a
variable
of the process)
these columns were simulated using runif, with values between 4 and 6.
I need to calculate the control limits for each column (variable), and
verify if they are within the bounds accepted.
For now, I'm reading these columns separately, I'm creating variables to
read only one of the each column, and then check if the values in this
column is within the limits or not.
PS. All these columns originally come from a dataframe. something like
this: (dds = 1000)
xs1<-runif(dds, min=-1, max=1)
xs2<-runif(dds, min=-1, max=1)
xs3<-runif(dds, min=-1, max=1)
xs4<-runif(dds, min=-1, max=1)
xs5<-runif(dds, min=-1, max=1)
...
xs10<-runif(dds, min=-1,max=1)
xs<-data.frame(xs1,xs2,xs3,****xs4,xs5,..xs10)