# Domain Error Message

**URL:** <https://discourse.pumas.ai/t/domain-error-message/196>\
**Category:** maximum-likelihood\
**Created:** [February 17, 2020, 4:48pm UTC](https://discourse.pumas.ai/t/domain-error-message/196 "2020-02-17T16:48:18Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![Anitha](https://avatars.discourse-cdn.com/v4/letter/a/a587f6/32.png) [@Anitha](https://discourse.pumas.ai/u/Anitha)\
**Post date:** [February 17, 2020, 4:48pm UTC](https://discourse.pumas.ai/t/domain-error-message/196/1 "2020-02-17T16:48:18Z")

</div>

While trying a 2Comparamental Pumas model, I am running into the problems with the error message:

“DomainError with -5.8849501006116275e-6:

sqrt will only return a complex result if called with a complex argument. Try sqrt(Complex(x))………”

The data has been read through read\_pumas; Pumas. FOCEI () was run but at the level of standard error calculations, I get the Domain Error message.

Any thoughts?

Thanks

---

<div class="post-metadata">

**Author:** ![vijay](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.pumas.ai/vijay/32/96_2.png) [@vijay](https://discourse.pumas.ai/u/vijay)\
**Post date:** [February 17, 2020, 4:49pm UTC](https://discourse.pumas.ai/t/domain-error-message/196/2 "2020-02-17T16:49:48Z")

</div>

Dear Anitha,

Welcome to the community!

Could you please share the code you are working on here. What error model are you working with?

Vijay

---

<div class="post-metadata">

**Author:** ![Anitha](https://avatars.discourse-cdn.com/v4/letter/a/a587f6/32.png) [@Anitha](https://discourse.pumas.ai/u/Anitha)\
**Post date:** [February 17, 2020, 5:19pm UTC](https://discourse.pumas.ai/t/domain-error-message/196/3 "2020-02-17T17:19:21Z")

</div>

Thank you Vijay. Below is the code. I am using additive error model.

```
pkdf = read_pumas(df_sorted,
                    cvs = [:Age,:BSA],
                    dvs = [:Conc],
                    id = :Patient,
                    time = :Time,
                    evid = :evid,
                    amt = :amt,
                    rate = :rate)
######################## Base model ############################################
two_cmpt_add = @model begin
  @param begin
      tvcl ∈ RealDomain(lower=0)
      tvQ ∈ RealDomain(lower=0)
      tvv ∈ RealDomain(lower=0)
      tvvt ∈ RealDomain(lower=0)
      Ω ∈ PDiagDomain(4)
      σ²_add ∈ RealDomain(lower=0.0001) 

  end
  @random begin
      η ~ MvNormal(Ω)
  end
  @pre begin
      CL = tvcl * exp(η[1])
      Q = tvQ * exp(η[2])
      Vc = tvv * exp(η[3])
      Vp = tvvt * exp(η[4])
  end
  @dynamics Central1Periph1
  @derived begin
      Cparent = @. Central / Vc 
      Conc ~ @. Normal(Cparent, sqrt(σ²_add)) 
    end
end
#Initial parameters
param = (
    tvcl = 55,
    tvQ = 11,
    tvv = 9,
    tvvt = 10,
    Ω = Diagonal([0.09,0.09,0.09,0.09]),
    σ²_add = 2,
    )
#fit model
result_two_cmpt_add = @time fit(
                                two_cmpt_add,
                                pkdf,param,
                                Pumas.FOCEI())
#standard error calculation
infer_two_cmpt_add = infer(result_two_cmpt_add) ( DomainError with -5.88495e-6:)
```

---

<div class="post-metadata">

**Author:** ![Anitha](https://avatars.discourse-cdn.com/v4/letter/a/a587f6/32.png) [@Anitha](https://discourse.pumas.ai/u/Anitha)\
**Post date:** [February 17, 2020, 5:20pm UTC](https://discourse.pumas.ai/t/domain-error-message/196/4 "2020-02-17T17:20:01Z")

</div>

```
DomainError with -5.8849501006116275e-6:
sqrt will only return a complex result if called with a complex argument. Try sqrt(Complex(x)).
throw_complex_domainerror(::Symbol, ::Float64) at math.jl:31
sqrt at math.jl:493 [inlined]
_broadcast_getindex_evalf at broadcast.jl:625 [inlined]
_broadcast_getindex at broadcast.jl:598 [inlined]
_getindex at broadcast.jl:621 [inlined]
_broadcast_getindex at broadcast.jl:597 [inlined]
getindex at broadcast.jl:558 [inlined]
macro expansion at broadcast.jl:888 [inlined]
macro expansion at simdloop.jl:77 [inlined]
copyto! at broadcast.jl:887 [inlined]
copyto! at broadcast.jl:842 [inlined]
copy at broadcast.jl:818 [inlined]
materialize at broadcast.jl:798 [inlined]
unwhiten(::PDMats.PDiagMat{Float64,Array{Float64,1}}, ::SubArray{ForwardDiff.Dual{ForwardDiff.Tag{getfield(Pumas, Symbol("##190#191")){Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{,Tuple{}}},PumasModel{ParamSet{NamedTuple{(:tvcl, :tvQ, :tvv, :tvvt, :Ω, :σ²_add),Tuple{RealDomain{Int64,TransformVariables.Infinity{true},Float64},RealDomain{Int64,TransformVariables.Infinity{true},Float64},RealDomain{Int64,TransformVariables.Infinity{true},Float64},RealDomain{Int64,TransformVariables.Infinity{true},Float64},PDiagDomain{PDMats.PDiagMat{Float64,Array{Float64,1}}},RealDomain{Float64,TransformVariables.Infinity{true},Float64}}}},getfield(Main, Symbol("##9#14")),getfield(Main, Symbol("##10#15")),getfield(Main, Symbol("##11#16")),Central1Periph1,getfield(Main, Symbol("##12#17")),getfield(Main, Symbol("##13#18"))},Subject{NamedTuple{(:Conc_B,),Tuple{Array{Union{Missing, Float64},1}}},NamedTuple{(:Age, :BSA),Tuple{Float64,Float64}},Array{Pumas.Event{Float64,Float64,Float64,Float64,Float64,Float64,Int64},1},Array{Float64,1}},NamedTuple{(:tvcl, :tvQ, :tvv, :tvvt, :Ω, :σ²_add),Tuple{Float64,Float64,Float64,Float64,PDMats.PDiagMat{Float64,Array{Float64,1}},Float64}},Tuple{}},Float64},Float64,4},1,Array{ForwardDiff.Dual{ForwardDiff.Tag{getfield(Pumas, Symbol("##190#191")){Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{,Tuple{}}},PumasModel{ParamSet{NamedTuple{(:tvcl, :tvQ, :tvv, :tvvt, :Ω, :σ²_add),Tuple{RealDomain{Int64,TransformVariables.Infinity{true},Float64},RealDomain{Int64,TransformVariables.Infinity{true},Float64},RealDomain{Int64,TransformVariables.Infinity{true},Float64},RealDomain{Int64,TransformVariables.Infinity{true},Float64},PDiagDomain{PDMats.PDiagMat{Float64,Array{Float64,1}}},RealDomain{Float64,TransformVariables.Infinity{true},Float64}}}},getfield(Main, Symbol("##9#14")),getfield(Main, Symbol("##10#15")),getfield(Main, Symbol("##11#16")),Central1Periph1,getfield(Main, Symbol("##12#17")),getfield(Main, Symbol("##13#18"))},Subject{NamedTuple{(:Conc_B,),Tuple{Array{Union{Missing, Float64},1}}},NamedTuple{(:Age, :BSA),Tuple{Float64,Float64}},Array{Pumas.Event{Float64,Float64,Float64,Float64,Float64,Float64,Int64},1},Array{Float64,1}},NamedTuple{(:tvcl, :tvQ, :tvv, :tvvt, :Ω, :σ²_add),Tuple{Float64,Float64,Float64,Float64,PDMats.PDiagMat{Float64,Array{Float64,1}},Float64}},Tuple{}},Float64},Float64,4},1},Tuple{UnitRange{Int64}},true}) at likelihoods.jl:2
transform_with at transforms.jl:295 [inlined]
_transform_tuple at aggregation.jl:161 [inlined]
transform_tuple at aggregation.jl:171 [inlined]
transform_with at aggregation.jl:223 [inlined]
transform(::TransformVariables.TransformTuple{NamedTuple{(:η,),Tuple{Pumas.MvNormalTransform{MvNormal{Float64,PDMats.PDiagMat{Float64,Array{Float64,1}},FillArrays.Zeros{Float64,1,Tuple{Base.OneTo{Int64}}}}}}}}, ::Array{ForwardDiff.Dual{ForwardDiff.Tag{getfield(Pumas, Symbol("##190#191")){Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{,Tuple{}}},PumasModel{ParamSet{NamedTuple{(:tvcl, :tvQ, :tvv, :tvvt, :Ω, :σ²_add),Tuple{RealDomain{Int64,TransformVariables.Infinity{true},Float64},RealDomain{Int64,TransformVariables.Infinity{true},Float64},RealDomain{Int64,TransformVariables.Infinity{true},Float64},RealDomain{Int64,TransformVariables.Infinity{true},Float64},PDiagDomain{PDMats.PDiagMat{Float64,Array{Float64,1}}},RealDomain{Float64,TransformVariables.Infinity{true},Float64}}}},getfield(Main, Symbol("##9#14")),getfield(Main, Symbol("##10#15")),getfield(Main, Symbol("##11#16")),Central1Periph1,getfield(Main, Symbol("##12#17")),getfield(Main, Symbol("##13#18"))},Subject{NamedTuple{(:Conc_B,),Tuple{Array{Union{Missing, Float64},1}}},NamedTuple{(:Age, :BSA),Tuple{Float64,Float64}},Array{Pumas.Event{Float64,Float64,Float64,Float64,Float64,Float64,Int64},1},Array{Float64,1}},NamedTuple{(:tvcl, :tvQ, :tvv, :tvvt, :Ω, :σ²_add),Tuple{Float64,Float64,Float64,Float64,PDMats.PDiagMat{Float64,Array{Float64,1}},Float64}},Tuple{}},Float64},Float64,4},1}) at generic.jl:196
(::getfield(Pumas, Symbol("##190#191")){Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{,Tuple{}}},PumasModel{ParamSet{NamedTuple{(:tvcl, :tvQ, :tvv, :tvvt, :Ω, :σ²_add),Tuple{RealDomain{Int64,TransformVariables.Infinity{true},Float64},RealDomain{Int64,TransformVariables.Infi...
```

---

<div class="post-metadata">

**Author:** ![vijay](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.pumas.ai/vijay/32/96_2.png) [@vijay](https://discourse.pumas.ai/u/vijay)\
**Post date:** [February 17, 2020, 5:23pm UTC](https://discourse.pumas.ai/t/domain-error-message/196/5 "2020-02-17T17:23:51Z")

</div>

So you are getting an error when you run the `infer` step and not during the `fit` process, correct?

---

<div class="post-metadata">

**Author:** ![Anitha](https://avatars.discourse-cdn.com/v4/letter/a/a587f6/32.png) [@Anitha](https://discourse.pumas.ai/u/Anitha)\
**Post date:** [February 17, 2020, 5:24pm UTC](https://discourse.pumas.ai/t/domain-error-message/196/6 "2020-02-17T17:24:19Z")

</div>

Yes, that’s correct.

---

<div class="post-metadata">

**Author:** ![andreasnoack](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.pumas.ai/andreasnoack/32/22_2.png) [@andreasnoack](https://discourse.pumas.ai/u/andreasnoack)\
**Post date:** [February 17, 2020, 8:48pm UTC](https://discourse.pumas.ai/t/domain-error-message/196/7 "2020-02-17T20:48:34Z")

</div>

This can happen when some of the variance estimates are very close to zero. Eventually, this will produce a more informative error message or we might be able to avoid the failing computation completely. Would you be able to share the output from the fitted model before running `infer`?

---

<div class="post-metadata">

**Author:** ![Anitha](https://avatars.discourse-cdn.com/v4/letter/a/a587f6/32.png) [@Anitha](https://discourse.pumas.ai/u/Anitha)\
**Post date:** [February 17, 2020, 9:36pm UTC](https://discourse.pumas.ai/t/domain-error-message/196/8 "2020-02-17T21:36:44Z")

</div>

Ok, Now i see. The Estimates are close to zero and very different from initial estimates. Can you suggest me how to share the output?

---

<div class="post-metadata">

**Author:** ![Anitha](https://avatars.discourse-cdn.com/v4/letter/a/a587f6/32.png) [@Anitha](https://discourse.pumas.ai/u/Anitha)\
**Post date:** [February 18, 2020, 1:15am UTC](https://discourse.pumas.ai/t/domain-error-message/196/9 "2020-02-18T01:15:59Z")

</div>

Thanks Andreas. I fixed the error - model is good now.

---

<div class="post-metadata">

**Author:** ![andreasnoack](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.pumas.ai/andreasnoack/32/22_2.png) [@andreasnoack](https://discourse.pumas.ai/u/andreasnoack)\
**Post date:** [February 18, 2020, 2:35pm UTC](https://discourse.pumas.ai/t/domain-error-message/196/10 "2020-02-18T14:35:57Z")

</div>

> [@Anitha](#):
>
> Can you suggest me how to share the output?

If you just type

```auto
julia> result_two_cmpt_add

```

and hit enter then you should get a summary table with the coefficients.

---

<div class="post-metadata">

**Author:** ![Anitha](https://avatars.discourse-cdn.com/v4/letter/a/a587f6/32.png) [@Anitha](https://discourse.pumas.ai/u/Anitha)\
**Post date:** [February 19, 2020, 12:27am UTC](https://discourse.pumas.ai/t/domain-error-message/196/11 "2020-02-19T00:27:07Z")

</div>

Thank you, was able to get the output.
