2번 모델이다 일단 데이터 만들어 봤다

x<-rnorm(100)
w1<-rnorm(100)+ x^2
w2<-rnorm(100)+ abs(x)
y<-rnorm(100, 0,1)  + w1*x + w2*x
co1<-rnorm(100)

d<-data.frame(x,w1,w2,y,co1)

CI 구하면 머 대충 이렇게 나온다

boot2<-function(xxx,mmm, mmm2,yyy,d,bootnum){
  ###estimate a*m
  boot2_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], data=nnk)
    s2<-summary(k2)
    coem<-s2$coefficients
    eff<-as.data.frame(coem)
    eff1<-eff[nrow(eff)-1,1]
    eff2<-eff[nrow(eff),1]
    efff<-c(eff1, eff2)
    efff<-matrix(efff, ncol = 2)
    efff
  }
  k<-1
  l<-matrix(rep(NA,bootnum*2),ncol = 2)
  l<-as.data.frame(l)
  repeat{
    l[k,]<-boot2_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))
  kmkmkmkm<-list(c(mean(l[,1]),sd(l[,1])),ci1, c(mean(l[,2]), sd(l[,2])),ci2)
  names(kmkmkmkm)<-c("moderation_mean_BootSE_x*w1", "moderation_CI_x*w1","moderation_mean_BootSE_x*w2", "moderation_CI_x*w2" )
  kmkmkmkm
}

boot2(1,2,3,4,d,1000)
## $`moderation_mean_BootSE_x*w1`
## [1] 0.9857817 0.0582682
## 
## $`moderation_CI_x*w1`
##      0.1%        1%        5%       10%       90%       95%       99%     99.9% 
## 0.8152156 0.8688174 0.9044641 0.9196585 1.0570230 1.0913943 1.1656862 1.2587117 
## 
## $`moderation_mean_BootSE_x*w2`
## [1] 1.1668624 0.1288602
## 
## $`moderation_CI_x*w2`
##      0.1%        1%        5%       10%       90%       95%       99%     99.9% 
## 0.7367057 0.8980585 0.9645952 1.0009907 1.3334755 1.3900402 1.4834823 1.6405540