Meta-regression using restricted cubic splines (with rma() from the metafor package and rcs())

I would like to compile data from several published studies. I am trying to conduct a meta-regression using restricted cubic splines to analyse and plot the association between two variables (x and y), which is not linear.

Here's a simplified version of the code I used to fit the restricted cubic splines in the meta-regression:

library(metafor)

spl <- rma(y, y_se, mods = ~ rcs(x, c(1,2,3,4,5)), data=data, method="DL", random = ~ 1 | id)

However, the estimates of the regression between the knots are very high (+1111) and low (-1826), when I expected much less variation (-2 to 2).

Model Results:

estimate
intrcpt                    89.7615
rcs(x, c(1,2,3,4,5))x        14.0133
rcs(x, c(1,2,3,4,5))x '     -112.4379
rcs(x, c(1,2,3,4,5))x ''    1111.1094
rcs(x, c(1,2,3,4,5))x '''  -1826.6025

And when I plot these, it gives me also a very odd plot:

with(predict(spl, dose), plot(dose, pred, type = "l"))

Do you have an idea why? Is this because rcs() cannot be used with rma()? If this is the problem, what is the alternative to include a restricted cubic spline model within rma()?

• 1) rma() does not have a random argument. 2) You appear to pass the SE of the estimates as the second argument. However, the second argument of rma() is for the variances. Either use rma(y, y_se^2, ...) or rma(y, sei=y_se, ...). 3) You also may want to mention that rcs() comes from the rms package. Note that 1) and 2) do not explain these strange results. In general, rma() plays nicely with rcs(), but unless you provide a fully reproducible example illustrating the problems you are encountering, it will be next to impossible for me (or anybody else) to help. – Wolfgang May 15 '17 at 20:22
• Unfortunately the plot still looks odd. I think that there is something wrong with the way I am plotting the results... Do you have an example on how to plot a line with the results of a rma() including restricted cubic splines and the 95% confidence interval upper and lower bounds? – user1505 May 16 '17 at 12:31
• Without more detail this is going to be hard to unpick as @wolfgang states. We do notkknow (a) how many studies you have (b) what x is (c) what scientific question is leading to a spline function. – mdewey May 16 '17 at 17:24

Here is an example to illustrate the use of a restricted cubic spline with metafor.

library(metafor)
library(rms)

lines(xs, predict(res, newmods=xs)$pred, lwd=2) ### model with restricted cubic spline knots <- c(1,2,5,10) res <- rma(yi~rcs(weeks,knots), vi, data=dat) lines(xs, predict(res, newmods=rcspline.eval(xs, knots, inclx=TRUE))$pred, col="red", lwd=2)