Advertisement
Guest User

Untitled

a guest
Sep 25th, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.54 KB | None | 0 0
  1. getHyperparam <- function(x){
  2. sum_obj <- summary(x)
  3. # TO DO: LOOP THROUGH ALL FE ROWS AND AUTOMATICALLY EXTRACT NAMES OF FIXED EFFECTS AND ESTIMATES
  4. fe <- fixef(x)
  5. Intercept <- fe[1] #intercept
  6. Visit <- fe[2] #visit
  7. Diagnosis <- fe[3] #diagnosis
  8. VisitDiagnosis <- fe[4] #visit diagnosis interaction
  9. # TO DO: WHAT ABOUT STANDARD ERROR? HOW SHOULD IT BE INCLUDED?
  10.  
  11. # TO DO: LOOP THROUGH ALL VC COMPONENTS AND AUTOMATICALLY EXTRACT NAMES OF EFFECTS AND ESTIMATES
  12. vc<-VarCorr(x) # variance component
  13. sigmaSubject <- as.numeric(attr(vc[[1]],"stddev")[1]) # random intercept by subject
  14. sigmaVisit <- as.numeric(attr(vc[[1]],"stddev")[2]) # random slope of visit over subject
  15. sigmaResiduals <- as.numeric(attr(vc,"sc"))
  16. sigmaCorrelation <- as.numeric(attr(vc[[1]],"correlation")[2])
  17.  
  18. # TO DO: AUTOMATICALLY ADJUST THE LIST
  19. hp <- c(Visit, Diagnosis,VisitDiagnosis,Intercept,sigmaResiduals,sigmaSubject,sigmaVisit,sigmaCorrelation)
  20. names(hp) <- c("Visit", "Diagnosis","VisitDiagnosis","Intercept","sigmaResiduals","sigmaSubject","sigmaVisit", "sigmaCorrelation")
  21. return(hp)
  22. }
  23.  
  24. create_fake <- function (J,K,HP){
  25. # J is the number of subjects
  26. # K is the number of visits
  27. # HP is the hyperparameter matrix from get Hyperparam
  28.  
  29. time <- rep (seq(1,6,length=K),J) # Define how many visits
  30. person <- rep (1:J, each=K) # Define how many kids
  31.  
  32. # Add diagnosis
  33. condition <- sample (rep(0:1, J/2))
  34. condition1<-condition[person]
  35. condition1[is.na(condition1)]<-1
  36.  
  37. Visit <- as.numeric(HP['Visit'])
  38. Diagnosis <- as.numeric(HP['Diagnosis'])
  39. VisitDiagnosis <- as.numeric(HP['VisitDiagnosis'])
  40. Intercept <- as.numeric(HP['Intercept'])
  41. sigmaSubject <- as.numeric(HP['sigmaSubject']) # random intercept by subject
  42. sigmaVisit <- as.numeric(HP['sigmaVisit']) # random slope of visit over subject
  43. sigmaResiduals <- as.numeric(HP['sigmaResiduals'])
  44. sigmaCorrelation <- as.numeric(HP['sigmaCorrelation'])
  45.  
  46. ## Define variance covariance matrices:
  47. Sigma.u<-matrix(c(sigmaSubject^2,
  48. sigmaCorrelation*sigmaSubject*sigmaVisit,
  49. sigmaCorrelation*sigmaSubject*sigmaVisit,
  50. sigmaVisit^2),nrow=2)
  51. ## subj ranef
  52. u<-mvrnorm(n=J,
  53. mu=c(0,0),Sigma=Sigma.u)
  54.  
  55. meanLU <- rnorm(J*K,
  56. (Intercept + u[,1]) +
  57. (Visit + u[,2])*time +
  58. Diagnosis*condition +
  59. ((Visit + u[,2])*time)*(Diagnosis*condition),sigmaResiduals)
  60.  
  61. return(data.frame(CHI_MLU=meanLU,Visit=time,Diagnosis=condition,Child.ID=person))
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement