2017-10-03 23 views
0

내가이 데이터 R의 프레임이 있습니다BRMS 패키지 부드러운

x = rep(seq(-10,10,1),each=5) 
y = rep(0,length(x)) 
weights = sample(seq(1,20,1) ,length(x), replace = TRUE) 
weights = weights/sum(weights) 
groups = rep(letters[1:5], times =length(x)/5 ) 

이 보이는 일부 데이터 :

library(ggplot2) 
ggplot(data = dat, aes(x = x, y = y, color = group))+geom_point(aes(size = weights))+ 
    ylab("outcome")+ 
    xlab("predictor x1")+ 
    geom_vline(xintercept = 0)+ geom_hline(yintercept = 0) 



fit_brms = brm(y~ s(x)+(1|group), data = dat) 
by_group = marginal_effects(fit_brms, conditions = data.frame(group = dat$group) , 
          re_formula = NULL, method = "predict") 
plot(by_group, ncol = 5, points = TRUE) 

내가 그 때문에 계층 비선형 모델을하고 싶습니다 각 그룹마다 다른 비선형 적합이 있습니다.

brms 나는 그룹에 임의의 인터셉트를 사용하여 x 예측기에 스플라인 맞춤을 적용하는 아래 코드를 가지고 있습니다. 적합 라인은 모든 그룹에서 동일합니다. 차이점은 선이 y 절편을 가로 지르는 부분입니다. 비선형 적합을 각 그룹의 데이터 포인트마다 다르게 만들 수있는 방법이 있습니까? 여기 13 페이지의

는 : https://cran.r-project.org/web/packages/brms/vignettes/brms_multilevel.pdf

은 "자체가 다단계 방식으로 올해 변화로 모델링 할 수없는 부드러운 용어로, 우리는 세 사이의 변화를 설명하기위한 노력의 일환으로 기본 다양한 절편을 추가"주장

그러면 모든 그룹에서 스플라인이 동일하게 나타 납니까? 플롯의 유일한 차이는 스플라인이 y 절편을 가로 지르는 부분입니다. 그것은 매우 제한적으로 보입니다. 스플라인을 각 그룹마다 고유하게 만들 수 있습니까?

답변

0

다음 공식을 사용하십시오. y ~ s(x, by = group) + (1|group)