Log likelihood of T and it's derivatives (from stan)
Arguments
- x
Observation
- df
degrees of freedom (\(> 0\), maybe non-integer).
df = Inf
is allowed.- mean
Mean for the likelihood
- sd
Standard deviation for the likelihood
- full
Add the data frame showing x, mean, sd as well as the fx and derivatives
Value
data frame with fx
for the log pdf value of with dDf
dMean
and dSd
that has the derivatives with respect to the parameters at
the observation time-point
Details
In an rxode2()
model, you can use llikT()
but you have to
use all arguments. You can also get the derivative of df
, mean
and sd
with
llikTDdf()
, llikTDmean()
and llikTDsd()
.
Examples
# \donttest{
x <- seq(-3, 3, length.out = 21)
llikT(x, 7, 0, 1)
#> fx dDf dMean dSd
#> 1 -4.2612484 -0.086858773 -1.5000000 3.5000000
#> 2 -3.8091335 -0.060260433 -1.5115465 3.0811756
#> 3 -3.3561547 -0.037201674 -1.5047022 2.6112853
#> 4 -2.9088542 -0.018379169 -1.4723926 2.0920245
#> 5 -2.4761000 -0.004340221 -1.4062500 1.5312500
#> 6 -2.0693878 0.004691380 -1.2972973 0.9459459
#> 7 -1.7028228 0.009010785 -1.1374408 0.3649289
#> 8 -1.3925134 0.009569214 -0.9218950 -0.1702945
#> 9 -1.1551333 0.007927361 -0.6521739 -0.6086957
#> 10 -1.0056349 0.005918024 -0.3385049 -0.8984485
#> 11 -0.9545342 0.005051942 0.0000000 -1.0000000
#> 12 -1.0056349 0.005918024 0.3385049 -0.8984485
#> 13 -1.1551333 0.007927361 0.6521739 -0.6086957
#> 14 -1.3925134 0.009569214 0.9218950 -0.1702945
#> 15 -1.7028228 0.009010785 1.1374408 0.3649289
#> 16 -2.0693878 0.004691380 1.2972973 0.9459459
#> 17 -2.4761000 -0.004340221 1.4062500 1.5312500
#> 18 -2.9088542 -0.018379169 1.4723926 2.0920245
#> 19 -3.3561547 -0.037201674 1.5047022 2.6112853
#> 20 -3.8091335 -0.060260433 1.5115465 3.0811756
#> 21 -4.2612484 -0.086858773 1.5000000 3.5000000
llikT(x, 15, 0, 1, full=TRUE)
#> fx dDf dMean dSd
#> 1 -4.6956220 -0.0338931511 -2.0000000 5.0000000
#> 2 -4.1042965 -0.0225073150 -1.9380888 4.2328398
#> 3 -3.5354158 -0.0134033865 -1.8497110 3.4393064
#> 4 -2.9974985 -0.0065857823 -1.7310665 2.6352396
#> 5 -2.5001272 -0.0019378861 -1.5789474 1.8421053
#> 6 -2.0536885 0.0007929097 -1.3913043 1.0869565
#> 7 -1.6689304 0.0019903977 -1.1678832 0.4014599
#> 8 -1.3563325 0.0021369166 -0.9108159 -0.1802657
#> 9 -1.1253251 0.0017504002 -0.6250000 -0.6250000
#> 10 -0.9834495 0.0012985422 -0.3180915 -0.9045726
#> 11 -0.9355929 0.0011086635 0.0000000 -1.0000000
#> 12 -0.9834495 0.0012985422 0.3180915 -0.9045726
#> 13 -1.1253251 0.0017504002 0.6250000 -0.6250000
#> 14 -1.3563325 0.0021369166 0.9108159 -0.1802657
#> 15 -1.6689304 0.0019903977 1.1678832 0.4014599
#> 16 -2.0536885 0.0007929097 1.3913043 1.0869565
#> 17 -2.5001272 -0.0019378861 1.5789474 1.8421053
#> 18 -2.9974985 -0.0065857823 1.7310665 2.6352396
#> 19 -3.5354158 -0.0134033865 1.8497110 3.4393064
#> 20 -4.1042965 -0.0225073150 1.9380888 4.2328398
#> 21 -4.6956220 -0.0338931511 2.0000000 5.0000000
et <- et(-3, 3, length.out=10)
et$nu <- 7
et$mean <- 0
et$sd <- 1
model <- function() {
model({
fx <- llikT(time, nu, mean, sd)
dDf <- llikTDdf(time, nu, mean, sd)
dMean <- llikTDmean(time, nu, mean, sd)
dSd <- llikTDsd(time, nu, mean, sd)
})
}
rxSolve(model, et)
#>
#>
#>
#>
#> using C compiler: ‘gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0’
#> ── Solved rxode2 object ──
#> ── Parameters ($params): ──
#> # A tibble: 1 × 0
#> ── Initial Conditions ($inits): ──
#> named numeric(0)
#> ── First part of data (object): ──
#> # A tibble: 10 × 8
#> time fx dDf dMean dSd nu mean sd
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 -3 -4.26 -0.0869 -1.5 3.5 7 0 1
#> 2 -2.33 -3.26 -0.0326 -1.5 2.5 7 0 1
#> 3 -1.67 -2.29 0.000289 -1.36 1.27 7 0 1
#> 4 -1 -1.49 0.00971 -1 0 7 0 1
#> 5 -0.333 -1.02 0.00611 -0.375 -0.875 7 0 1
#> 6 0.333 -1.02 0.00611 0.375 -0.875 7 0 1
#> # ℹ 4 more rows
# }