[R] Understanding and predict round-off errors sign on simple functions

Bert Gunter bgunter.4567 at gmail.com
Wed Jun 29 17:13:40 CEST 2016


I am certainly no expert, but I would assume that:

1. Roundoff errors depend on the exact numerical libraries and
versions that are used, and so general language comparisons are
impossible without that information;

2. Roundoff errors depend on the exact calculations being done and
machine precision and are very complicated to determine

So I would say the answer to your questions is no.

But you should probably address such a question to a numerical analyst
for an authoritative answer. Maybe try stats.stackexchange.com  .

-- Bert

Bert Gunter

"The trouble with having an open mind is that people keep coming along
and sticking things into it."
-- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )


On Wed, Jun 29, 2016 at 2:55 AM, Sirhc via R-help <r-help at r-project.org> wrote:
> Hi,
>
>
>
> May be it is a basic thing but I would like to know if we can anticipate
> round-off errors sign.
>
>
>
> Here is an example :
>
>
>
> # numerical matrix
>
> m <- matrix(data=cbind(rnorm(10, 0), rnorm(10, 2), rnorm(10, 5)), nrow=10,
> ncol=3)
>
>
>
>> m
>
>             [,1]      [,2]     [,3]
>
> [1,]  0.4816247 1.1973502 3.855641
>
> [2,] -1.2174937 0.7356427 4.393279
>
> [3,]  0.8504074 2.5286509 2.689196
>
> [4,]  1.8048642 1.8580804 6.665237
>
> [5,] -0.6749397 1.0944277 4.838608
>
> [6,]  0.8252034 1.5595268 3.681695
>
> [7,]  1.3002208 0.9582693 4.561577
>
> [8,]  1.6950923 3.5677921 6.005078
>
> [9,]  0.6509285 0.9025964 5.082288
>
> [10,] -0.5676040 1.3281102 4.446451
>
>
>
> #weird moving average of period 1 !
>
> mma <- apply(m, 2, SMA, n=1)
>
>
>
>> mma
>
>             [,1]      [,2]     [,3]
>
> [1,]         NA        NA       NA
>
> [2,] -1.2174937 0.7356427 4.393279
>
> [3,]  0.8504074 2.5286509 2.689196
>
> [4,]  1.8048642 1.8580804 6.665237
>
> [5,] -0.6749397 1.0944277 4.838608
>
> [6,]  0.8252034 1.5595268 3.681695
>
> [7,]  1.3002208 0.9582693 4.561577
>
> [8,]  1.6950923 3.5677921 6.005078
>
> [9,]  0.6509285 0.9025964 5.082288
>
> [10,] -0.5676040 1.3281102 4.446451
>
>
>
>
>
> #difference should be 0 but here is the result
>
>> m - mma
>
>                [,1]         [,2]          [,3]
>
> [1,]            NA           NA            NA
>
> [2,]  0.000000e+00 0.000000e+00 -8.881784e-16
>
> [3,]  0.000000e+00 0.000000e+00 -8.881784e-16
>
> [4,]  0.000000e+00 4.440892e-16 -8.881784e-16
>
> [5,] -1.110223e-16 4.440892e-16 -8.881784e-16
>
> [6,] -1.110223e-16 2.220446e-16 -4.440892e-16
>
> [7,] -2.220446e-16 2.220446e-16  0.000000e+00
>
> [8,] -2.220446e-16 0.000000e+00  0.000000e+00
>
> [9,] -3.330669e-16 2.220446e-16 -8.881784e-16
>
> [10,] -3.330669e-16 4.440892e-16 -8.881784e-16
>
>
>
> SMA function use runMean
>
> # TTR / R / MovingAverages.R
>
> "SMA" <- function(x, n=10, ...) { # Simple Moving Average
>
>    ma <- runMean( x, n )
>
>    if(!is.null(dim(ma))) {
>
>      colnames(ma) <- "SMA"
>
>    }
>
>   return(ma)
>
> }
>
>
>
>
>
> Can anyone explain me that round error type?
>
> Is it possible to reproduce this same error generation in another language
> like C++ or C# ?
>
>
>
> Thanks in advance for your answers
>
>
>
> Regards
>
>
>
> Chris
>
>
>
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at 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.



More information about the R-help mailing list