在Julia中,是否有一个与R的hatvalues函数相当的函数?hatvalues根据拟合的线性模型计算杠杆值。最终,我希望根据拟合的GLM计算标准化的皮尔逊残差,但似乎必须在Julia中手动计算,这需要计算hatvalues。例如,这正是我想要的输出,并从R获得。
library(tidyverse)
library(glmmTMB)
salamanders <- glmmTMB::Salamanders
mod1 <- glm(count ~ 1 + mined,
data = salamanders,
family = poisson(link = "log"))
head(hatvalues(mod1))> head(hatvalues(mod1))
1 2 3 4 5 6
0.003246753 0.003246753 0.003246753 0.002976190 0.002976190 0.002976190 我曾尝试在Julia中使用StatsBase.leverage(),但是,这似乎不适用于在拟合GLM (`GLM.jl)时获得的对象类型。
# Load required packages
using RCall
using Distributions
using Random
using DataFrames
using StatsBase
using GLM
using Statistics
using Compose
# Load in the dataset
salamander = rcopy(R"glmmTMB::Salamanders")
# Run Poisson GLM
m1 = fit(GeneralizedLinearModel,
@formula(count ~ 1 + mined),
salamander,
Poisson(),
GLM.LogLink())
# Try to calculate leverage
StatsBase.leverage(m1)julia> StatsBase.leverage(m1)
ERROR: leverage is not defined for StatsModels.TableRegressionModel{GeneralizedLinearModel{GLM.GlmResp{Array{Float64,1},Poisson{Float64},LogLink},GLM.DensePredChol{Float64,Cholesky{Float64,Array{Float64,2}}}},Array{Float64,2}}.
Stacktrace:
[1] error(::String) at .\error.jl:33
[2] leverage(::StatsModels.TableRegressionModel{GeneralizedLinearModel{GLM.GlmResp{Array{Float64,1},Poisson{Float64},LogLink},GLM.DensePredChol{Float64,Cholesky{Float64,Array{Float64,2}}}},Array{Float64,2}}) at C:\Users\s1900332\.julia\packages\StatsBase\XT7PT\src\statmodels.jl:354
[3] top-level scope at REPL[295]:1发布于 2021-03-24 20:20:47
运行相应的线性模型并对其应用hatvalues。
library(glmmTMB)
salamanders <- glmmTMB::Salamanders
fo <- count ~ 1 + mined
mod1 <- glm(fo, data = salamanders, family = poisson(link = "log"))
hv1 <- hatvalues(mod1)
mod2 <- lm(fo, data = salamanders)
hv2 <- hatvalues(mod2)
all.equal(hv1, hv2)
## [1] TRUEhttps://stackoverflow.com/questions/66779959
复制相似问题