Advertisement
Guest User

Untitled

a guest
Jun 26th, 2019
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.19 KB | None | 0 0
  1. z <- indirect/sqrt(b^2*sa^2 + a^2*sb^2 + sa^2*sb^2)
  2. pval <- 2*pnorm(-abs(z));
  3.  
  4. return(c(indirect = indirect, z = z, pval = pval))
  5.  
  6. indirect <- a*b
  7. indirect
  8.  
  9. indirect <- a*b
  10. indirect
  11.  
  12. ## resample data n times
  13. resample <- data[i,]
  14.  
  15. ## refit regression model on resampled data
  16. model.M.resample <- lm(formula(model.M), data = resample)
  17. model.Y.resample <- lm(formula(model.Y), data = resample)
  18.  
  19. a <- coef(model.M.resample)[apath] ## a path
  20. b <- coef(model.Y.resample)[bpath] ## b path
  21. c <- coef(model.Y.resample)[apath] ## c path
  22.  
  23. ## effect decomposition
  24. ## indirect effect
  25. indirect.boot <- a*b
  26. direct.boot <- c
  27. return(c(direct.boot = direct.boot, indirect.boot = indirect.boot))
  28.  
  29. ## resample data based on index i
  30. resample.data <- data[i, ]
  31.  
  32. ## re-estimate the regression models
  33. model.m1.resample <- lm(formula(model.m1), data = resample.data)
  34. model.m2.resample <- lm(formula(model.m2), data = resample.data)
  35. model.Y.resample <- lm(formula(model.Y), data = resample.data)
  36.  
  37. ## extract coefficients and compute indirect effects
  38. a1 <- coef(model.m1.resample)["cond"]
  39. a2 <- coef(model.m2.resample)["cond"]
  40. b1 <- coef(model.Y.resample)["pmi"]
  41. b2 <- coef(model.Y.resample)["import"]
  42. c <- coef(model.Y.resample)["cond"]
  43.  
  44. indirect_pmi <- a1*b1
  45. indirect_import <- a2*b2
  46. direct <- c
  47.  
  48. ## output vector, name - values
  49. out <- c(indirect_pmi = indirect_pmi,
  50. indirect_import = indirect_import,
  51. total_indirect = indirect_pmi + indirect_import,
  52. direct = direct)
  53. return(out)
  54.  
  55. ## resample data
  56. resample.data <- data[i, ]
  57.  
  58. ## re-estimate model of M and Y based on resampled data
  59. multicat.M.rspl <- lm(formula(multicat.model.M), data = resample.data)
  60. multicat.Y.rspl <- lm(formula(multicat.model.Y), data = resample.data)
  61.  
  62. ## recover coefficients
  63. a1 <- coef(multicat.M.rspl)["d1"]
  64. a2 <- coef(multicat.M.rspl)["d2"]
  65. b <- coef(multicat.Y.rspl)["inter"]
  66. cp1 <- coef(multicat.Y.rspl)["d1"]
  67. cp2 <- coef(multicat.Y.rspl)["d2"]
  68.  
  69. ## effect decomposition
  70. relative.ind.d1 <- a1*b
  71. relative.ind.d2 <- a2*b
  72. relative.direct.d1 <- cp1
  73. relative.direct.d2 <- cp2
  74.  
  75. out <- c(relative.ind.d1 = relative.ind.d1,
  76. relative.ind.d2 = relative.ind.d2,
  77. relative.direct.d1 = relative.direct.d1,
  78. relative.direct.d2 = relative.direct.d2)
  79.  
  80. return(out)
  81.  
  82. ## changes in R-sq (as a whole)
  83. summary(multicat.model)$r.squared - summary(multicat.model.null)$r.squared
  84. ## anova (whether R-sq change is significant?)
  85. anova(multicat.model, multicat.model.null)
  86.  
  87. ## changes in R-sq (as a whole)
  88. summary(multicat.model.Y)$r.squared - summary(multicat.model.null2)$r.squared
  89. ## anova (whether R-sq change is significant?)
  90. anova(multicat.model.null2, multicat.model.Y)
  91.  
  92. ## resample data
  93. resample.data <- data[i, ]
  94.  
  95. ## re-estimate model of M and Y based on resampled data
  96. multicat.M.null.rspl <- lm(inter ~ 1, data = resample.data)
  97. multicat.M.rspl <- lm(formula(multicat.model.M), data = resample.data)
  98. multicat.Y.rspl <- lm(formula(multicat.model.Y), data = resample.data)
  99.  
  100. ## recover quantity of interest
  101. rsq.change <- summary(multicat.M.rspl)$r.squared - summary(multicat.M.null.rspl)$r.squared
  102. b <- coef(multicat.Y.rspl)["inter"]
  103.  
  104. omnibus.indirect.multicat <- rsq.change*b
  105.  
  106. return(omnibus.indirect.multicat)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement