Firth 逻辑回归
Firth's Logistic Regression
我正在尝试通过逻辑回归找到销售汽车的人的预测因素。我的样本量是 n=922,主要是基数和序数变量。
因为我的一些变量有多达 7 个类别(--> 6 个虚拟变量),所以我遇到了分离。
在文献中,他们推荐 Firth 的减少偏差的逻辑回归方法。
安装包后我使用了以下公式:
logistf(formula = attr(data, "formula"), data = sys.parent(), pl = TRUE, ...)
并输入(或试图输入)我的数据:
mydataBrAll <- logistf(formula = attr(mydataBr$Verkauft, "formula"), data = mydataBr, pl = FALSE)
summary(mydataBrAll)
Verkauft 是我的因变量,mydataBr 是我的数据
在"formula"中必须输入什么样的术语?
如果这可行,我可以像在常规 log.reg 中使用它一样使用逐步向后算法(或伪 R² 等)吗?型号?:
'Backwards Selection'
backwards <- step(mydataBrAll, direction = "backward")
有些人可能认为这是一个简单的问题,但我无法通过网上的解释来解决。
非常感谢任何帮助!
该公式应该是 R 中大多数建模函数(如 lm()
、glm()
等)中使用的常规公式对象。
您可以通过在 R 命令行中键入 help(formula)
来获取有关如何编写公式的详细信息。
本质上,公式是 y ~ model
形式的表达式。引用 help(formula)
的详细信息部分:
An expression of the form y ~ model is interpreted as a specification that the response y is modelled by a linear predictor specified symbolically by model.
在您的示例中,假设您有 3 个预测变量,分别称为 x1
、x2
、x3
(可以是 numeric
或 factor
变量) ,你可以这样写:
mydataBrAll <- logistf(formula = Verkauft ~ x1 + x2 + x3, data = mydataBr, pl = FALSE)
summary(mydataBrAll)
请注意,公式可能更复杂,并且涉及预测变量的转换。同样,有关更多详细信息,请参阅 formula
.
的文档
如你所知,logistf()
的文档中显示的作为函数签名的一部分的 attr(data, "formula")
表达式 (a.k.a。API) 指的是属性称为 formula
的对象可能存在于包含您在函数的 data
参数中传递的数据的对象中。由于在您的示例中不是这种情况(显然您没有将该属性添加到数据对象),因此您必须在调用 logistf()
.
时显式定义公式
有关对象中属性的详细信息,请参阅 help(attr)
。
关于向后选择的第二个问题:在 logistf()
文档的详细信息部分,您会看到以下句子:
Furthermore, forward and backward functions perform convenient variable selection
即该包包含一个 forward()
和 backward()
函数,可用于执行预测变量的前向和后向选择。
step()
函数也可能有效,因为在其文档页面中没有任何相反的指示。
我正在尝试通过逻辑回归找到销售汽车的人的预测因素。我的样本量是 n=922,主要是基数和序数变量。 因为我的一些变量有多达 7 个类别(--> 6 个虚拟变量),所以我遇到了分离。 在文献中,他们推荐 Firth 的减少偏差的逻辑回归方法。
安装包后我使用了以下公式:
logistf(formula = attr(data, "formula"), data = sys.parent(), pl = TRUE, ...)
并输入(或试图输入)我的数据:
mydataBrAll <- logistf(formula = attr(mydataBr$Verkauft, "formula"), data = mydataBr, pl = FALSE)
summary(mydataBrAll)
Verkauft 是我的因变量,mydataBr 是我的数据
在"formula"中必须输入什么样的术语? 如果这可行,我可以像在常规 log.reg 中使用它一样使用逐步向后算法(或伪 R² 等)吗?型号?:
'Backwards Selection'
backwards <- step(mydataBrAll, direction = "backward")
有些人可能认为这是一个简单的问题,但我无法通过网上的解释来解决。
非常感谢任何帮助!
该公式应该是 R 中大多数建模函数(如 lm()
、glm()
等)中使用的常规公式对象。
您可以通过在 R 命令行中键入 help(formula)
来获取有关如何编写公式的详细信息。
本质上,公式是 y ~ model
形式的表达式。引用 help(formula)
的详细信息部分:
An expression of the form y ~ model is interpreted as a specification that the response y is modelled by a linear predictor specified symbolically by model.
在您的示例中,假设您有 3 个预测变量,分别称为 x1
、x2
、x3
(可以是 numeric
或 factor
变量) ,你可以这样写:
mydataBrAll <- logistf(formula = Verkauft ~ x1 + x2 + x3, data = mydataBr, pl = FALSE)
summary(mydataBrAll)
请注意,公式可能更复杂,并且涉及预测变量的转换。同样,有关更多详细信息,请参阅 formula
.
如你所知,logistf()
的文档中显示的作为函数签名的一部分的 attr(data, "formula")
表达式 (a.k.a。API) 指的是属性称为 formula
的对象可能存在于包含您在函数的 data
参数中传递的数据的对象中。由于在您的示例中不是这种情况(显然您没有将该属性添加到数据对象),因此您必须在调用 logistf()
.
时显式定义公式
有关对象中属性的详细信息,请参阅 help(attr)
。
关于向后选择的第二个问题:在 logistf()
文档的详细信息部分,您会看到以下句子:
Furthermore, forward and backward functions perform convenient variable selection
即该包包含一个 forward()
和 backward()
函数,可用于执行预测变量的前向和后向选择。
step()
函数也可能有效,因为在其文档页面中没有任何相反的指示。