- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试评估 R 中多个回归的模型拟合,但我遇到了一个我现在遇到过多次的问题:我的泊松回归的对数似然是无限的。
我使用的是非整数因变量(注意:我知道我在这方面做了什么),我想知道这是否是问题所在。但是,在使用 glm.nb
运行回归时,我没有得到无限对数似然。
重现问题的代码如下。
编辑:当我将 DV 强制为整数时,问题似乎消失了。知道如何从具有非整数 DV 的泊松中获得对数似然吗?
# Input Data
so_data <- data.frame(dv = c(21.0552722691125, 24.3061351414885, 7.84658638053276,
25.0294679770848, 15.8064731063311, 10.8171744654056, 31.3008088413026,
2.26643928259238, 18.4261153345417, 5.62915828161753, 17.0691184593063,
1.11959635820499, 30.0154935602592, 23.0000809735738, 28.4389825676123,
27.7678405415711, 23.7108405071757, 23.5070651053276, 14.2534787168392,
15.2058525068363, 19.7449094187771, 2.52384709295823, 29.7081691356397,
32.4723790240354, 19.2147002673637, 61.7911384519901, 10.5687170234821,
23.9047421013736, 18.4889651451222, 13.0360878554798, 15.1752866581849,
11.5205948111817, 31.3539840929108, 31.7255952728076, 25.3034625215724,
5.00013988265465, 30.2037887018226, 1.86123112349445, 3.06932041603219,
22.6739418581257, 6.33738321053804, 24.2933951601142, 14.8634827414491,
31.8302947881089, 34.8361908525564, 1.29606416941288, 13.206844629927,
28.843579313401, 25.8024295609021, 14.4414831628722, 18.2109680632694,
14.7092063453463, 10.0738043919183, 28.4124482962025, 27.1004208775326,
1.31350378236957, 14.3009307888745, 1.32555197766214, 2.70896028922312,
3.88043749517381, 3.79492216916016, 19.4507965653633, 32.1689088941444,
2.61278585713499, 41.6955885902228, 2.13466761675063, 30.4207256294235,
24.8231524369244, 20.7605955978196, 17.2182798298094, 2.11563574288652,
12.290778250655, 0.957467139696772, 16.1775287334746))
# Run Model
p_mod <- glm(dv ~ 1, data = so_data, family = poisson(link = 'log'))
# Be Confused
logLik(p_mod)
最佳答案
详细说明@ekstroem 的评论:泊松分布仅在非负整数(0、1、...)上受支持。因此,从技术上讲,任何非整数值的概率都是零——尽管 R 确实允许 一点模糊,以考虑舍入/浮点表示问题:
> dpois(1,lambda=1)
[1] 0.3678794
> dpois(1.1,lambda=1)
[1] 0
Warning message:
In dpois(1.1, lambda = 1) : non-integer x = 1.100000
> dpois(1+1e-7,lambda=1) ## fuzz
[1] 0.3678794
理论上可以为非整数值计算类似泊松对数似然的东西:
my_dpois <- function(x,lambda,log=FALSE) {
LL <- -lambda+x*log(lambda)-lfactorial(x)
if (log) LL else exp(LL)
}
但我会非常小心 - 一些使用 integrate
的快速测试表明它集成到 1(在我修复了其中的错误之后),但我还没有检查更仔细地说,这确实是一个适定的概率分布。 (另一方面,一些看似合理的 posts on CrossValidated 表明它并不疯狂......)
你说“我知道我在这方面做了什么”;你能提供更多的上下文吗?一些替代的可能性(尽管这是转向 CrossValidated 领域)——最佳答案取决于您的数据真正来自何处(即,为什么您拥有非“类似计数”的数据整数,但你认为应该被视为泊松)。
family=quasipoisson
)。 (在这种情况下,R 仍然不会为您提供对数似然值或 AIC 值,因为从技术上讲它们不存在——您应该根据参数的 Wald 统计数据进行推断;参见例如 here更多信息。)nlme::gls
)关于r - 为什么我的泊松回归的似然/AIC 是无限的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38859906/
我尝试手动编写 AIC 的公式。我想将它与 scikit learn 结合使用。为了测试我的编码是否正确,我比较了给定相同数据集的 statsmodels 的 AIC 值。但如果我比较模型 M1 和模
在跨数据框的一个响应变量和多个解释变量之间应用模型后,我想按 AIC 分数对每个模型进行排名。我遇到了一个非常相似的问题,它正是我想做的。 Using lapply on a list of mode
假设我有以下数据: array([[0.88574245, 0.3749999 , 0.39727183, 0.50534724], [0.22034441, 0.81442653,
我正在尝试评估 R 中多个回归的模型拟合,但我遇到了一个我现在遇到过多次的问题:我的泊松回归的对数似然是无限的。 我使用的是非整数因变量(注意:我知道我在这方面做了什么),我想知道这是否是问题所在。但
我对 R 和 Python 相当陌生。我喜欢使用 Akaike 信息准则执行多元回归来选择变量并评估我的准则。 我编写了一些代码来使用 F 统计 P 值选择变量。该数据集包含房价信息 我计划将变量(即
考虑这个代码示例,根据 Akaike 准则从不同拟合高斯数量的数据中获得最佳拟合 MU1 = [1]; SIGMA1 = [2]; MU2 = [-3]; SIGMA2 = [1 ]; X = [mv
这是来自 ?lm 的一个非常简单的 lm 模型 ctl 46.17468 (LL1 -20.08824 (df=3) 从第一性原理重构: n -20.08828 这有点不对劲,还没发现毛病。 参
data <-c(88, 84, 85, 85, 84, 85, 83, 85, 88, 89, 91, 99, 104, 112, 126, 138, 146,151, 150, 148, 14
我正在尝试从具有不同的 ARIMA 估计中提取 AIC 和 BIC p & q 的组合 (p=0,1,2,3 并且 q=0,1.2,3)。我曾尝试使用以下代码,但未成功。 code: storage1
如何从 lm_robust 对象(包 estimatr)获取 AIC?我使用 lm_robust 是因为我想使用稳健的估计器来计算 SE。与 lm 函数不同,当您运行汇总函数并在 lm_robust
我有: from scipy import stats data = stats.gamma.rvs(2, loc=1.5, scale=2, size=100000) 所以我做了一个合适的 fitt
据我所知,Python中没有AIC包。因此,我尝试手动计算它以找到我的数据集中的最佳聚类数(我使用 K-means 进行聚类) 我遵循 Wiki 上的等式: AIC = 2k - 2ln(最大似然)
我想计算线性模型的 AIC 以比较它们的复杂性。我是这样做的: regr = linear_model.LinearRegression() regr.fit(X, y) aic_intercept_
我使用 MICE 包估算了数据。现在,我想展示基于汇总数据的 GLM 结果。 这就是我得出数据的方式: data.imputed <- mice(data, m=5, maxit = 50, meth
所以这是我的数据头, thickness grains resistivity 1 25.1 14.9 0.0270 2 368.4 58.1 0.0
我一直在尝试使用 biglm 在大型数据集(约 60,000,000 行)上运行线性回归。我想使用 AIC 进行模型选择。但是我发现在较小的数据集上使用 biglm 时,biglm 返回的 AIC 变
我已经用谷歌搜索了这个并找不到解决方案。 R 似乎在 AIC/BIC 计算方面存在问题。它会产生错误的结果。一个简单的例子如下所示: link = 'https://gist.githubuserco
我想知道是否可以从 GLMNet 获取 AIC 和 BIC。我发现 glmnet.cr 似乎能够做到这一点,但我的 react 是时间,而不是序数。我可以根据可能性自己计算它,但 glmnet 也不会
指定相同 AR(或 MA)模型由 R 中的 forecast 包中的函数 arima() 进行估计的不同方法不同的 BIC(贝叶斯信息准则)值。 为什么会发生这种情况? 考虑两种模型: (1) AR(
我尝试使用 R 重现一些 SAS 输出。我想重现的方法是: 使用混合模型对因子时间进行重复测量的两种方差分析(协方差矩阵 = CS,估计方法 = REML) 一切看起来都很好,除了 AIC .....
我是一名优秀的程序员,十分优秀!