Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tests warning: RNGkind: Marsaglia-Multicarry has poor statistical properties #24

Open
barracuda156 opened this issue Apr 17, 2024 · 0 comments

Comments

@barracuda156
Copy link

This is on PowerPC 32-bit (which may matter for rounding). Test pass, but I see this:

* checking tests ...
  Running ‘hdiffplot.R’
  Comparing ‘hdiffplot.Rout’ to ‘hdiffplot.Rout.save’ ...12,13d11
< 3: In RNGkind("Marsaglia-Multicarry", "Buggy Kinderman-Ramage", "Rounding") :
<   RNGkind: Marsaglia-Multicarry has poor statistical properties
  Running ‘hray.R’
  Comparing ‘hray.Rout’ to ‘hray.Rout.save’ ... OK
  Running ‘large.R’
  Comparing ‘large.Rout’ to ‘large.Rout.save’ ... OK
  Running ‘viewp-ex.R’
  Comparing ‘viewp-ex.Rout’ to ‘viewp-ex.Rout.save’ ... OK
 OK

Output for the test in question:

R version 3.6.0 (2019-04-26) -- "Planting of a Tree"
Copyright (C) 2019 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

> library(hexbin)
> 
> if(R.version$major != "1" || as.numeric(R.version$minor) >= 7)
+     RNGversion("1.6")
Warning messages:
1: In RNGkind("Marsaglia-Multicarry", "Buggy Kinderman-Ramage", "Rounding") :
  buggy version of Kinderman-Ramage generator used
2: In RNGkind("Marsaglia-Multicarry", "Buggy Kinderman-Ramage", "Rounding") :
  non-uniform 'Rounding' sampler used
> set.seed(213)
> x1 <- rnorm(10000)
> y1 <- rnorm(10000)
> 
> x2 <- rnorm(10000,mean = .3)
> y2 <- rnorm(10000,mean = .3)
> 
> rx <- range(x1,x2)
> ry <- range(y1,y2)
> 
> str(bin1 <- hexbin(x1,y1, xbnds = rx, ybnds = ry))
Formal class 'hexbin' [package "hexbin"] with 16 slots
  ..@ cell  : int [1:535] 16 20 48 70 74 75 76 80 99 101 ...
  ..@ count : int [1:535] 1 1 1 1 1 1 1 1 1 1 ...
  ..@ xcm   : num [1:535] 0.37 1.338 0.721 -1.846 -0.965 ...
  ..@ ycm   : num [1:535] -3.66 -3.71 -3.54 -3.2 -3.24 ...
  ..@ xbins : num 30
  ..@ shape : num 1
  ..@ xbnds : num [1:2] -3.8 4.3
  ..@ ybnds : num [1:2] -3.71 4.17
  ..@ dimen : num [1:2] 36 31
  ..@ n     : int 10000
  ..@ ncells: int 535
  ..@ call  : language hexbin(x = x1, y = y1, xbnds = rx, ybnds = ry)
  ..@ xlab  : chr "x1"
  ..@ ylab  : chr "y1"
  ..@ cID   : NULL
  ..@ cAtt  : int(0) 
> str(bin2 <- hexbin(x2,y2, xbnds = rx, ybnds = ry))
Formal class 'hexbin' [package "hexbin"] with 16 slots
  ..@ cell  : int [1:545] 41 51 75 76 104 107 110 114 136 138 ...
  ..@ count : int [1:545] 1 1 1 1 1 2 1 1 2 1 ...
  ..@ xcm   : num [1:545] -1.141 1.445 -0.493 -0.324 -0.995 ...
  ..@ ycm   : num [1:545] -3.42 -3.45 -3.24 -3.35 -2.9 ...
  ..@ xbins : num 30
  ..@ shape : num 1
  ..@ xbnds : num [1:2] -3.8 4.3
  ..@ ybnds : num [1:2] -3.71 4.17
  ..@ dimen : num [1:2] 36 31
  ..@ n     : int 10000
  ..@ ncells: int 545
  ..@ call  : language hexbin(x = x2, y = y2, xbnds = rx, ybnds = ry)
  ..@ xlab  : chr "x2"
  ..@ ylab  : chr "y2"
  ..@ cID   : NULL
  ..@ cAtt  : int(0) 
