Guest User

Untitled

a guest
May 24th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.47 KB | None | 0 0
  1. require(dplyr); require(tibble)
  2. set.seed(1234)
  3. popsize <- 10e6
  4. eps <- rnorm(popsize)
  5. tr <- rbinom(popsize,1,0.5)
  6. C <- 100
  7. wste <- rep(sample(rep(c(1,-1),times=50),100,rep=FALSE),each=popsize/C)
  8. cl <- rep(c(1:100),each=popsize/C)
  9. y <- wste*tr+eps
  10. #create dataframe
  11. dat <- as_tibble(list(y=y,cluster=cl,treat=tr,te=wste,eps=eps))
  12. rm(tr,eps,te,wste,y)
  13. #create sample#
  14. sampsize <- 100000
  15. df <- dat[sample(nrow(dat),sampsize,rep=FALSE),]
  16. df <- arrange(df,cluster)
  17. #number of observations per cluster#
  18. nobscl <- unlist(count(df,cluster)[,2])
  19. #run the regression and compute the correlations#
  20. res <- lm(df$y~df$treat)
  21. df <- add_column(df,residuals=res$residuals)
  22. df <- add_column(df,prod=df$residuals*df$treat)
  23.  
  24. #de-mean the objects#
  25. meanres <- rep(0,C)
  26. for(i in 1:C){
  27. meanres[i] <- mean(df$residuals[df$cluster==i])
  28. }
  29.  
  30. meanreg <- rep(0,C)
  31. for(i in 1:C){
  32. meanreg[i] <- mean(df$treat[df$cluster==i])
  33. }
  34.  
  35. meanprod <- rep(0,C)
  36. for(i in 1:C){
  37. meanprod[i] <- mean(df$prod[df$cluster==i])
  38. }
  39. df <- add_column(df,demres=df$residuals-rep(meanres,times=nobscl))
  40. df <- add_column(df,demreg=df$treat-rep(meanreg,times=nobscl))
  41. df <- add_column(df,proddem=df$prod-rep(meanprod,times=nobscl))
  42.  
  43. #finally, compute the within-cluster variance according to the paper
  44. rhoepshat <- (var(df$residuals)-var(df$demres))/var(df$residuals)
  45. rhoreghat <- (var(df$treat)-var(df$demreg))/var(df$treat)
  46. rhoepsregha <- (var(df$prod)-var(df$proddem))/var(df$prod)
  47.  
  48. round(c(rhoepshat,rhoreghat,rhoepsregha),5)
  49. [1] 0.16686 0.00076 0.24875
Add Comment
Please, Sign In to add comment