Возрастная интерполяция популяции: почему интерполяция кубического сплайна не дает сумму, равную исходной сумме

Из-за возрастного нагромождения я хочу сгладить возрастную популяцию, полученную из переписи населения Пакистана. Кубический сплайн считается подходящим выбором. Тем не менее, подобранный сплайн не дает сумму общей численности населения к исходной итоговой сумме. Вот мой код в 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)

Кроме того, есть ли логический способ назначить узел? Выбор узлов в этом случае носит чисто субъективный характер. С уважением, Асиф

0 ответов

Другие вопросы по тегам