조절된 조절 구해보자
#model 3
x<-rnorm(100)
w1<-rnorm(100)+ x^2
w2<-rnorm(100)+ abs(x)
y<-rnorm(100, 0,1) + w1*w2*x
co1<-rnorm(100)
d<-data.frame(x,w1,w2,y,co1)
조절된 조절은 존내 방법으로 나타낼 수 있나..?모르겠다
boot3<-function(xxx,mmm, mmm2,yyy,d,bootnum){
###estimate a*m
boot3_1<-function(xxx,mmm,mmm2, yyy,d){
n<-sample(1:nrow(d),nrow(d),replace = T)
nnk<-d[n,]
nnk<-as.data.frame(nnk)
k2<-lm(nnk[,yyy]~ nnk[,xxx]+nnk[,mmm] + nnk[,mmm2]+ nnk[,xxx]*nnk[,mmm] + nnk[,xxx]*nnk[,mmm2] + nnk[,xxx]*nnk[,mmm]*nnk[,mmm2], data=nnk)
s2<-summary(k2)
coem<-s2$coefficients
eff<-as.data.frame(coem)
eff1<-eff[nrow(eff)-2,1]
eff2<-eff[nrow(eff)-1,1]
eff3<-eff[nrow(eff),1]
efff<-c(eff1, eff2, eff3)
efff<-matrix(efff, ncol = 3)
efff
}
k<-1
l<-matrix(rep(NA,bootnum*3),ncol = 3)
l<-as.data.frame(l)
repeat{
l[k,]<-boot3_1(xxx,mmm, mmm2,yyy,d)
k<-k+1
if(k>=bootnum+1) break
}
estimates<-list(l)
ci1<-quantile(l[,1],probs = c(.001,0.01,0.05,0.10,0.90,0.95,0.99,.999))
ci2<-quantile(l[,2],probs = c(.001,0.01,0.05,0.10,0.90,0.95,0.99,.999))
ci3<-quantile(l[,3],probs = c(.001,0.01,0.05,0.10,0.90,0.95,0.99,.999))
kmkmkmkm<-list(c(mean(l[,1]),sd(l[,1])),ci1, c(mean(l[,2]), sd(l[,2])),ci2,
c(mean(l[,3]),sd(l[,3])),ci3)
names(kmkmkmkm)<-c("moderation_mean_BootSE_x*w1", "moderation_CI_x*w1","moderation_mean_BootSE_x*w2", "moderation_CI_x*w2", "moderation_mean_BootSE_x*w1*w2", "moderation_CI_x*w1*w2")
kmkmkmkm
}
boot3(1,2,3,4,d,100)
## $`moderation_mean_BootSE_x*w1`
## [1] -0.1845618 0.2139238
##
## $`moderation_CI_x*w1`
## 0.1% 1% 5% 10% 90% 95%
## -0.62295476 -0.59395024 -0.51046297 -0.43806192 0.07310038 0.18495294
## 99% 99.9%
## 0.41518243 0.44515935
##
## $`moderation_mean_BootSE_x*w2`
## [1] -0.15311482 0.06318983
##
## $`moderation_CI_x*w2`
## 0.1% 1% 5% 10% 90% 95%
## -0.272177582 -0.270377175 -0.255456638 -0.242636026 -0.074623342 -0.045451186
## 99% 99.9%
## -0.009361005 -0.005457043
##
## $`moderation_mean_BootSE_x*w1*w2`
## [1] 1.01413084 0.06810441
##
## $`moderation_CI_x*w1*w2`
## 0.1% 1% 5% 10% 90% 95% 99% 99.9%
## 0.7337806 0.8532388 0.9120283 0.9299563 1.0870237 1.0911727 1.1623455 1.1768790