Trong giải pháp sau đây, tôi giả sử hyperbPi
là . Ngoài ra, phương sai được sử dụng trong các xấp xỉ bên dưới chỉ đơn giản là các lỗi tiêu chuẩn bình phương được tính sau , vì vậy . Để tính toán xấp xỉ bằng phương pháp delta , chúng ta cần các đạo hàm riêng của hàm biến đổi s và . Các hàm chuyển đổi cho và được cung cấp bởi:
πsummary
hyperbFit
V a r (X) = S E ( X)2gα( ζ, π, δ)gβ( ζ, π, δ)αβ
gα(ζ,π,δ)gβ(ζ,π,δ)=ζ1+π2−−−−−√δ=ζπδ
Các đạo hàm riêng của hàm biến đổi cho sau đó:
Các đạo hàm riêng của hàm biến đổi cho là:
α∂∂ζgα(ζ,π,δ)∂∂πgα(ζ,π,δ)∂∂δgα(ζ,π,δ)=1+π2−−−−−√δ=πζ1+π2−−−−−√δ=−1+π2−−−−−√ζδ2
β∂∂ζgβ(ζ,π,δ)∂∂πgβ(ζ,π,δ)∂∂δgβ(ζ,π,δ)=πδ=ζδ=−πζδ2
Áp dụng phương thức delta cho các phép biến đổi, chúng ta có được xấp xỉ sau cho phương sai của (lấy căn bậc hai để nhận các lỗi tiêu chuẩn):
Phương sai gần đúng của là:α
Var(α)≈1+π2δ2⋅Var(ζ)+π2ζ2(1+π2)δ2⋅Var(π)+(1+π2)ζ2δ4⋅Var(δ)+2×[πζδ2⋅Cov(π,ζ)−(1+π2)ζδ3⋅Cov(δ,ζ)−πζ2δ3⋅Cov(δ,π)]
β
Var(β)≈π2δ2⋅Var(ζ)+ζ2δ2⋅Var(π)+π2ζ2δ4⋅Var(δ)+2×[πζδ2⋅Cov(π,ζ)−π2ζδ3⋅Cov(δ,ζ)−πζ2δ3⋅Cov(π,δ)]
Mã hóa trong R
Cách nhanh nhất để tính các xấp xỉ trên là sử dụng ma trận. Suy ra vectơ hàng chứa các đạo hàm riêng của hàm biến đổi cho hoặc đối với . Hơn nữa, biểu thị của sai-hiệp phương sai của ma trận . Ma trận hiệp phương sai có thể được lấy bằng cách gõ vào đâu là hàm được trang bị. Giá trị gần đúng của phương sai của sau đó là
Điều tương tự cũng đúng với phương pháp gần đúng của phương saiDαβζ,π,δΣ3×3ζ,π,δvcov(my.hyperbFit)
my.hyperbFit
α
Var(α)≈DαΣD⊤α
β.
Trong R
, điều này có thể dễ dàng được mã hóa như thế này:
#-----------------------------------------------------------------------------
# The row vector D of the partial derivatives for alpha
#-----------------------------------------------------------------------------
D.alpha <- matrix(
c(
sqrt(1+pi^2)/delta, # differentiate wrt zeta
((pi*zeta)/(sqrt(1+pi^2)*delta)), # differentiate wrt pi
-(sqrt(1+pi^2)*zeta)/(delta^2) # differentiate wrt delta
),
ncol=3)
#-----------------------------------------------------------------------------
# The row vector D of the partial derivatives for beta
#-----------------------------------------------------------------------------
D.beta <- matrix(
c(
(pi/delta), # differentiate wrt zeta
(zeta/delta), # differentiate wrt pi
-((pi*zeta)/delta^2) # differentiate wrt delta
),
ncol=3)
#-----------------------------------------------------------------------------
# Calculate the approximations of the variances for alpha and beta
# "sigma" denotes the 3x3 covariance matrix
#-----------------------------------------------------------------------------
var.alpha <- D.alpha %*% sigma %*% t(D.alpha)
var.beta <- D.beta %*% sigma %*% t(D.beta)
#-----------------------------------------------------------------------------
# The standard errors are the square roots of the variances
#-----------------------------------------------------------------------------
se.alpha <- sqrt(var.alpha)
se.beta <- sqrt(var.beta)
Sử dụng vàlog(ζ)log(δ)
Nếu các lỗi / phương sai tiêu chuẩn chỉ khả dụng cho và thay vì và , các hàm chuyển đổi sẽ thay đổi thành :
Các đạo hàm riêng của hàm biến đổi cho là:
ζ∗=log(ζ)δ∗=log(δ)ζδ
gα(ζ∗,π,δ∗)gβ(ζ∗,π,δ∗)=exp(ζ∗)1+π2−−−−−√exp(ζ∗)=exp(ζ∗)πexp(δ∗)
α∂∂ζ∗gα(ζ∗,π,δ∗)∂∂πgα(ζ∗,π,δ∗)∂∂δ∗gα(ζ∗,π,δ∗)=1+π2−−−−−√exp(−δ∗+ζ∗)=πexp(−δ∗+ζ∗)1+π2−−−−−√=−1+π2−−−−−√exp(−δ∗+ζ∗)
Các đạo hàm riêng của hàm biến đổi cho là:
β∂∂ζ∗gβ(ζ∗,π,δ∗)∂∂πgβ(ζ∗,π,δ∗)∂∂δ∗gβ(ζ∗,π,δ∗)=πexp(−δ∗+ζ∗)=exp(−δ∗+ζ∗)=−πexp(−δ∗+ζ∗)
Áp dụng
phương thức delta cho các phép biến đổi, chúng ta có được xấp xỉ sau cho phương sai của :
αVar(α)≈(1+π2)exp(−2δ∗+2ζ∗)⋅Var(ζ∗)+π2exp(−2δ∗+2ζ∗)1+π2⋅Var(π)+(1+π2)exp(−2δ∗+2ζ∗)⋅Var(δ∗)+2×[πexp(−2δ∗+2ζ∗)⋅Cov(π,ζ∗)−(1+π2)exp(−2δ∗+2ζ∗)⋅Cov(δ∗,ζ∗)−πexp(−2δ∗+2ζ∗)⋅Cov(δ∗,π)]
Phương sai gần đúng của là:
βVar(β)≈π2exp(−2δ∗+2ζ∗)⋅Var(ζ∗)+exp(−2δ∗+2ζ∗)⋅Var(π)+π2exp(−2δ∗+2ζ∗)⋅Var(δ∗)+2×[πexp(−2δ∗+2ζ∗)⋅Cov(π,ζ∗)−π2exp(−2δ∗+2ζ∗)⋅Cov(δ∗,ζ∗)−πexp(−2δ∗+2ζ∗)⋅Cov(δ∗,π)]
Mã hóa trong R
2
Lần này, sigma
biểu thị ma trận hiệp phương sai nhưng bao gồm phương sai và hiệp phương sai cho và thay vì và .δ * = log ( δ ) ζ δζ∗=log(ζ)δ∗=log(δ)ζδ
#-----------------------------------------------------------------------------
# The row vector D of the partial derivatives for alpha
#-----------------------------------------------------------------------------
D.alpha <- matrix(
c(
sqrt(1+pi^2)*exp(-ldelta + lzeta), # differentiate wrt lzeta
((pi*exp(-ldelta + lzeta))/(sqrt(1+pi^2))), # differentiate wrt pi
(-sqrt(1+pi^2)*exp(-ldelta + lzeta)) # differentiate wrt ldelta
),
ncol=3)
#-----------------------------------------------------------------------------
# The row vector D of the partial derivatives for beta
#-----------------------------------------------------------------------------
D.beta <- matrix(
c(
(pi*exp(-ldelta + lzeta)), # differentiate wrt lzeta
exp(-ldelta + lzeta), # differentiate wrt pi
(-pi*exp(-ldelta + lzeta)) # differentiate wrt ldelta
),
ncol=3)
#-----------------------------------------------------------------------------
# Calculate the approximations of the variances for alpha and beta
# "sigma" denotes the 3x3 covariance matrix with log(delta) and log(zeta)
#-----------------------------------------------------------------------------
var.alpha <- D.alpha %*% sigma %*% t(D.alpha)
var.beta <- D.beta %*% sigma %*% t(D.beta)
#-----------------------------------------------------------------------------
# The standard errors are the square roots of the variances
#-----------------------------------------------------------------------------
se.alpha <- sqrt(var.alpha)
se.beta <- sqrt(var.beta)