I have solved the problem. It was caused by Intel MKL. Uninstalling Intel MKL and using OpenBLAS instead fixed the problem completely.

Notice that, using Intel MKL, I was able to reproduce the problem by computing the regression coefficients directly from the usual formula, which were returned completely wrong.

My guess is that some optimization of Intel MKL which is activated in "large" matrices give completely wrong result (I don't know which operation exactly)

Thanks,

Best,

Raffaele Mancuso

On 26/05/19 16:06, Fox, John wrote:
Dear Raffaele,

Using your code, with one modification -- setting the seed for R's random 
number generator to make the result reproducible -- I get:

set.seed(12345)
. . .

lmMod <- lm(yvar~xvar)
print(summary(lmMod))
Call:
lm(formula = yvar ~ xvar)

Residuals:
     Min      1Q  Median      3Q     Max
-4.0293 -0.6732  0.0021  0.6749  4.2883

Coefficients:
              Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.0057713  0.0057529   174.8   <2e-16 ***
xvar        2.0000889  0.0009998  2000.4   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9964 on 29998 degrees of freedom
Multiple R-squared:  0.9926,    Adjusted R-squared:  0.9926
F-statistic: 4.002e+06 on 1 and 29998 DF,  p-value: < 2.2e-16

which is more or less what one would expect.

My guess: you've saved your R workspace from a previous session, and it is then 
loaded at the start of your R session; something in the saved workspace is 
affecting the result, although frankly I can't think what that might be.

I hope this helps,
  John

-----------------------------------------------------------------
John Fox
Professor Emeritus
McMaster University
Hamilton, Ontario, Canada
Web: https://socialsciences.mcmaster.ca/jfox/



-----Original Message-----
From: R-help [mailto:r-help-boun...@r-project.org] On Behalf Of Raffa
Sent: Saturday, May 25, 2019 8:38 AM
To: r-help@r-project.org
Subject: [R] Increasing number of observations worsen the regression model

I have the following code:

```

rm(list=ls())
N = 30000
xvar <- runif(N, -10, 10)
e <- rnorm(N, mean=0, sd=1)
yvar <- 1 + 2*xvar + e
plot(xvar,yvar)
lmMod <- lm(yvar~xvar)
print(summary(lmMod))
domain <- seq(min(xvar), max(xvar))    # define a vector of x values to feed
into model lines(domain, predict(lmMod, newdata =
data.frame(xvar=domain)))    # add regression line, using `predict` to generate
y-values

```

I expected the coefficients to be something similar to [1,2]. Instead R keeps
throwing at me random numbers that are not statistically significant and don't
fit the model, and I have 20k observations. For example

```

Call:
lm(formula = yvar ~ xvar)

Residuals:
      Min      1Q  Median      3Q     Max
-21.384  -8.908   1.016  10.972  23.663

Coefficients:
               Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.0007145  0.0670316   0.011    0.991
xvar        0.0168271  0.0116420   1.445    0.148

Residual standard error: 11.61 on 29998 degrees of freedom Multiple R-
squared:  7.038e-05,    Adjusted R-squared: 3.705e-05
F-statistic: 2.112 on 1 and 29998 DF,  p-value: 0.1462

```


The strange thing is that the code works perfectly for N=200 or N=2000.
It's only for larger N that this thing happen U(for example, N=20000). I have
tried to ask for example in CrossValidated
<https://stats.stackexchange.com/questions/410050/increasing-number-of-
observations-worsen-the-regression-model>
but the code works for them. Any help?

I am runnign R 3.6.0 on Kubuntu 19.04

Best regards

Raffaele


        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-
guide.html
and provide commented, minimal, self-contained, reproducible code.

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to