Вам придется построить производную самостоятельно, и для этого есть два возможных пути.Позвольте мне проиллюстрировать это, используя только одну группу:
require(splines) #thx @Chase for the notice
lmdf <- mdf[mdf$variable=="b",]
model <- lm(value~ns(t,3),data=lmdf)
Затем вы просто определяете свою производную как diff(Y)/diff(X)
на основе ваших прогнозируемых значений, как вы делали бы для дифференцирования дискретной функции.Это очень хорошее приближение, если вы берете достаточно X баллов.
X <- data.frame(t=seq(0.1,1.0,length=100) ) # make an ordered sequence
Y <- predict(model,newdata=X) # calculate predictions for that sequence
plot(X$t,Y,type="l",main="Original fit") #check
dY <- diff(Y)/diff(X$t) # the derivative of your function
dX <- rowMeans(embed(X$t,2)) # centers the X values for plotting
plot(dX,dY,type="l",main="Derivative") #check
Как видите, таким образом вы получаете баллы для построения производной.Отсюда вы поймете, как применить это к обоим уровням и объединить эти точки с графиком, который вам нравится.Ниже приведены графики из этого примера кода: