我试图用R分析一些概率数据。我给出的数据给出了给定概率的某些结果( A 和 B )的频率 p 和我想要的是一个模型,它允许我仅从频率数据中估算 p 。
现在我正在运行一个线性回归(类似于lm(p ~ A + B)
)或多或少的工作,但我知道这不是“正确的方法”。特别是,对于 A 或 B 的某些值,我的当前模型将返回不在[0, 1]
区间内的值,即无效一个概率。
我很确定有办法做到这一点,但我不能为我的生活找出模型被调用的内容或如何在R中运行它。任何人都可以给我一个提示吗?
答案 0 :(得分:3)
您不能只运行lm(p ~ A + B)
,因为没有模型将计数变量 A和B与概率相关联:lm()
符合线性回归以模拟无界实变量作为实数变量的线性组合的函数(您可以替换计数变量)。
最简单的概率模型是logistic regresion,它使用逻辑函数从无界实数值到有界区间[0,1]。您可以使用glm()
以及针对特殊情况的许多附加软件包在R中进行逻辑回归,例如, this rseek.org search for logistic regression。
此外,CrossValidated是一个很好的网站,可以对此问题进行建模。
答案 1 :(得分:0)
泊松回归,在R中实现,glm函数与family =“poisson”(带有默认日志链接),将估计一个对数线性模型,该模型可以非常直接地用于估计概率。根据您设置数据集输入的方式,您可以通过exp(linear.predictor)获得比例或比率。它有点类似于你当前使用的lm()设置为lm(log(p)~A + B),但错误更适合计数。 piece that Zeileis, el al, did for package pscl目前在分析计数数据的其他方法的背景下特别擅长(见3.2节):