问题标签 [glm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - 修改 glm 函数以在 R 中采用用户指定的链接函数
在R 中,族glm
的默认链接函数Gamma
是和。现在对于我的特定问题,我需要使用带有响应的 gamma 回归和修改后的链接函数,其形式为. 因此,我考虑修改 R 中的一些-related 函数。有几个函数可能是相关的,我正在为以前有这样做经验的任何人寻求帮助。inverse
identity
log
Y
log(E(Y)-1))
glm
例如,函数Gamma
定义为
另外,为了使用命令glm(y ~ log(mu), family = Gamma(link = MyLink))
,我还需要修改glm.fit
功能吗?谢谢!
更新和新问题
根据@Ben Bolker 的评论,我们需要编写一个名为vlog
(实名"log(exp(y)-1)"
)的新链接函数。我发现该make.link
功能可能是造成这种修改的原因。它被定义为
我的问题是:如果我们想把这个链接函数永久vlog
添加到 中glm
,以便在每个 R 会话中,我们可以glm(y~x,family=Gamma(link="log(exp(y)-1)"))
直接使用,我们是否应该使用fix(make.link)
然后将定义添加vlog
到它的主体?还是fix()
只能在当前的 R 会话中这样做?再次感谢!
还有一件事:我意识到可能需要修改另一个功能。,Gamma
定义为
我认为我们还需要修改
到
?
r - R中速率变量的回归
我的任务是开发一个回归模型来观察不同项目的学生注册情况。这是一个非常好的、干净的数据集,其中注册数很好地遵循泊松分布。我在 R 中拟合了一个模型(同时使用 GLM 和零膨胀泊松。)得到的残差似乎是合理的。
但是,然后我被指示将学生人数更改为“率”,计算为学生/学校人口(每所学校都有自己的人口。))现在这不再是计数变量,而是介于 0 和 1 之间的比例. 这被认为是一个程序中的“入学比例”。
这个“比率”(学生/人口)不再是泊松,但也肯定不正常。所以,我对适当的分布以及表示它的后续模型有点迷茫。
对数正态分布似乎很适合这个速率参数,但是我有很多 0 值,所以它实际上并不适合。
关于这个新参数的最佳分布形式的任何建议,以及如何在 R 中对其建模?
谢谢!
r - 在 R glm 模型中选择具有统计意义的变量
我有一个结果变量,比如 Y 和一个可能影响 Y 的 100 个维度的列表(比如 X1...X100)。
在运行我glm
的模型并查看模型摘要后,我看到了那些具有统计意义的变量。我希望能够选择这些变量并运行另一个模型并比较性能。有没有办法可以解析模型摘要并仅选择重要的?
r - Predict.glm 没有在响应中预测缺失值
出于某种原因,当我指定 glms(事实证明,还有 lm)时,R 并没有预测数据的缺失值。这是一个例子:
p 的长度应该是 100,但它是 50。奇怪的是,我在同一个脚本中还有其他预测可以从缺失的数据中预测。
编辑:事实证明,那些其他预测是完全错误的——我正在做imputed.value = rnorm(N,mean.from.predict,var.of.prediction.interval)
. 这从 lm predict 或 glm predict 函数中回收length(predict)<N
了 mean 和 sd 向量 when ,这与我所寻求的完全不同。
所以我的问题是我的示例代码如何阻止 glm 和 lm 预测缺失值?
谢谢!
r - svyglm 和加权 glm 的区别
我想知道使用svyglm
或加权之间有什么区别glm
。
例如:
或将样本设计定义为:
然后使用svyglm
:
在我使用M2
(svyglm
)的情况下。我可以使用什么来比较模型,比如逐步对 glm 模型进行比较?
谢谢,娜塔莉亚
r - 在用户定义的函数中使用 step() 时缺少对象错误
5天了还是没有回复
- 从西蒙的评论可以看出,这是一个可重现且非常奇怪的问题。似乎只有在将具有非常高预测能力的逐步回归包含在函数中时才会出现问题。
我已经为此苦苦挣扎了一段时间,任何帮助将不胜感激。我正在尝试编写一个运行多个逐步回归并将它们全部输出到列表的函数。但是,R 无法读取我在函数参数中指定的数据集。我在各种板上(此处、此处和此处)发现了几个类似的错误,但似乎都没有得到解决。这一切都归结为在用户定义的函数中调用 step() 的一些奇怪问题。我正在使用以下脚本来测试我的代码。多次运行整个过程,直到出现错误(相信我,它会的):
这将返回以下错误消息(如果错误没有立即出现,请继续重新运行 test.df 脚本以及对 stepModel() 的调用,它最终会出现):
我已经确定一切运行良好,直到 model.stepwise2 开始构建。不知何故,临时对象“数据集”在第一次逐步回归中工作得很好,但无法被第二次识别。我通过注释掉部分函数发现了这一点,如下所示。此代码将运行良好,证明对象“数据集”最初被识别:
编辑 - 在任何人问之前,所有的 summary() 函数都在那里,因为完整的函数(我编辑了它以便你可以专注于错误)有另一个部分定义了一个文件,你可以输出逐步跟踪。我刚刚摆脱了他们
编辑 2 - 会话信息
sessionInfo() R 版本 2.15.1 (2012-06-22) 平台:x86_64-pc-mingw32/x64 (64-bit)
编辑 3 - 这执行与函数相同的所有操作,只是不使用函数。即使算法不收敛,这每次都会运行良好:
r - 当数据包含 NaN 时,为什么 GLM 模型(包 = 启动)的留一法交叉验证失败?
这是一个相当简单的过程——用数据子集(训练集)重新拟合 GLM 模型并计算剩余数据的预测准确性。我正在尝试使用cv.glm
package 的功能对数据集(即训练子集长度 = n-1)运行“留一法”策略boot
。
我是不是做错了什么,还是该函数似乎无法处理 NA 真的是这种情况?我猜这很容易自己编程,但如果我犯了其他错误,我将不胜感激。干杯。
例子:
r - R中引导库的cv.glm中的成本函数
我正在尝试使用 R 中引导库中的交叉验证 cv.glm 函数来确定应用 glm 逻辑回归时错误分类的数量。
该函数具有以下签名:
前两个表示数据和模型,K 表示 k 折。我的问题是成本参数定义为:
成本:两个向量参数的函数,指定交叉验证的成本函数。成本的第一个参数应该对应于观察到的响应,第二个参数应该对应于广义线性模型的预测或拟合响应。cost 必须返回一个非负的标量值。默认值为均方误差函数。
我想对于分类来说,有一个返回错误分类率的函数是有意义的,例如:
这当然甚至在语法上都不正确。
不幸的是,我有限的 R 知识让我浪费了很多时间,我想知道是否有人能指出我正确的方向。
svm - 如果我从 randomforest、gbm、svm、nnet 生成预测以获得更准确的预测,如何组合结果(预测)?
更具体地说,如何通过创建集成来改进我的预测?我的意思是我知道我们对从不同算法(随机森林、nnet、gbm、svm)获得的结果(预测)进行回归。但是我们该怎么做呢?
r - 在没有案例本身的情况下预测 glm 模型构建的值
我想使用生成的模型来预测值。这是简单的部分:
但是:对于每种情况,我都不想使用这种情况来构建该模型(不使用 for 循环)
例子:
假设我想预测 St.Adam 学生的平均成绩,但不想用它们来构建模型。