[R] Breaking the samplesize package from CRAN

john matthew poi@@on200 @ending from googlem@il@com
Thu Jul 26 18:49:58 CEST 2018


Hello all,

I am using the samplesize package (n.ttest function) to calculate
number of samples per group power analysis (t-tests with unequal
variance).
I can break this n.ttest function from the samplesize package,
depending on the standard deviations I input.

This works very good.

n.ttest(sd1 = 0.35, sd2 = 0.22 , variance = "unequal")
# outputs
$`Total sample size`
[1] 8

$`Sample size group 1`
[1] 5

$`sample size group 2`
[1] 3

Warning message:
In n.ttest(sd1 = 0.35, sd2 = 0.22, variance = "unequal") :
  Arguments -fraction- and -k- are not used, when variances are unequal
The warnings are fine and all is good.


But if I run it again with.
n.ttest(sd1 = 1.68, sd2 = 0.28 , variance = "unequal")
# outputs
Error in while (n.start <= n.temp) { :
  missing value where TRUE/FALSE needed
In addition: Warning messages:
1: In n.ttest(sd1 = 1.68, sd2 = 0.28, variance = "unequal") :
  Arguments -fraction- and -k- are not used, when variances are unequal
2: In qt(conf.level, df = df_approx) : NaNs produced
3: In qt(power, df = df_approx) : NaNs produced

It breaks.
The first obvious thing is that the standard deviations are a lot
different in the 2nd example that breaks, compared with the first run.

Checking the code myself, I can see it breaks down when the variable
"df_approx" becomes a negative number, in a while loop from the
n.ttest function.
Exert of the code I am talking about.

while (n.start <= n.temp) {
    n.start <- n1 + n2 + 1
    n1 <- n.start/(1 + k)
    n2 <- (k * n.start)/(1 + k)
    df_approx <- 1/((gamma)^2/(n1 - 1) + (1 - gamma)^2/(n2 - 1))   #
this calculation becomes negative and breaks subsequently
    tkrit.alpha <- qt(conf.level, df = df_approx)
    tkrit.beta <- qt(power, df = df_approx)
    n.temp <- ((tkrit.alpha + tkrit.beta)^2)/(c^2)
}

I can hard code df_approx to be an absolute value but I don't know if
that messes up the statistics.

Can anyone help or any ideas? How to fix?

John.



More information about the R-help mailing list