r-为什么rlm(质量包)返回没有截距的模型?
测试代码:r-为什么rlm(质量包)返回没有截距的模型?,r,regression,R,Regression,测试代码: rlm(x=runif(100, 100, 200), y=runif(100, 10000, 10002)) lm(runif(100, 10000, 10002)~runif(100, 100, 200)) lm的结果是合理的: Coefficients: (Intercept) runif(100, 100, 200) 1.000e+04 -1.024e-03 然而,rlm提供了一个没有截距的模型 Call
rlm(x=runif(100, 100, 200), y=runif(100, 10000, 10002))
lm(runif(100, 10000, 10002)~runif(100, 100, 200))
lm的结果是合理的:
Coefficients:
(Intercept) runif(100, 100, 200)
1.000e+04 -1.024e-03
然而,rlm提供了一个没有截距的模型
Call:
rlm(x = runif(100, 100, 200), y = runif(100, 10000, 10002))
Converged in 4 iterations
Coefficients:
runif(100, 100, 200)
62.01507
套餐信息:
packageVersion("MASS")
[1] ‘7.3.51.1’
编辑:由于Sal Mangiafico,我发现RLM只能考虑截取,如果我们使用~语法
[注意:这里有一个关于统计的潜在问题,但我认为这归结为编程问题。~ssm] 如果在函数调用中使用并行语法,在本例中,结果几乎没有差别
set.seed(sum(utf8ToInt("SalWasHere")))
library(MASS)
x=runif(100, 100, 200)
y=runif(100, 10000, 10002)
plot(x,y)
summary(rlm(y ~ x))
### Coefficients:
### Value Std. Error t value
### (Intercept) 10001.2272 0.3350 29851.0467
### x -0.0018 0.0022 -0.8106
summary(lm(y ~ x))
### Coefficients:
### Estimate Std. Error t value Pr(>|t|)
### (Intercept) 1.000e+04 2.914e-01 34319.556 <2e-16 ***
### x 4.925e-06 1.903e-03 0.003 0.998
set.seed(sum(utf8ToInt("SalWasHere")))
library(MASS)
x=runif(100, 100, 200)
y=runif(100, 10000, 10002)
plot(x,y)
summary(rlm(y ~ x))
### Coefficients:
### Value Std. Error t value
### (Intercept) 10001.2272 0.3350 29851.0467
### x -0.0018 0.0022 -0.8106
summary(lm(y ~ x))
### Coefficients:
### Estimate Std. Error t value Pr(>|t|)
### (Intercept) 1.000e+04 2.914e-01 34319.556 <2e-16 ***
### x 4.925e-06 1.903e-03 0.003 0.998