标签: multinomial

如何使用多项 logit 模型的标准误差获得平均边际效应 (AME)?

我想获得具有标准误差的多项式 logit 模型的平均边际效应 (AME)。为此,我尝试了不同的方法,但到目前为止还没有达到目标。

最好的尝试

我最好的尝试是使用mlogit我在下面显示的手动获取 AME 。

library(mlogit)
ml.d <- mlogit.data(df1, choice="Y", shape="wide")  # shape data for `mlogit()`
ml.fit <- mlogit(Y ~ 1 | D + x1 + x2, reflevel="1", data=ml.d)  # fit the model

# coefficient names
c.names <- names(ml.fit$model)[- c(1, 5:6)]

# get marginal effects
ME.mnl <- sapply(c.names, function(x) 
  stats::effects(ml.fit, covariate=x, data=ml.d), 
  simplify=FALSE) 

# get AMEs
(AME.mnl <- t(sapply(ME.mnl, colMeans)))
#              1            2            3           4          5
# D  -0.03027080 -0.008806072 0.0015410569 0.017186531 0.02034928
# x1 …
Run Code Online (Sandbox Code Playgroud)

r multinomial mlogit marginal-effects

8
推荐指数
1
解决办法
1658
查看次数

如何用Rmd和Knit HTML显示"漂亮"的glm和multinom表?

当我执行multinom reg.我很难用Rmd和Knit HTLM(Rstudio)得到一个很好的总结.我想知道如何得到一个很好的总结,好像我使用stargazerLaTeX包...(参见printscreen)

摘要输出难以阅读! 在此输入图像描述

总结很好,很容易与观星者阅读! 在此输入图像描述

markdown r knitr multinomial stargazer

6
推荐指数
2
解决办法
9039
查看次数

R如何获得多项logit的置信区间?

让我用多项式logit上的UCLA示例作为运行示例---

library(nnet)
library(foreign)

ml <- read.dta("http://www.ats.ucla.edu/stat/data/hsbdemo.dta")
ml$prog2 <- relevel(ml$prog, ref = "academic")
test <- multinom(prog2 ~ ses + write, data = ml)

dses <- data.frame(ses = c("low", "middle", "high"), write = mean(ml$write))
predict(test, newdata = dses, "probs")
Run Code Online (Sandbox Code Playgroud)

我想知道如何获得95%的置信区间?

r multinomial logistic-regression

6
推荐指数
2
解决办法
5382
查看次数

python中的快速向量化多项式

我目前正在使用 NumPy 执行以下任务:我有一个很大的值网格,我需要在每个点提取多项式样本。多项式的概率向量因网格站点而异,因此 NumPy 多项式函数对我来说不太适用,因为它从相同的分布中进行所有绘制。迭代每个站点似乎效率极低,我想知道是否有一种方法可以在 NumPy 中有效地做到这一点。如果我使用 Theano (参见这个答案),这样的事情似乎是可能的(而且很快),但这需要大量的重写,我希望避免这种情况。多项式采样能否在基本 NumPy 中有效矢量化?

编辑:很容易修改 Warren 的代码以允许不同站点的不同计数,因为我发现我需要:所有需要做的就是传入完整数组count并删除第一个,如下所示:

import numpy as np


