我正在尝试从R中的probit获取得分向量(对数似然的一阶导数)。这是我的示例代码:

library(AER) # Affairs data
data(Affairs)
mydata<-Affairs
mydata$affairs<-with(mydata,ifelse(affairs>0,1,affairs)) # convert to 1 and 0 

glm(affairs ~ gender+ age + yearsmarried + children + 
  religiousness+education + rating,
 family = binomial(link = "probit"),data = mydata)

Call:  glm(formula = affairs ~ gender + age + yearsmarried + children + 
    religiousness + education + rating, family = binomial(link = "probit"), 
    data = mydata)

Coefficients:
  (Intercept)     gendermale            age   yearsmarried    childrenyes  religiousness      education         rating  
      0.76416        0.18882       -0.02440        0.05461        0.20807       -0.18609        0.01551       -0.27271  

Degrees of Freedom: 600 Total (i.e. Null);  593 Residual
Null Deviance:      675.4 
Residual Deviance: 610.5    AIC: 626.5

在Stata中,这可以predict anything,score总得来说是predict anything,score

===============>>#1 票数:4 已采纳

可以使用estfun()方法从sandwich包中提取观测数据的分数(又称估算函数)。 所以你先拟合模型

m <- glm(affairs ~ gender + age + yearsmarried + children + religiousness + education + rating,
  family = binomial(link = "probit"), data = mydata)

然后,您可以提取按观察分数的nxk矩阵:

library("sandwich")
s <- estfun(m)
dim(s)
## [1] 601   8

观测值之和基本上为零:

colSums(s)
##   (Intercept)    gendermale           age  yearsmarried   childrenyes 
## -0.0006048446 -0.0001081596  0.0005041310  0.0098581660  0.0005940238 
## religiousness     education        rating 
## -0.0006689870 -0.0147258776 -0.0016111599 

检查前六个分数可以得出:

head(s)
##    (Intercept) gendermale        age yearsmarried childrenyes
## 4   -0.3789593 -0.3789593 -14.021496   -3.7895934   0.0000000
## 5   -0.1913665  0.0000000  -5.166896   -0.7654660   0.0000000
## 11  -0.7474727  0.0000000 -23.919126  -11.2120903  -0.7474727
## 16  -0.1564706 -0.1564706  -8.918825   -2.3470591  -0.1564706
## 23  -0.5249512 -0.5249512 -11.548926   -0.3937134   0.0000000
## 29  -0.1611754  0.0000000  -5.157613   -0.2417631   0.0000000
##    religiousness education    rating
## 4     -1.1368780 -6.821268 -1.515837
## 5     -0.7654660 -2.679131 -0.765466
## 11    -0.7474727 -8.969672 -2.989891
## 16    -0.7823530 -2.816471 -0.782353
## 23    -1.0499023 -8.924170 -1.574853
## 29    -0.3223508 -2.739982 -0.805877

  ask by user227710 translate from so

未解决问题?本站智能推荐:

1回复

r仅根据部分记录预测glm分数

我有一个基于数据A的glm,我想对数据B进行评分以进行验证,但是B中的一些记录缺少数据。 而不是没有得分(na.omit)或被删除(na.exclude)的结果,我希望它们最终得到一个输出的预测,使用该模型来确定仅基于具有值的数据的值。 一个可重复的例子...... 我需要最
1回复

GLM使用向量的字符串而不是向量本身插入向量

我正在创建一个将运行所有分析的函数,作为简化600行代码以避免错误的一种方法。 我在GLM系列产品上遇到麻烦。 我对数据帧进行了过滤,但是当我对DV和ME进行矢量处理时,它们来自已存在的数据帧( my_data$Hire , my_data$Con )。 我需要以使R能够从新创建的数据帧G
2回复

ggplot平滑线glm模型与给定的权重向量

我有以下数据: 我想要一个平滑的线与glm方法, total weight 。 我试过了, 我收到了错误, 在这种情况下,如何绘制平滑线?
1回复

GLM返回阈值的负值(截止)(R中)

我正在使用GLM进行物种分布建模。 我有(南美)来自GBIF( http://www.gbif.org/species/5846514 )的鳄鳄物种数据和来自Worldclim( http://worldclim.org/current )的生物气候数据。 我试图运行GLM以对物种分布进行建
1回复

将向量从存储在列表中的dataframe列传递给glm

我正在尝试将Poisson回归模型拟合到R中的数据集,从而将具有不同长度的向量存储在两个列表中作为数据框列,如下所示: 我需要建立一个模型来预测a从b和矢量c和d 。 由于无法将列表传递给glm,因此我尝试取消列出c和d列表以将其馈入模型,但这最终为c和d都创建了一个长向量,这意味着我
1回复

R glm.fit不返回概率吗?

这里的第一篇文章是R的新手。所以,如果我没有正确地发表这篇文章,请忍受:)。 我正在尝试使用glm()拟合模型,然后在模型上使用预测。 我的训练数据包括约430000个观测值,6个预测变量和二进制结果。 我尝试使用0-1或False-True更改结果。 我的测试数据包括大约
1回复

在glm()之后推导给定值以获取PPV,NPV,敏感性和特异性

我已经运行了glm()模型; 但现在我想用PPV,NPV,敏感性和特异性来衡量模型的准确性。 但是,我总是得到令人困惑的结果。 我的结果是一个看起来像这样的因子变量: 预测变量是连续变量与1个类别(性别)的组合。 我的代码是: 结果如下: 这是非常令人惊讶
1回复

GLM返回负值以确定物种分布模型的适用性

我已经开始使用GLM进行物种分布建模。 使用BIOCLIM环境数据(例如:Bio10,Bio15,Bio16,Bio17作为predictors ),以下数据(存储在对象presausTrain ): 模型结构的表达式: GLM的以下表达式: 结果将包含许多负面值,用于
2回复

GLM和quasipoisson

我想用quasipoisson运行一个glm()作为family的值。 但是我已经对色散参数phi进行了非常好的估计,因此我想在应用glm()时使用它。 有没有办法强制glm使用给定的分散参数进行quasipoisson?
2回复

仅在dpl​​yr程序中的glm之后不起作用步进功能

我正在尝试使用dplyr运行逐步回归,但是会导致以下错误: glm可以正常工作,但是当代码尝试将步骤结果保存到数据帧时,会发生错误。 我检查了函数glm和函数step的类是否与“ c(glm,lm)”相同。 但只有分步功能不起作用。 我尝试了几种方法来修复此错误,例如do语句,map2(将