我正在运行一个包含 3 个自变量的线性回归,其中 2 个是连续变量,一个是代表假期的二进制变量。用七年级的语言来说,它看起来像
log(Unit_Sales) ~ 截距 + log(Unit_Price) + Log(Unit_Distribution) + Holiday(二元变量)
如果我运行一个简单的 lm 回归,我会得到一个紧密的模型拟合,但单位分布系数高于 1,并且由于各种原因我需要强制它小于 1,我很乐意对此进行扩展。
完整模型比上面列出的变量有更多的变量,这些变量降低了“单位分布”系数,但它仍然高于 1。我不想向模型添加更多变量,而是想强制分布系数小于 1。
我尝试使用“optim”函数来优化我的模型,并将分布约束小于 1。当我排除假日(二进制变量)时,我使用这种方法取得了成功,但根据我的研究,我了解到“optim”不适用于二进制变量。
我尝试了“Rglpk_solve_LP”并收到类似的错误。可能是因为我没有正确写出约束、rhs 或上下界矩阵。
你会如何处理这个问题?有没有更好的包或功能可供我使用?您能否分享使用 Rglpk_solve_LP 函数或任何其他解决方案处理混合变量的正确语法?
我找到了解决这个问题的方法
第 1 步:运行简单的 lm 回归来读取影响二元变量的系数。
单型号<- lm(log(Units) ~ log(Distribution) + log(Price)+ Dummy1 + log(Vibes) + log(Benefits) + Dummy2 + Dummy3 + Dummy4, data = Single_SBG)
步骤 2. 对调整后的单位运行 optim 函数,其中调整后的单位 = log(units)-Coef1Dummy1 - Coef2Dummy2 - Coeff3Dummy3 - Coef4Dummy4
如果人们对解决方案感兴趣,很乐意分享完整的代码。有点长,但让我找到了我需要的东西