Cloud Seeding Permutation Test

Cloud seeding is the processes of spraying clouds with a chemical solution to trigger the formation of raindrops. The following data is based on an experiment in Florida from the 1970s. On 52 separate days, target clouds were identified. On half of the days (randomly selected), a plane flew through the clouds spraying silver iodide solution. Radar was then used to measure the volume of rainfall produced (in acre-feet).

cloud = read.csv("http://people.hsc.edu/faculty-staff/blins/classes/spring17/math222/data/CloudSeeding.csv")
tre = subset(cloud,treatment=='seeded')$rainfall
con = subset(cloud,treatment=='unseeded')$rainfall

We have already looked at using a 2-sample t-test to determine if cloud seeding is effective. Unfortunately, this data is extremely right skewed with several large outliers in each group. That right skew isn’t a problem for the permutation test.

Our hypotheses are:

Step 1

Find the statistic of interest for our data. There is more than one option here. The simplest is the difference in the sample means \(\bar{x}_\text{tre}-\bar{x}_\text{con}\).

mean(tre)-mean(con)
## [1] 277.3962

Step 2

Simulate randomly permuting the outcomes into two different groups and calculate the corresponding difference in means for each group. Repeat the simulation many times and record the results.

all = c(tre,con) 
results = c() 
for (i in 1:5000) {
  perm.data = sample(all,52)
  sim.tre = perm.data[1:26]
  sim.con = perm.data[27:52]
  results = c(results, mean(sim.tre)-mean(sim.con))
}
hist(results,main="Permutation Distribution",xlab="Simulated difference in mean rainfall",col='gray')

Step 3

Find the permutation test p-value.

table(results >= mean(tre)-mean(con))
## 
## FALSE  TRUE 
##  4885   115
mean(results >= mean(tre)-mean(con))
## [1] 0.023

This p-value is significant at the 5% level, so we can be pretty confident that cloud seeding is effective.