def multinomial_rvs(count, p):
    """
    Sample from the multinomial distribution with multiple p vectors.

    * count must be an (n-1)-dimensional numpy array.
    * p must an n-dimensional numpy array, n >= 1.  The last axis of p
      holds the sequence of probabilities for a multinomial distribution.

    The return value has the same shape as p.
    """
    out = np.zeros(p.shape, …
Run Code Online (Sandbox Code Playgroud)

python optimization numpy vectorization multinomial

6
推荐指数
1
解决办法
2827
查看次数

在功能上,torch.multinomial 与 torch.distributions.categorical.Categorical 相同吗?

例如,如果我提供 [0.5, 0.5] 的概率数组,两个函数将以相同的概率对索引 [0,1] 进行采样?

python distribution multinomial pytorch

6
推荐指数
1
解决办法
2497
查看次数

使用 nnet 包评估 R 中多项式 logit 的拟合优度

我使用multinom()nnet 包中的函数在 R 中运行多项逻辑回归。 nnet 包不包括 p 值计算和 t 统计量计算。我找到了一种使用此页面中的两个带尾 z 检验来计算 p 值的方法。举一个计算多项式 logit 的检验统计量的例子(不是真正的 t-stat,而是等价的),我计算了 Wald 统计量:

mm<-multinom(Empst ~ Agegroup + Marst + Education + State, 
             data = temp,weight=Weight)
W <- (summary(mm1)$coefficients)^2/(summary(mm1)$standard.errors)^2
Run Code Online (Sandbox Code Playgroud)

我取系数的平方并除以系数的标准误差的平方。然而,似然比检验是衡量逻辑回归拟合优度的首选方法。由于对似然函数的理解不完整,我不知道如何编写代码来计算每个系数的似然比统计量。使用multinom()函数的输出计算每个系数的似然比统计量的方法是什么?谢谢你的帮助。

r multinomial logistic-regression goodness-of-fit

5
推荐指数
1
解决办法
5103
查看次数

pymc3:具有多维集中因子的狄利克雷

我正在努力实现一个模型,其中狄利克雷变量的集中因子依赖于另一个变量。

情况如下:

系统由于组件故障而失败(共有三个组件,每次测试/观察时只有一个组件失败)。

组件发生故障的概率取决于温度。

这是该情况的(已注释的)简短实现:

import numpy as np
import pymc3 as pm
import theano.tensor as tt


# Temperature data : 3 cold temperatures and 3 warm temperatures
T_data = np.array([10, 12, 14, 80, 90, 95])

# Data of failures of 3 components : [0,0,1] means component 3 failed
F_data = np.array([[0, 0, 1], \
       [0, 0, 1], \
       [0, 0, 1], \
       [1, 0, 0], \
       [1, 0, 0], \
       [1, 0, 0]])

n_component = 3

# When temperature …
Run Code Online (Sandbox Code Playgroud)

python dirichlet bayesian multinomial pymc3

5
推荐指数
1
解决办法
2033
查看次数

使用 mgcv 将样条添加到多项 logit 模型

我正在尝试训练一个多项式 logit 模型,当我在做的时候,我不妨把它变成一个 GAM 并在混合中添加样条。

我曾尝试使用mgcv,但到目前为止我只设法生成错误。以下是使用iris数据集的一些示例。

你知道如何让它收敛吗?
谢谢

library(tidyverse)
library(mgcv)
my_iris <- iris %>% 
  mutate(y =    as.integer(as.factor(Species)) -1) 
set.seed(8)

# this works (no spline)
mod1 <- gam(
  data = my_iris,
  formula = list(
    y ~ Sepal.Length + Petal.Length,
      ~ Sepal.Length + Petal.Length),
  family=multinom(K=2))
Run Code Online (Sandbox Code Playgroud)

模型 2(花瓣宽度上的 1 个样条)崩溃并显示以下警告:

Warning message:
 In newton(lsp = lsp, X = G$X, y = G$y, Eb = G$Eb, UrS = G$UrS, L = G$L,  :
Fitting terminated with step failure - check …
Run Code Online (Sandbox Code Playgroud)

r gam mgcv multinomial logistic-regression

5
推荐指数
0
解决办法
632
查看次数

使用 rjags 包的贝叶斯多项式回归

我试图拟合一个多项式逻辑回归模型,其rjags结果是一个具有 3 个级别的分类(名义)变量(结果),解释变量是年龄(连续)和(具有 3 个级别的分类)。在此过程中,我想获得AgeGroup的后验均值和基于分位数的 95% 区域。

\n

我不太擅长,for loop我认为这就是我为模型编写的代码无法正常工作的原因。

\n

我的 beta 先验遵循正态分布,\xce\xb2j \xe2\x88\xbc Normal(0,100) for j \xe2\x88\x88 {0, 1, 2}。

\n

可重现的 R 代码

\n
library(rjags)\n\nset.seed(1)\ndata <- data.frame(Age = round(runif(119, min = 1, max = 18)),\n                   Group = c(rep("pink", 20), rep("blue", 18), rep("yellow", 81)), \n                   Outcome = c(rep("A", 45), rep("B", 19), rep("C", 55)))\n\nX <- as.matrix(data[,c("Age", "Group")]) \nJ <- ncol(X)\nN <- nrow(X)\n\n## Step …
Run Code Online (Sandbox Code Playgroud)

r bayesian multinomial logistic-regression rjags

5
推荐指数
1
解决办法
2322
查看次数

如何使用基于 nnet::multinom() 模型的 {ggeffects} 获得预测概率图的置信区间?

我想绘制 R 中与该nnet::multinom()函数拟合的多项式模型的预测概率。我有对数尺度的数值预测变量。

尽管{ggeffects}应该与 兼容multinom(),但该图不会像线性模型那样显示置信区间。

我是 R 和这个社区的新手,所以如果这个问题非常基本或者缺少一些重要的东西,我很抱歉。这是一个小例子:

library(tidyverse)
library(nnet)
library(effects)
library(ggeffects)


df <- data.frame(response = c("1 Better", "1 Better", "1 Better", "2 Medium", "2 Medium", "2 Medium", "3 Worse", "3 Worse", "3 Worse"),
                 count = c(1000, 2000, 4000, 6000, 10000, 3000, 6000, 5000, 11000))

mod1 <- multinom(response ~ log(count), data = df)
summary(mod1)

effects::effect(mod1, term="log(count)", se=TRUE, confidence.level=.95) %>% plot() # Produces CIs.

ggeffects::ggpredict(mod1, terms = "count") %>% plot() + theme_bw() # No confidence …
Run Code Online (Sandbox Code Playgroud)

r data-visualization confidence-interval nnet multinomial

5
推荐指数
1
解决办法
1877
查看次数