> 
> str(erode(bin1))
Formal class 'erodebin' [package "hexbin"] with 19 slots
  ..@ eroded: logi [1:535] FALSE FALSE FALSE FALSE FALSE FALSE ...
  ..@ cdfcut: num 0.5
  ..@ erode : int [1:71] 12 35 34 57 52 4 30 101 138 150 ...
  ..@ cell  : int [1:535] 16 20 48 70 74 75 76 80 99 101 ...
  ..@ count : int [1:535] 1 1 1 1 1 1 1 1 1 1 ...
  ..@ xcm   : num [1:535] 0.37 1.338 0.721 -1.846 -0.965 ...
  ..@ ycm   : num [1:535] -3.66 -3.71 -3.54 -3.2 -3.24 ...
  ..@ xbins : num 30
  ..@ shape : num 1
  ..@ xbnds : num [1:2] -3.8 4.3
  ..@ ybnds : num [1:2] -3.71 4.17
  ..@ dimen : num [1:2] 36 31
  ..@ n     : int 10000
  ..@ ncells: int 535
  ..@ call  : language hexbin(x = x1, y = y1, xbnds = rx, ybnds = ry)
  ..@ xlab  : chr "x1"
  ..@ ylab  : chr "y1"
  ..@ cID   : NULL
  ..@ cAtt  : int(0) 
> 
> str(smbin1 <- smooth.hexbin(bin1))
Formal class 'smoothbin' [package "hexbin"] with 17 slots
  ..@ wts   : num [1:3] 48 4 1
  ..@ cell  : int [1:906] 17 18 19 21 22 23 51 52 53 54 ...
  ..@ count : int [1:906] 1 1 1 1 1 1 1 4 5 2 ...
  ..@ xcm   : num [1:535] 0.37 1.338 0.721 -1.846 -0.965 ...
  ..@ ycm   : num [1:535] -3.66 -3.71 -3.54 -3.2 -3.24 ...
  ..@ xbins : num 34
  ..@ shape : num 1
  ..@ xbnds : num [1:2] -4.34 4.84
  ..@ ybnds : num [1:2] -4.23 4.7
  ..@ dimen : num [1:2] 40 35
  ..@ n     : int 10000
  ..@ ncells: int 535
  ..@ call  : language hexbin(x = x1, y = y1, xbnds = rx, ybnds = ry)
  ..@ xlab  : chr "x1"
  ..@ ylab  : chr "y1"
  ..@ cID   : NULL
  ..@ cAtt  : int(0) 
> (smbin2 <- smooth.hexbin(bin2))
'hexbin' object from call: hexbin(x = x2, y = y2, xbnds = rx, ybnds = ry) 
n = 10000  points in	nc = 545  hexagon cells in grid dimensions  40 by 35 
> 
> str(erodebin1 <- erode.hexbin(smbin1))
Formal class 'erodebin' [package "hexbin"] with 19 slots
  ..@ eroded: logi [1:906] FALSE FALSE FALSE FALSE FALSE FALSE ...
  ..@ cdfcut: num 0.5
  ..@ erode : int [1:73] 11 35 95 100 117 88 6 39 167 232 ...
  ..@ cell  : int [1:906] 17 18 19 21 22 23 51 52 53 54 ...
  ..@ count : int [1:906] 1 1 1 1 1 1 1 4 5 2 ...
  ..@ xcm   : num [1:535] 0.37 1.338 0.721 -1.846 -0.965 ...
  ..@ ycm   : num [1:535] -3.66 -3.71 -3.54 -3.2 -3.24 ...
  ..@ xbins : num 34
  ..@ shape : num 1
  ..@ xbnds : num [1:2] -4.34 4.84
  ..@ ybnds : num [1:2] -4.23 4.7
  ..@ dimen : num [1:2] 40 35
  ..@ n     : int 10000
  ..@ ncells: int 535
  ..@ call  : language hexbin(x = x1, y = y1, xbnds = rx, ybnds = ry)
  ..@ xlab  : chr "x1"
  ..@ ylab  : chr "y1"
  ..@ cID   : NULL
  ..@ cAtt  : int(0) 
> (erodebin2 <- erode.hexbin(smbin2))
'hexbin' object from call: hexbin(x = x2, y = y2, xbnds = rx, ybnds = ry) 
n = 10000  points in	nc = 545  hexagon cells in grid dimensions  40 by 35 
> 
> if(FALSE)## does not work -- what funny stuff is hdiffplot() doing???
+     par(mfrow = c(2,1))
> 
> if(exists("hdiffplot", mode="function")) { ## not yet in new hexbin
+ hdiffplot(bin1,bin2, main = "Original N(0,*) Random bins")
+ 
+ hdiffplot(smbin1,smbin2, main = "smooth.hexbin() smoothed bins")
+ 
+ plot.new()
+ hdiffplot(erodebin1,erodebin2, main = "erode.hexbin()d smoothed bins")
+ }# not yet
> 
> proc.time()
   user  system elapsed 
  0.340   0.015   0.347 
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant