r - Почему rlm (пакет MASS) возвращает модель без перехвата? - PullRequest
0 голосов
/ 06 марта 2019

Тестовый код:

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’  

Редактировать: Благодаря Салу Мангиафико я обнаружил, что rlm() может рассматривать перехват только в том случае, если мы используем ~ синтаксис

Call: rlm(formula = runif(100, 10000, 10002) ~ runif(100, 100, 200))
Residuals:
     Min       1Q   Median       3Q      Max 
-0.94878 -0.49492 -0.01952  0.51689  1.02064 

Coefficients:
                     Value      Std. Error t value   
(Intercept)          10001.0276     0.3213 31128.1471
runif(100, 100, 200)    -0.0004     0.0021    -0.1837

Residual standard error: 0.7588 on 98 degrees of freedom

1 Ответ

1 голос
/ 07 марта 2019

[Примечание: есть вероятность, что здесь есть вопрос о статистике, но я думаю, что это сводится к проблеме программирования.~ 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 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...