Привет. В R. Существует не один, а несколько способов подгонки кривой. Вы можете начать с чего-нибудь простого:
x <- c(32,64,96,118,126,144,152.5,158)
#make y as response variable
y <- c(99.5,104.8,108.5,100,86,64,35.3,15)
plot(x,y,pch=19)
Это должно дать вам график ниже. Сглаживание кривой говорит нам о том, что мы можем подобрать здесь хорошую полиномиальную кривую.
Теперь мы можем подогнать нашу кривую (и) к данным ниже:
linMod <- lm(y~x)
#second degree polynomial model
linMod2 <- lm(y~poly(x,2,raw=TRUE))
#third degree polynomial model
linMod3 <- lm(y~poly(x,3,raw=TRUE))
#fourth degree polynomial model
linMod4 <- lm(y~poly(x,4,raw=TRUE))
#generate new data in range of 50 numbers starting from 30 and ending at 160
newData <- seq(30,160, length=50)
plot(x,y,pch=19,ylim=c(0,150))
lines(newData, predict(linMod, data.frame(x=newData)), col="red")
lines(newData, predict(linMod2, data.frame(x=newData)), col="green")
lines(newData, predict(linMod3, data.frame(x=newData)), col="blue")
lines(newData, predict(linMod4, data.frame(x=newData)), col="purple")
Дает нам:
Это просто простая иллюстрация подгонки кривой в R. Есть множество учебных пособий, возможно, вы могли бы начать искать здесь: