当响应变量和解释变量都进行对数转换时,如何使用predict()获取y_hat?
我有一个对数-对数线性函数:
lom1 = lm(log(y)~log(x1)+log(x2),data=mod_dt)
我想使用相同的数据集获得 y_hat,
yhat = exp(predict(lom1))
结果似乎相差很多(与我在 R 中手动计算的 y-hat 进行比较)。
有什么理由吗?
第二个相关问题是,我首先在原始数据集mod_dt中添加了三列,用于y、x1和x2的对数转换。比如说,它们被命名为 logy、logx1 和 logx2,然后我运行 lm:
lom2 = lm(logy ~ logx1 + logx2, data=mod_dt)
这给出了一组不同的系数。
提前非常感谢,这可以给出正确的 y-hat 吗
exp(predict(lom2))
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
当估计诸如您的公式之类的模型时,它会在未转换的范围内转换为 Y ~ X1 * X2。如果您想对您的结果进行更具体的审查,您将需要提供数据进行检查。
When a model such as your formula is estimated, it translates to Y ~ X1 * X2 on the untransformed scale. You will need to provide data for examination if you want to get more specific review of your results.
这并不是一个确切的答案。只是想分享一些我的看法。线性回归模型假设 E(y) = x * beta。如果 y 经过 log 变换,则变为 E(log(y)) = x * beta。然而,当我们尝试预测 y 时,通常我们没有 exp(E(log(y))) = E(y)
It's not an answer exactly. Just want to share some of my opinions. A linear regression model assumes E(y) = x * beta. If y is transformed by log, it becomes E(log(y)) = x * beta. However when we try to predict y, usually we don't have exp(E(log(y))) = E(y)