In der folgenden Lösung gehe ich hyperbPi
von . Außerdem sind die in den folgenden Näherungen verwendeten Varianzen einfach die quadratischen Standardfehler, die durch after berechnet werden , also . Um die Approximation mit der Delta-Methode zu berechnen , benötigen wir die partiellen Ableitungen der Transformationsfunktion s und . Die Transformationsfunktionen für und sind gegeben durch:
V a r ( X ) = S E ( X ) 2 g α ( ζ ,πsummary
hyperbFit
V a r (X.) = S E ( X)2g β ( ζ , π , δ ) α β g α ( ζ , π , δ )Gα( ζ, π, δ)Gβ( ζ, π, δ)αβ α∂
Gα( ζ, π, δ)Gβ( ζ, π, δ)= ζ1 + π2- -- -- -- -- -√δ= ζπδ
Die partiellen Ableitungen der Transformationsfunktion für lauten dann:
Die partiellen Ableitungen der Transformationsfunktion für sind:
α β∂∂∂ζGα( ζ, π, δ)∂∂πGα( ζ, π, δ)∂∂δGα( ζ, π, δ)= 1 + π2- -- -- -- -- -√δ= πζ1 + π2- -- -- -- -- -√δ= - 1 + π2- -- -- -- -- -√ζδ2
β∂∂ζGβ( ζ, π, δ)∂∂πGβ( ζ, π, δ)∂∂δGβ( ζ, π, δ)= πδ= ζδ= - πζδ2
Wenn wir die Delta-Methode auf die Transformationen anwenden, erhalten wir die folgende Näherung für die Varianz von (nehmen Sie Quadratwurzeln, um die Standardfehler zu erhalten):
Die ungefähre Varianz von ist:α
V a r (α)≈ 1 + π2δ2⋅ V a r ( ζ) + π2ζ2( 1 + π2) δ2⋅ V a r ( π) + ( 1 + π2) ζ2δ4⋅ V a r ( δ) +2 × [ πζδ2⋅ C o v ( π, ζ) - ( 1 + π2) ζδ3⋅ C o v ( δ, ζ) - πζ2δ3⋅ C o v ( δ, π) ]
β
V a r ( β) ≈ π2δ2⋅ V a r (ζ) + ζ2δ2⋅ V a r (π) + π2ζ2δ4⋅ V a r (δ) +2 × [πζδ2⋅ C o v (π,ζ) - π2ζδ3⋅ C o v (δ,ζ) - πζ2δ3⋅ C o v (π,δ) ]
Codierung in R
Der schnellste Weg, um die obigen Näherungen zu berechnen, ist die Verwendung von Matrizen. Bezeichne den Zeilenvektor, der die partiellen Ableitungen der Transformationsfunktion für oder in Bezug auf . Ferner bezeichne die Varianz-Kovarianz-Matrix von . Die Kovarianzmatrix kann durch Eingabe abgerufen werden , wo die angepasste Funktion ist. Die obige Annäherung der Varianz von ist dann
Dasselbe gilt für die Approximation der Varianz vonα β ζ , π , δ Σ 3 × 3 ζ , π , δ αD.αβζ,π, δΣ3 × 3ζ,π, δvcov(my.hyperbFit)
my.hyperbFit
α
V a r (α)≈ D.αΣ D.⊤α
β.
In R
kann dies einfach wie folgt codiert werden:
#-----------------------------------------------------------------------------
# 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)
Verwenden von undLog( ζ)Log( δ)
Wenn die Standardfehler / -abweichungen nur für und anstelle von und verfügbar sind , ändern sich die Transformationsfunktionen in :
Die partiellen Ableitungen der Transformationsfunktion für sind dann:
δ *ζ∗= log( ζ)δ∗= log( δ)ζδ
Gα( ζ∗, π, δ∗)Gβ( ζ∗, π, δ∗)= exp( ζ∗) 1 + π2- -- -- -- -- -√exp( ζ∗)= exp( ζ∗) πexp( δ∗)
α∂∂ζ∗Gα( ζ∗, π, δ∗)∂∂πGα( ζ∗, π, δ∗)∂∂δ∗Gα( ζ∗, π, δ∗)= 1 + π2- -- -- -- -- -√exp( - δ∗+ ζ∗)= πexp( - δ∗+ ζ∗)1 + π2- -- -- -- -- -√= - 1 + π2- -- -- -- -- -√exp( - δ∗+ ζ∗)
Die partiellen Ableitungen der Transformationsfunktion für sind:
β∂∂ζ∗Gβ( ζ∗, π, δ∗)∂∂πGβ( ζ∗, π, δ∗)∂∂δ∗Gβ( ζ∗, π, δ∗)= πexp( - δ∗+ ζ∗)= exp( - δ∗+ ζ∗)= - πexp( - δ∗+ ζ∗)
Anwenden der
Delta-Methode auf Bei den Transformationen erhalten wir die folgende Näherung für die Varianz von :
αV a r (α)≈(1+ π2) exp( - 2 δ∗+ 2 ζ∗) ⋅ V a r ( ζ∗) + π2exp( - 2 δ∗+ 2 ζ∗)1 + π2⋅ V a r ( π)+ ( 1 + π2) exp( - 2 δ∗+ 2 ζ∗) ⋅ V a r ( δ∗) +2 × [ πexp( - 2 δ∗+ 2 ζ∗) ⋅ C o v ( π, ζ∗) - ( 1 + π2) exp( - 2 δ∗+ 2 ζ∗) ⋅ C o v ( δ∗, ζ∗)- πexp( - 2 δ∗+ 2 ζ∗) ⋅ C o v ( δ∗, π) ]
Die ungefähre Varianz von ist:
βV a r ( β) ≈ π2exp( - 2 δ∗+ 2 ζ∗) ⋅ V a r ( ζ∗) + exp( - 2 δ∗+ 2 ζ∗) ⋅ V a r ( π) + π2exp( - 2 δ∗+ 2 ζ∗) ⋅ V a r ( δ∗) +2 × [ πexp( - 2 δ∗+ 2 ζ∗) ⋅ C o v ( π, ζ∗) - π2exp( - 2 δ∗+ 2 ζ∗) ⋅ C o v ( δ∗, ζ∗) - πexp( - 2 δ∗+ 2 ζ∗) ⋅ C o v ( δ∗, π) ]
Codierung in R
2
Dieses Mal sigma
bezeichnet die Kovarianzmatrix, jedoch einschließlich der Varianzen und Kovarianzen für und anstelle von und .ζ∗= 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)
varcov <- solve(hyperbfitalv$hessian)
. Funktioniert das? Danach müssen Sie die Submatrix auswählen, die nur . Am einfachsten könnte ich Ihnen helfen, wenn Sie ein voll funktionsfähiges Beispiel mit Daten bereitstellen würden (Sie müssen nicht alle Ihre Daten bereitstellen).Mögliches Duplikat: Standardfehler von hyperbFit?
Ich könnte wetten, dass einige Konten derselben Person gehören ...
quelle