SHARE
TWEET

Untitled

a guest May 3rd, 2018 122 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # Collect data for two groups of sample size nDataPerStep.
  2. # Continue adding to the data for up to maxSteps, but stop if a
  3. # t-test returns a p-value less than sig_lvl.
  4. seq_sampling_model = function(maxSteps     = 100,
  5.                               nDataPerStep = 10,
  6.                               sig_lvl      = 0.05){
  7.  
  8.   a = b = NULL
  9.   p = matrix(nrow = maxSteps)
  10.   for(i in 1:maxSteps){
  11.     a    = c(a, rnorm(nDataPerStep))
  12.     b    = c(b, rnorm(nDataPerStep))
  13.     p[i] = t.test(a, b)$p.value
  14.  
  15.     if(p[i] < sig_lvl){ break }
  16.   }
  17.   p = p[1:i, ]
  18.  
  19.   return(list(a = a, b = b, p = p))
  20. }
  21.  
  22.  
  23. # Run simulation
  24. set.seed(0)
  25. nSim         = 1e2
  26. maxSteps     = 100
  27. nDataPerStep = 10
  28. sig_lvl      = 0.05
  29.  
  30. # Save the *last* p-value
  31. res1 = replicate(nSim, tail(seq_sampling_model(maxSteps, nDataPerStep, sig_lvl)$p, 1))
  32.  
  33. # Save the *lowest* p-value
  34. res2 = replicate(nSim, min(seq_sampling_model(maxSteps, nDataPerStep, sig_lvl)$p))
  35.  
  36. # Plot the null (no difference between a and b) distribution of p-values
  37. par(mfrow = c(2, 1))
  38. hist(res1, main = paste0("Last: ", round(mean(res1 < sig_lvl), 3), "% significant"))
  39. hist(res2, main = paste0("Min: ",  round(mean(res2 < sig_lvl), 3), "% significant"))
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top