[R] computing standard deviation in R and in Python
Rui Barradas
ru|pb@rr@d@@ @end|ng |rom @@po@pt
Fri May 24 13:35:52 CEST 2019
Hello,
This has to do with what kind of variance estimator is being used.
R uses the unbiased estimator and Python the MLE one.
var1 <- function(x){
n <- length(x)
(sum(x^2) - sum(x)^2/n)/(n - 1)
}
var2 <- function(x){
n <- length(x)
(sum(x^2) - sum(x)^2/n)/n
}
sd1 <- function(x) sqrt(var1(x))
sd2 <- function(x) sqrt(var2(x))
z <- matrix(c(1,2,3,4,5,6,7,8,9), nrow=3, ncol=3, byrow=T)
apply(z, 1, sd1) # R
apply(z, 1, sd2) # Python
apply(z, 2, sd1) # R
apply(z, 2, sd2) # Python
Hope this helps,
Rui Barradas
Às 11:27 de 24/05/19, Bogdan Tanasa escreveu:
> Dear all, please would you advise :
>
> do python and R have different ways to compute the standard deviation (sd) ?
>
> for example, in python, starting with :
>
> a = np.array([[1,2,3], [4,5,6], [7,8,9]])
> print(a.std(axis=1)) ### per row : [0.81649658 0.81649658 0.81649658]
> print(a.std(axis=0)) ### per column : [2.44948974 2.44948974 2.44948974]
>
> # and in R :
>
>
>
> z <- matrix(c(1,2,3,4,5,6,7,8,9), nrow=3, ncol=3, byrow=T)
> # z# [,1] [,2] [,3]#[1,] 1 2 3#[2,] 4 5 6#[3,] 7 8 9
> # apply(z, 1, sd)
> sd(z[1,]) #1
> sd(z[2,]) #1
> sd(z[3,]) #1
> # apply(z, 2, sd)
> sd(z[,1]) #3
> sd(z[,2]) #3
> sd(z[,3]) #3
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help using 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