【发布时间】:2017-03-25 01:42:33
【问题描述】:
根据我在函数调用中输入变量的顺序,我从 lmPerm 得到不同的结果。
例如,将NCF.pf 放在TotalProperties 之前会产生以下结果:
pfit <- lmp(NetCashOps ~ NCF.pf + TotalProperties, data = sub.pm, subset = Presence == 1)
summary(pfit)
...
Coefficients:
Estimate Iter Pr(Prob)
NCF.pf 4.581e-01 51 1
TotalProperties 5.246e+04 5000 <2e-16 ***
但是,当我切换公式中系数的顺序并将TotalProperties 放在NCF.pf 之前时,NCF.pf 上的 p 值变得显着
pfit2 <- lmp(NetCashOps ~ TotalProperties + NCF.pf, data = sub.pm, subset = Presence == 1)
summary(pfit2)
...
Coefficients:
Estimate Iter Pr(Prob)
TotalProperties 5.246e+04 5000 <2e-16 ***
NCF.pf 4.581e-01 5000 <2e-16 ***
我错过了什么吗?为什么仅仅因为我在函数调用中切换了变量的顺序,p值就会不同?
更新 - 数据源和lm 输出(2016 年 11 月 11 日)
数据可以在 GitHub 上的this link找到。
当调用标准lm 函数两次(颠倒第二次调用的变量顺序)时,p 值是相同的(见下文)。因此,与使用 lmPerm 函数时不同,变量的顺序与 lm 无关。
fit1 <- lm(NetCashOps ~ NCF.pf + TotalProperties, data = sub.pm, subset = Presence == 1)
summary(fit1)
...
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 7.088e+05 2.258e+05 3.138 0.0019 **
NCF.pf 4.581e-01 1.112e-01 4.121 5.11e-05 ***
TotalProperties 5.246e+04 9.519e+03 5.511 8.76e-08 ***
fit2 <- lm(NetCashOps ~ TotalProperties + NCF.pf, data = sub.pm, subset = Presence == 1)
summary(fit2)
...
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 7.088e+05 2.258e+05 3.138 0.0019 **
TotalProperties 5.246e+04 9.519e+03 5.511 8.76e-08 ***
NCF.pf 4.581e-01 1.112e-01 4.121 5.11e-05 ***
谢谢!
【问题讨论】:
-
这是一个统计问题,而不是编程问题:投票关闭/迁移到 CrossValidated。当预测变量不是完全正交时,这是线性模型的基本属性。
-
你好哲元。根据您的要求,我提供了指向数据和 lm 输出的链接。感谢您的帮助。
标签: r regression permutation linear-regression lm