r - R中的似然比检验
问题描述
我有 2 个在 R 中运行的线性模型
model_1_regression <- lm(model_1$ff4f_actual_excess_return_month1 ~ model_1$Rm.Rf +
model_1$SMB +
model_1$HML +
model_1$MOM,
na.action=na.exclude)
和
model_1_mom_1_regression <- lm(model_1_mom_1$ff4f_actual_excess_return_month1 ~ model_1_mom_1$Rm.Rf +
model_1_mom_1$SMB +
model_1_mom_1$HML +
model_1_mom_1$MOM +
model_1_mom_1$mom_to_add,
na.action=na.omit)
我想进行似然比检验,看看添加的额外因素是否显着。我该怎么做,如何解释显示的结果?
非常感谢
解决方案
要比较嵌套模型,您可以使用不同的标准,包括 LRT 或 ANOVA 的 p 值、Adjusted-R 2、AIC、BIC 等。LRT 和 ANOVA 在检测差异方面会产生相同的结果。简而言之,从这两个检验中获得低于所选显着性水平的 p 值表明有足够的证据支持拒绝声称两个模型等效的零假设。我建议您搜索其他信息和理论。
您的代码包含不同的数据(model_1和model_1_mom_1)和NA
处理(na.exclude和na.omit),这让我怀疑您的模型是否实际上是嵌套的。请确保您通过NA
为两个函数提供相同的数据集和处理选项来使用相同的数据来拟合模型。然后你可以使用anova
:
# refactored your code and supplied the same data & na.action
reduced_model <- lm(formula = ff4f_actual_excess_return_month1 ~
Rm.Rf +
SMB +
HML +
MOM,
data = df,
na.action=na.omit)
full_model <- lm(formula = ff4f_actual_excess_return_month1 ~
Rm.Rf +
SMB +
HML +
MOM +
mom_to_add,
data = df,
na.action=na.omit)
# based on f-test
anova(reduced_model, full_model)
# based on chi-square test
anova(reduced_model, full_model, test = "LRT")
请注意,R 中还有其他用于运行 LRT 的函数,lrtest
但它以稍微不同的方式计算测试统计量。您可以根据您的上下文采用其中一种。请参阅此处了解更多信息:
https ://stats.stackexchange.com/questions/155474/r-why-does-lrtest-not-match-anovatest-lrt
推荐阅读
- javascript - 在NodeJS中的回调函数之后返回一个值
- javascript - 我对全局工作者和异步的 PDF.JS 有错误
- c++ - unordered_map 什么时候返回 -1?
- python - Pygame表面突然反转变量
- express - 包含 where 条件,但在包含之前保留所有结果
- go - 如何使用新的 AWS 令牌更新 GORM 中的数据库连接
- android - Kotlin Spinner 选择
- python - How to vectorize advanced indexing with list of lists in NumPy?
- python - python中的芹菜conf
- java - 如何从HashMap中的ArrayList中打印出一个键和一个平均数