Esta es una pregunta muy básica pero no he podido resolverla. Estoy usando R para predecir la prima basada en la prima actual.
fit <- glm(Premium ~ ns(Primary_Premium,df=2),data = dat, family =
Gamma(link="log"))
pred <- predict(fit, newdata= dat,type = "response")
b <- data.frame(Primary_Premium = dat$Primary_Premium,ppre =
ns(dat$Primary_Premium,df=2),Premium = dat$Premium,predicted = pred)
x <- data.frame(Coeff = fit$coefficients)
head(b)
x
Tengo valores como estos:
> head(b)
Primary_Premium ppre.1 ppre.2 Premium predicted.b
1 950000 0.3408506 -0.1395059 522500 311786.1
2 950000 0.3408506 -0.1395059 300000 311786.1
3 950000 0.3408506 -0.1395059 200000 311786.1
4 950000 0.3408506 -0.1395059 180000 311786.1
5 950000 0.3408506 -0.1395059 140000 311786.1
6 950000 0.3408506 -0.1395059 100000 311786.1
> x
Coeff
(Intercept) 10.7871678
ns(Primary_Premium, df = 2)1 5.7360387
ns(Primary_Premium, df = 2)2 0.6611012
Mi pregunta es, ¿cómo utilizar los coeficientes y valores para construir la fórmula? Por ejemplo,
311786.1 = exp(10.7871678 + 5.7360387*0.3408506 + 0.6611012* (-0.1395059)^2)
pero los resultados de dos lados no son iguales. ¿Alguien que esté familiarizado con el spline natural puede ayudarme? ¡Muchas gracias!