InexatError: trunc(int64,inf)

Hi i got below error when i try to fit data.
Can somebody help me to interpret this error

ERROR: InexactError: trunc(Int64, Inf)
Stacktrace:
 [1] trunc at .\float.jl:703 [inlined]
 [2] ceil at .\float.jl:365 [inlined]
 [3] ceil at C:\Users\julia\.julia\packages\ForwardDiff\sdToQ\src\dual.jl:265 [inlined]
 [4] _exp(::Size{(4, 4)}, ::SArray{Tuple{4,4},ForwardDiff.Dual{ForwardDiff.Tag{Pumas.var"#318#319"{Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{,Tuple{}}},PumasModel{ParamSet{NamedTuple{(:tvka, :tvk23, :tvQ, :tvvc, :tvvp, :tvCL, :tvbio1, :tvpe, :Ω, :σ),Tuple{RealDomain{Float64,Int64,Float64},RealDomain{Float64,Int64,Float64},RealDomain{Float64,Int64,Float64},RealDomain{Float64,Int64,Float64},RealDomain{Float64,Int64,Float64},RealDomain{Float64,Int64,Float64},RealDomain{Float64,Int64,Float64},RealDomain{Float64,Int64,Float64},PDiagDomain{PDMats.PDiagMat{Float64,Array{Float64,1}}},RealDomain{Float64,Int64,Float64}}}},var"#9#33",var"#10#34",var"#12#36",Pumas.LinearODE,var"#13#37",var"#23#47"},Subject{NamedTuple{(:DV,),Tuple{Array{Union{Missing, Float64},1}}},Pumas.ConstantCovar{NamedTuple{,Tuple{}}},Array{Pumas.Event{Float64,Float64,Float64,Float64,Float64,Float64,Nothing,Int64},1},Array{Float64,1}},NamedTuple{(:tvka, :tvk23, :tvQ, :tvvc, :tvvp, :tvCL, :tvbio1, :tvpe, :Ω, :σ),Tuple{Float64,Float64,Float64,Float64,Float64,Float64,Float64,Float64,PDMats.PDiagMat{Float64,Array{Float64,1}},Float64}}},Float64},Float64,6},2,16}) at C:\Users\julia\.julia\packages\StaticArrays\LJQEe\src\expm.jl:97
 [5] exp at C:\Users\julia\.julia\packages\StaticArrays\LJQEe\src\expm.jl:1 [inlined]
 [6] _expAt at C:\Users\julia\.julia\packages\Pumas\iIBBr\src\analytical_solutions\standard_models.jl:290 [inlined]
 [7] (::Pumas.LinearODE)(::ForwardDiff.Dual{ForwardDiff.Tag{Pumas.var"#318#319"{Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{,Tuple{}}},PumasModel{ParamSet{NamedTuple{(:tvka, :tvk23, :tvQ, :tvvc, :tvvp, :tvCL, :tvbio1, :tvpe, :Ω, :σ),Tuple{RealDomain{Float64,Int64,Float64},RealDomain{Float64,Int64,Float64},RealDomain{Float64,Int64,Float64},RealDomain{Float64,Int64,Float64},RealDomain{Float64,Int64,Float64},RealDomain{Float64,Int64,Float64},RealDomain{Float64,Int64,Float64},RealDomain{Float64,Int64,Float64},PDiagDomain{PDMats.PDiagMat{Float64,Array{Float64,1}}},RealDomain{Float64,Int64,Float64}}}},var"#9#33",var"#10#34",var"#12#36",Pumas.LinearODE,var"#13#37",var"#23#47"},Subject{NamedTuple{(:DV,),Tuple{Array{Union{Missing, Float64},1}}},Pumas.ConstantCovar{NamedTuple{,Tuple{}}},Array{Pumas.Event{Float64,Float64,Float64,Float64,Float64,Float64,Nothing,Int64},1},Array{Float64,1}},NamedTuple{(:tvka, :tvk23, :tvQ, :tvvc, :tvvp, :tvCL, :tvbio1, :tvpe, :Ω, :σ),Tuple{Float64,Float64,Float64,Float64,Float64,Float64,Float64,Float64,PDMats.PDiagMat{Float64,Array{Float64,1}},Float64}}},Float64},Float64,6}, ::ForwardDiff.Dual{ForwardDiff.Tag{Pumas.var"#318#319"{Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{,Tuple{}}},PumasModel{ParamSet{NamedTuple{(:tvka, :tvk23, :tvQ, :tvvc, :tvvp, :tvCL, :tvbio1, :tvpe, :Ω, :σ),Tuple{RealDomain{Float64,Int64,Float64},RealDomain{Float64,Int64,Float64},RealDomain{Float64,Int64,Float64},RealDomain{Float64,Int64,Float64},RealDomain{Float64,Int64,Float64},RealDo

and my model is

basemodel2 = @model begin
  @param begin
    tvka  ∈ RealDomain(lower=0.1, upper = 5)
    tvk23 ∈ RealDomain(lower=0.1, upper = 20 )
    tvQ   ∈ RealDomain(lower=0.1, upper = 150 )
    tvvc  ∈ RealDomain(lower=0.1, upper = 150)
    tvvp  ∈ RealDomain(lower=0.1, upper = 150)
    tvCL  ∈ RealDomain(lower=0.1 ,upper =15)
    tvbio1 ∈ RealDomain(lower=0.1, upper =1)
    tvpe   ∈ RealDomain(lower=0.1,upper =1)
    Ω     ∈ PDiagDomain(6) # CL = 0.23,Vc = 0.72,KA = 3.37,vp = 0.04,k23 = 0.09
    σ     ∈ RealDomain(lower=0.01,upper = 1)
  end
  @random begin
    η ~ MvNormal(Ω)
  end
  #@covariates Wt
  @pre begin
    ka    = tvka  
    k23   = tvk23 * exp(η[1])
    Q     = tvQ  * exp(η[2])
    vc    = tvvc * exp(η[3])
    vp    = tvvp * exp(η[4])
    CL    = tvCL  * exp(η[5])
    bioav = (Depot1 = tvbio1* exp(η[6]))
    PE    = tvpe
    
    A = @SMatrix([-ka    0      0           0
                   0    -k23    0           0
                  ka    k23*PE  -(CL+Q)/vc  Q/vp
                  0       0    Q/vc       -Q/vp  ])
  end
  @init begin
    Depot1 = 0.0
    Depot2 = 0.0
    Central = 0.0
    Peripheral = 0.0
  end
  @dynamics LinearODE
  @derived begin
    conc := @. Central/vc
    DV ~ @. Normal(conc, σ*abs(conc))
  end
end
bm2param1 =    ( tvka   = 0.255,
              tvk23  = 5.02,
              tvQ    = 53,
              tvvc   = 20.8,
              tvvp   = 26,
              tvCL   = 1.61,
              tvbio1 = 0.63,
              tvpe   = 0.66,
              Ω      = Diagonal([0.1,0.27,0.161,0.043,0.194,0.98]),
             σ       = 0.43)

phen1 = CSV.read("E:\\dontdelete\\ppdd\\bmadjtime.csv",missingstring = "NA")
a = names(phen1)
pumdf1 = read_pumas(phen1, observations = [:DV], id = :ID, time = :TIME, amt = :AMT, rate = :RATE, cmt = :CMT)

bm2result  = fit(basemodel2,pumdf1, bm2param1, Pumas.FOCEI(),ensemblealg = EnsembleThreads(),
               constantcoef = (tvpe = 0.66,))

And fit was successful when i add BSV on tvka . but it gave iiv estimate of tvka = 41.2. then i have removed bsv on tvka and run the model. it gives above error.

The error is indeed hard to interpret but the issue is that one of the elements of A becomes Inf. I suppose it might be because one of the volume parameters hits zero. You have lower bounds away from zero on the population volume parameters so it might be the random effect on one of the volume parameters that is very small such that the individual parameter ends up being zero. You can maybe try to reduce the initial variability or you could try removing the random effects on one or both of the volumes.

1 Like

i wanted to know one more thing.

how can i fix BSV of particular parameter.

To do that, you’d have to define each of them as scalars, i.e.

@random begin
    ηk23 ~ Normal(0.0, ωk23)
    ηQ ~ Normal(0.0, ωQ)
   ...etc
end

and then fix e.g.ωk23.

1 Like