首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R的'hatvalue‘函数的Julia等价物

R的'hatvalue‘函数的Julia等价物
EN

Stack Overflow用户
提问于 2021-03-24 19:20:50
回答 1查看 71关注 0票数 1

Julia中,是否有一个与Rhatvalues函数相当的函数?hatvalues根据拟合的线性模型计算杠杆值。最终,我希望根据拟合的GLM计算标准化的皮尔逊残差,但似乎必须在Julia中手动计算,这需要计算hatvalues。例如,这正是我想要的输出,并从R获得。

代码语言:javascript
复制
library(tidyverse)
library(glmmTMB)

salamanders <- glmmTMB::Salamanders

mod1 <- glm(count ~ 1 + mined,
            data = salamanders,
            family = poisson(link = "log"))
head(hatvalues(mod1))
代码语言:javascript
复制
>  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)时获得的对象类型。

代码语言:javascript
复制
# 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)
代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2021-03-24 20:20:47

运行相应的线性模型并对其应用hatvalues

代码语言:javascript
复制
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] TRUE
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66779959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档