Возрастная интерполяция популяции: почему интерполяция кубического сплайна не дает сумму, равную исходной сумме
Из-за возрастного нагромождения я хочу сгладить возрастную популяцию, полученную из переписи населения Пакистана. Кубический сплайн считается подходящим выбором. Тем не менее, подобранный сплайн не дает сумму общей численности населения к исходной итоговой сумме. Вот мой код в R. Данные можно найти по ссылке.
Данные о населении по возрасту
age <- seq(0,99, by=1)
library(splines)
pop <- log(pop) # use log to aviod negative values
sf <- lm(pop ~ bs(age, knots=c(25, 50, 75)))
pred = predict(sf,se=T)
plot(age,pop, pch=c(1),lty=c(1),type=c("o"))
title("Cubic Splines")
lines(age,pred$fit,lwd=2)#plot the fitted spline curve #line width
Есть ли способ сохранить сумму равной до и после сглаживания? До суммы (68185120)!= После суммы (65270572)
Кроме того, есть ли логический способ назначить узел? Выбор узлов в этом случае носит чисто субъективный характер. С уважением, Асиф