Nothing
library(lifecontingencies)
data("soa08Act")
#test accuraccy
AXn <- Vectorize(lifecontingencies:::Axnold, "x")
AxN <- Vectorize(lifecontingencies:::Axnold, "n")
AxnM <- Vectorize(lifecontingencies:::Axnold, "m")
Axnvect <- Axn
AxncheckR <- function(object, x, m, n)
{
i <- object@interest
f <- function(t)
tpx_q_xt <- pxt(object, x=x, t=t)*qxt(object, x=x+t, t=1)
prob <- sapply(m:(m+n-1), f)
rowSums(prob /( (1+i)^(m+1):(m+n)))
}
#basic check
cbind(
AXn(soa08Act, 65:66, n=1, m=1) ,
Axnvect(soa08Act, 65:66, n=1, m=1),
AxncheckR(soa08Act, 65:66, m=1, n=1)
)
#k > 1
x <- 85
cbind(x=x, Axnvect(soa08Act, x=x, k=3), AXn(soa08Act, x=x, k=3))
#non-integer age
x <- 30:35+1/2
cbind(x=x, Axnvect(soa08Act, x=x), AXn(soa08Act, x=x))
#from testActuarialMathematics
x <- 0:9
lx <- seq(100, 10, by = -10)
tbl <- new("actuarialtable", x = x, lx = lx, interest = 0, name = "Uniformly decreasing lx")
c(1, AXn(tbl, x = 0), Axnvect(tbl, x = 0))
c(1, AXn(tbl, x = 8.3, k = 1), Axnvect(tbl, x = 8.3, k = 1))
v <- 1.06^(-seq(0.5, 2.0, by = 0.5))
p <- c(rep(5/17,3), 2/17)
ans <- sum(p * v)
c(AXn(tbl, x = 8.3, k = 2, i = 0.06), Axnvect(tbl, x = 8.3, k = 2, i = 0.06), ans)
v <- 1.06^(-seq(0.5, 1.5, by = 0.5))
p <- c(rep(5/13,2), 3/13)
ans <- sum(p * v)
c(AXn(tbl, x = 8.7, k = 2, i = 0.06), Axnvect(tbl, x = 8.7, k = 2, i = 0.06), ans)
round(c(Axn(soa08Act,x=30,i=0.06,k=4),
AXn(soa08Act,x=30,i=0.06,k=4),
0.1048),4) # 0.1048) #BOWERS P 339
#check previous and old
checkvalx <- function()
all(Axnvect(soa08Act, x=1:100) == AXn(soa08Act, x=1:100))
checkvaln <- function()
all(Axnvect(soa08Act, x=33, n=10:50) == AxN(soa08Act, x=33, n=10:50))
checkvalm <- function()
all(Axnvect(soa08Act, x=33, m=0:50) == AxnM(soa08Act, x=33, m=0:50))
checkvalk <- function(k)
{
allx <- seq(1, 50, by=0.5)
new <- Axnvect(soa08Act, x=allx, k=k)
old <- AXn(soa08Act, x=allx, k=k)
#print(cbind(old=old, new=new))
cbind("equal on all digit"=all(old == new), "equal with round off"= sum(abs(old - new)) < 1e-6)
}
checkvalx()
checkvaln()
checkvalm()
checkvalk(2)
checkvalk(4)
#checkvalk(6)
#checkvalk(12)
nrep <- 5
system.time(replicate(nrep, Axnvect(soa08Act, x=1:100) ))
system.time(replicate(nrep, AXn(soa08Act, x=1:100) ))
system.time(replicate(nrep, Axnvect(soa08Act, x=33, n=1:50) ))
system.time(replicate(nrep, AxN(soa08Act, x=33, n=1:50) ))
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.