为何log-level回归的visreg绘图无法得到log-log模型的预期拟合曲线?
模型拟合差异原因及解决方案
首先明确两类回归模型的本质形式与适配场景:
- log-level(半对数)模型
你的第一个模型形式为:
还原为原始变量的函数关系是:regClicksLogLevel <- lm(log(link.clicks) ~ MoneySpent, data = TwtrData)link.clicks = exp(截距项) * exp(系数 * MoneySpent),属于指数函数形式。
这个模型的核心假设是:MoneySpent每增加1美元,link.clicks的增长率固定不变(近似为系数乘以100%)。对应的边际效应是随着消费金额升高,点击量的绝对值增长会越来越快,和你观察到的「消费到一定水平后点击量趋于平缓」的边际递减规律完全相反,所以拟合出来的曲线自然不符合你的数据特征。 - log-log(双对数)模型
你的第二个模型形式为:
还原为原始变量的函数关系是:regClicksLogLog <- lm(log(link.clicks) ~ log(MoneySpent), data = TwtrData)link.clicks = exp(截距项) * (MoneySpent)^系数,属于幂函数形式。只要拟合出来的系数在0~1之间,就刚好对应「消费越高,点击量增长越平缓」的边际递减规律,和你的数据特征匹配,所以拟合曲线符合预期。
关于效应计算的疑惑说明:
你需要的「MoneySpent每增加1美元对应的link.clicks百分比变化」,不需要强行适配log-level模型的系数含义,完全可以从拟合效果更好的log-log模型中推导计算:
设当前消费金额为M,每多花1美元后的点击量百分比变化为:[(M+1)/M]^系数 - 1
这个计算结果会随着M的升高而降低,刚好匹配你观察到的实际趋势,比log-level模型给出的固定增长率更符合真实数据规律。
你之前的误区是把「模型系数的默认解释含义」和「你需要计算的业务指标」绑定了,实际上只要模型拟合符合数据规律,你可以从模型中推导出任意维度的业务指标,不需要为了系数的解释方便强行选用不符合数据特征的模型。
内容的提问来源于stack exchange,提问作者Henry Walsh
相关产品推荐
相关产品推荐

