R version 2.6.0 (2007-10-03) Copyright (C) 2007 The R Foundation for Statistical Computing ISBN 3-900051-07-0 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > x <- c(0.00503304609379793 + ,0.0369990364302084 + ,-0.0242253351525622 + ,0.0774302913819214 + ,-0.00764564307593042 + ,-0.0615028099029395 + ,-0.00325428840227112 + ,-0.0123720899756001 + ,-0.0121167399878335 + ,-0.0555780237857432 + ,0.000566454761534063 + ,-0.0128295409407334 + ,0.0333721592949187 + ,0.0580101905630014 + ,0.068144322930172 + ,-0.00190855402359612 + ,0.0630611837886725 + ,-0.099173840670388 + ,-0.0547062428745422 + ,0.00146161103846953 + ,0.00332756954060009 + ,-0.0129861283501000 + ,0.00828503800214442 + ,0.00490815785100907 + ,-0.0239934193883204 + ,0.00859110731553958 + ,-0.0401668590238771 + ,-0.0151402191409042 + ,-0.0111881596304491 + ,-0.034313519274618 + ,-0.0114415359525752 + ,-0.0408561468763118 + ,-0.00516004612766263 + ,0.0238717452666721 + ,0.0227434563437132 + ,-0.0169648548379087 + ,-0.0284217359364245 + ,-0.04372801472545 + ,-0.0115017844438929 + ,-0.0167654149249827 + ,0.000131664027486877 + ,-0.000197945656498888 + ,-0.0727844280851953 + ,0.0613314010816017 + ,-0.0219983778735946 + ,0.0143970353497691 + ,0.00424764682678269 + ,0.00939639794455438 + ,-0.00770575510573135 + ,-0.0208875226171585 + ,0.0133008235715266 + ,-0.00759397480233925 + ,0.0275323432358752 + ,-0.0519422596420513 + ,-0.0275692601985194 + ,-0.0217925628961622 + ,0.035190209057431 + ,-0.00156089575412199 + ,-0.0112336238504849 + ,0.0136233293094081 + ,0.000331213276318465 + ,-0.0204624539762008 + ,-0.0127689635938335 + ,-0.019167050670025 + ,0.0255498113425121 + ,-0.0214409560932260 + ,0.0369804725779241 + ,-0.0176513890898153 + ,-0.0253928193263784 + ,-0.0237668717208255 + ,0.0413405410035761 + ,-0.00547298468324708 + ,0.0122082838606632 + ,-0.0115049363205761 + ,0.0415860303545941 + ,-0.0118019105819762 + ,0.0104018998342141 + ,0.0195251565982408 + ,0.0713332837677605 + ,0.00176536914999215 + ,0.054369511060961 + ,-0.0274598360070444 + ,-0.0120782054880664 + ,-0.0124868418131703 + ,0.0139227878367221 + ,0.0165768970921327 + ,-0.0537109866158012 + ,0.0250315498933045 + ,0.00888544930718549 + ,-0.0448416547272101 + ,-0.0186545351743934 + ,0.0154273952082749 + ,0.044965398993444 + ,0.0252596703861769 + ,0.0200283930802225 + ,0.0142181875359606 + ,0.0510818777227975 + ,0.00324108655092736 + ,0.0696829862742891 + ,-0.0194434812935693 + ,-0.0208602478491304 + ,-0.0349563408194555 + ,-0.0645277276935783 + ,-0.0727873041575275 + ,0.00773451265950609 + ,-0.0223149917053602 + ,0.050946467850733 + ,0.0233278838704400 + ,-0.0141471722941908 + ,0.0401139422966903 + ,0.084876777442429 + ,-0.0626624161464466 + ,0.0252528267421308 + ,0.00643754378152739 + ,-0.00977534536026603 + ,-0.0455191277539297 + ,-0.0214176684336396 + ,0.0177791357832877 + ,-7.43775976124184e-05 + ,0.0458210429699735 + ,0.0439677925676429 + ,0.00144100703965755 + ,-0.0215577949166317 + ,0.00830477214712921 + ,0.0133426314557363 + ,-0.0296399750462832 + ,0.0357312385014144 + ,-0.0460763442095855 + ,0.0149983540855594 + ,0.0479043557764234 + ,0.0605261105261965 + ,0.00453841177683056 + ,0.000778060657639301 + ,0.0240132737937353 + ,-0.015493232135241 + ,-0.0255503726249735 + ,0.0271469368419943 + ,0.0480546001633302 + ,-0.0051538252567056 + ,-0.000569555116127773 + ,0.084623977811395) > ylimmax = '' > ylimmin = '' > main = 'Robustness of Central Tendency' > #'GNU S' R Code compiled by R2WASP v. 1.0.44 () > #Author: Prof. Dr. P. Wessa > #To cite this work: Wessa, P., (2007), Central Tendency (v1.0.2) in Free Statistics Software (v$_version), Office for Research Development and Education, URL http://www.wessa.net/rwasp_centraltendency.wasp/ > #Source of accompanying publication: Office for Research, Development, and Education > #Technical description: Write here your technical program description (don't use hard returns!) > geomean <- function(x) { + return(exp(mean(log(x)))) + } > harmean <- function(x) { + return(1/mean(1/x)) + } > quamean <- function(x) { + return(sqrt(mean(x*x))) + } > winmean <- function(x) { + x <-sort(x[!is.na(x)]) + n<-length(x) + denom <- 3 + nodenom <- n/denom + if (nodenom>40) denom <- n/40 + sqrtn = sqrt(n) + roundnodenom = floor(nodenom) + win <- array(NA,dim=c(roundnodenom,2)) + for (j in 1:roundnodenom) { + win[j,1] <- (j*x[j+1]+sum(x[(j+1):(n-j)])+j*x[n-j])/n + win[j,2] <- sd(c(rep(x[j+1],j),x[(j+1):(n-j)],rep(x[n-j],j)))/sqrtn + } + return(win) + } > trimean <- function(x) { + x <-sort(x[!is.na(x)]) + n<-length(x) + denom <- 3 + nodenom <- n/denom + if (nodenom>40) denom <- n/40 + sqrtn = sqrt(n) + roundnodenom = floor(nodenom) + tri <- array(NA,dim=c(roundnodenom,2)) + for (j in 1:roundnodenom) { + tri[j,1] <- mean(x,trim=j/n) + tri[j,2] <- sd(x[(j+1):(n-j)]) / sqrt(n-j*2) + } + return(tri) + } > midrange <- function(x) { + return((max(x)+min(x))/2) + } > q1 <- function(data,n,p,i,f) { + np <- n*p; + i <<- floor(np) + f <<- np - i + qvalue <- (1-f)*data[i] + f*data[i+1] + } > q2 <- function(data,n,p,i,f) { + np <- (n+1)*p + i <<- floor(np) + f <<- np - i + qvalue <- (1-f)*data[i] + f*data[i+1] + } > q3 <- function(data,n,p,i,f) { + np <- n*p + i <<- floor(np) + f <<- np - i + if (f==0) { + qvalue <- data[i] + } else { + qvalue <- data[i+1] + } + } > q4 <- function(data,n,p,i,f) { + np <- n*p + i <<- floor(np) + f <<- np - i + if (f==0) { + qvalue <- (data[i]+data[i+1])/2 + } else { + qvalue <- data[i+1] + } + } > q5 <- function(data,n,p,i,f) { + np <- (n-1)*p + i <<- floor(np) + f <<- np - i + if (f==0) { + qvalue <- data[i+1] + } else { + qvalue <- data[i+1] + f*(data[i+2]-data[i+1]) + } + } > q6 <- function(data,n,p,i,f) { + np <- n*p+0.5 + i <<- floor(np) + f <<- np - i + qvalue <- data[i] + } > q7 <- function(data,n,p,i,f) { + np <- (n+1)*p + i <<- floor(np) + f <<- np - i + if (f==0) { + qvalue <- data[i] + } else { + qvalue <- f*data[i] + (1-f)*data[i+1] + } + } > q8 <- function(data,n,p,i,f) { + np <- (n+1)*p + i <<- floor(np) + f <<- np - i + if (f==0) { + qvalue <- data[i] + } else { + if (f == 0.5) { + qvalue <- (data[i]+data[i+1])/2 + } else { + if (f < 0.5) { + qvalue <- data[i] + } else { + qvalue <- data[i+1] + } + } + } + } > midmean <- function(x,def) { + x <-sort(x[!is.na(x)]) + n<-length(x) + if (def==1) { + qvalue1 <- q1(x,n,0.25,i,f) + qvalue3 <- q1(x,n,0.75,i,f) + } + if (def==2) { + qvalue1 <- q2(x,n,0.25,i,f) + qvalue3 <- q2(x,n,0.75,i,f) + } + if (def==3) { + qvalue1 <- q3(x,n,0.25,i,f) + qvalue3 <- q3(x,n,0.75,i,f) + } + if (def==4) { + qvalue1 <- q4(x,n,0.25,i,f) + qvalue3 <- q4(x,n,0.75,i,f) + } + if (def==5) { + qvalue1 <- q5(x,n,0.25,i,f) + qvalue3 <- q5(x,n,0.75,i,f) + } + if (def==6) { + qvalue1 <- q6(x,n,0.25,i,f) + qvalue3 <- q6(x,n,0.75,i,f) + } + if (def==7) { + qvalue1 <- q7(x,n,0.25,i,f) + qvalue3 <- q7(x,n,0.75,i,f) + } + if (def==8) { + qvalue1 <- q8(x,n,0.25,i,f) + qvalue3 <- q8(x,n,0.75,i,f) + } + midm <- 0 + myn <- 0 + roundno4 <- round(n/4) + round3no4 <- round(3*n/4) + for (i in 1:n) { + if ((x[i]>=qvalue1) & (x[i]<=qvalue3)){ + midm = midm + x[i] + myn = myn + 1 + } + } + midm = midm / myn + return(midm) + } > (arm <- mean(x)) [1] 0.001148467 > sqrtn <- sqrt(length(x)) > (armse <- sd(x) / sqrtn) [1] 0.002872483 > (armose <- arm / armse) [1] 0.3998168 > (geo <- geomean(x)) [1] NaN Warning message: In log(x) : NaNs produced > (har <- harmean(x)) [1] -0.02473232 > (qua <- quamean(x)) [1] 0.03400708 > (win <- winmean(x)) [,1] [,2] [1,] 0.0013338129 0.0028312264 [2,] 0.0012318156 0.0028106152 [3,] 0.0012777665 0.0027547392 [4,] 0.0012838662 0.0027373792 [5,] 0.0012704244 0.0027209015 [6,] 0.0013062392 0.0026436877 [7,] 0.0012636434 0.0026228746 [8,] 0.0012744216 0.0026068711 [9,] 0.0012267284 0.0025642657 [10,] 0.0013845465 0.0024645447 [11,] 0.0011715353 0.0024199670 [12,] 0.0012176683 0.0024103611 [13,] 0.0010537183 0.0023577529 [14,] 0.0013239504 0.0023177369 [15,] 0.0011756499 0.0022767830 [16,] 0.0016698200 0.0021893982 [17,] 0.0016270445 0.0021632658 [18,] 0.0019196124 0.0020527923 [19,] 0.0020506922 0.0020304096 [20,] 0.0019976251 0.0019936173 [21,] 0.0015500001 0.0019297449 [22,] 0.0018450341 0.0018980043 [23,] 0.0016669585 0.0018686094 [24,] 0.0017735891 0.0018363005 [25,] 0.0014923597 0.0017906796 [26,] 0.0004572889 0.0016547610 [27,] 0.0006615073 0.0016174875 [28,] 0.0004072213 0.0015744604 [29,] 0.0003898776 0.0015633701 [30,] 0.0004383722 0.0015581550 [31,] 0.0004154106 0.0015500399 [32,] 0.0001895976 0.0015234905 [33,] 0.0002805506 0.0015072806 [34,] 0.0001559836 0.0014920148 [35,] 0.0001096561 0.0014660528 [36,] -0.0003233883 0.0013648106 [37,] -0.0003829047 0.0013435377 [38,] -0.0007153388 0.0012805413 [39,] -0.0007704069 0.0012188695 [40,] -0.0009017453 0.0011667779 [41,] -0.0009685087 0.0011486485 [42,] -0.0007686769 0.0010940511 [43,] -0.0007155627 0.0010783350 [44,] -0.0004978572 0.0010398736 [45,] -0.0002228831 0.0009960587 [46,] -0.0002633731 0.0009823104 [47,] -0.0002571166 0.0009790877 > (tri <- trimean(x)) [,1] [,2] [1,] 0.0012678485 0.002756978 [2,] 0.0011999582 0.002675444 [3,] 0.0011833215 0.002597817 [4,] 0.0011499462 0.002535283 [5,] 0.0011139105 0.002472100 [6,] 0.0010796959 0.002406953 [7,] 0.0010377764 0.002353161 [8,] 0.0010013796 0.002298191 [9,] 0.0009622547 0.002240522 [10,] 0.0009280115 0.002184275 [11,] 0.0008739179 0.002138389 [12,] 0.0008413118 0.002094452 [13,] 0.0008028579 0.002047101 [14,] 0.0007787795 0.002001960 [15,] 0.0007293141 0.001957131 [16,] 0.0006908228 0.001912608 [17,] 0.0006101928 0.001873987 [18,] 0.0005298700 0.001834022 [19,] 0.0004241777 0.001802497 [20,] 0.0003046683 0.001769552 [21,] 0.0001841092 0.001736719 [22,] 0.0000895630 0.001707281 [23,] -0.0000288683 0.001677298 [24,] -0.0001406549 0.001646669 [25,] -0.0002642394 0.001615327 [26,] -0.0003755564 0.001584947 [27,] -0.0004274712 0.001565985 [28,] -0.0004943757 0.001547945 [29,] -0.0005490768 0.001531692 [30,] -0.0006054380 0.001513814 [31,] -0.0006675381 0.001493350 [32,] -0.0007315079 0.001470230 [33,] -0.0007856228 0.001446281 [34,] -0.0008480265 0.001419903 [35,] -0.0009066700 0.001390651 [36,] -0.0009660083 0.001359311 [37,] -0.0010035744 0.001335530 [38,] -0.0010399629 0.001309712 [39,] -0.0010590824 0.001287159 [40,] -0.0010761918 0.001268042 [41,] -0.0010866142 0.001251557 [42,] -0.0010937399 0.001233367 [43,] -0.0011135815 0.001218311 [44,] -0.0011382066 0.001201184 [45,] -0.0011784424 0.001184926 [46,] -0.0012395462 0.001170359 [47,] -0.0013032097 0.001153058 > (midr <- midrange(x)) [1] -0.007148532 > midm <- array(NA,dim=8) > for (j in 1:8) midm[j] <- midmean(x,j) > midm [1] -0.001244529 -0.000906670 -0.000906670 -0.000906670 -0.000906670 [6] -0.001183803 -0.000906670 -0.000906670 > postscript(file="/var/www/html/rcomp/tmp/1ywcl1197309818.ps",horizontal=F,pagecentre=F,paper="special",width=8.3333333333333,height=5.5555555555556) > lb <- win[,1] - 2*win[,2] > ub <- win[,1] + 2*win[,2] > if ((ylimmin == '') | (ylimmax == '')) plot(win[,1],type='b',main=main, xlab='j', pch=19, ylab='Winsorized Mean(j/n)', ylim=c(min(lb),max(ub))) else plot(win[,1],type='l',main=main, xlab='j', pch=19, ylab='Winsorized Mean(j/n)', ylim=c(ylimmin,ylimmax)) > lines(ub,lty=3) > lines(lb,lty=3) > grid() > dev.off() null device 1 > postscript(file="/var/www/html/rcomp/tmp/2v6dj1197309818.ps",horizontal=F,pagecentre=F,paper="special",width=8.3333333333333,height=5.5555555555556) > lb <- tri[,1] - 2*tri[,2] > ub <- tri[,1] + 2*tri[,2] > if ((ylimmin == '') | (ylimmax == '')) plot(tri[,1],type='b',main=main, xlab='j', pch=19, ylab='Trimmed Mean(j/n)', ylim=c(min(lb),max(ub))) else plot(tri[,1],type='l',main=main, xlab='j', pch=19, ylab='Trimmed Mean(j/n)', ylim=c(ylimmin,ylimmax)) > lines(ub,lty=3) > lines(lb,lty=3) > grid() > dev.off() null device 1 > load(file='/var/www/html/rcomp/createtable') > a<-table.start() > a<-table.row.start(a) > a<-table.element(a,'Central Tendency - Ungrouped Data',4,TRUE) > a<-table.row.end(a) > a<-table.row.start(a) > a<-table.element(a,'Measure',header=TRUE) > a<-table.element(a,'Value',header=TRUE) > a<-table.element(a,'S.E.',header=TRUE) > a<-table.element(a,'Value/S.E.',header=TRUE) > a<-table.row.end(a) > a<-table.row.start(a) > a<-table.element(a,hyperlink('http://www.xycoon.com/arithmetic_mean.htm', 'Arithmetic Mean', 'click to view the definition of the Arithmetic Mean'),header=TRUE) > a<-table.element(a,arm) > a<-table.element(a,hyperlink('http://www.xycoon.com/arithmetic_mean_standard_error.htm', armse, 'click to view the definition of the Standard Error of the Arithmetic Mean')) > a<-table.element(a,armose) > a<-table.row.end(a) > a<-table.row.start(a) > a<-table.element(a,hyperlink('http://www.xycoon.com/geometric_mean.htm', 'Geometric Mean', 'click to view the definition of the Geometric Mean'),header=TRUE) > a<-table.element(a,geo) > a<-table.element(a,'') > a<-table.element(a,'') > a<-table.row.end(a) > a<-table.row.start(a) > a<-table.element(a,hyperlink('http://www.xycoon.com/harmonic_mean.htm', 'Harmonic Mean', 'click to view the definition of the Harmonic Mean'),header=TRUE) > a<-table.element(a,har) > a<-table.element(a,'') > a<-table.element(a,'') > a<-table.row.end(a) > a<-table.row.start(a) > a<-table.element(a,hyperlink('http://www.xycoon.com/quadratic_mean.htm', 'Quadratic Mean', 'click to view the definition of the Quadratic Mean'),header=TRUE) > a<-table.element(a,qua) > a<-table.element(a,'') > a<-table.element(a,'') > a<-table.row.end(a) > for (j in 1:length(win[,1])) { + a<-table.row.start(a) + mylabel <- paste('Winsorized Mean (',j) + mylabel <- paste(mylabel,'/') + mylabel <- paste(mylabel,length(win[,1])) + mylabel <- paste(mylabel,')') + a<-table.element(a,hyperlink('http://www.xycoon.com/winsorized_mean.htm', mylabel, 'click to view the definition of the Winsorized Mean'),header=TRUE) + a<-table.element(a,win[j,1]) + a<-table.element(a,win[j,2]) + a<-table.element(a,win[j,1]/win[j,2]) + a<-table.row.end(a) + } > for (j in 1:length(tri[,1])) { + a<-table.row.start(a) + mylabel <- paste('Trimmed Mean (',j) + mylabel <- paste(mylabel,'/') + mylabel <- paste(mylabel,length(tri[,1])) + mylabel <- paste(mylabel,')') + a<-table.element(a,hyperlink('http://www.xycoon.com/arithmetic_mean.htm', mylabel, 'click to view the definition of the Trimmed Mean'),header=TRUE) + a<-table.element(a,tri[j,1]) + a<-table.element(a,tri[j,2]) + a<-table.element(a,tri[j,1]/tri[j,2]) + a<-table.row.end(a) + } > a<-table.row.start(a) > a<-table.element(a,hyperlink('http://www.xycoon.com/median_1.htm', 'Median', 'click to view the definition of the Median'),header=TRUE) > a<-table.element(a,median(x)) > a<-table.element(a,'') > a<-table.element(a,'') > a<-table.row.end(a) > a<-table.row.start(a) > a<-table.element(a,hyperlink('http://www.xycoon.com/midrange.htm', 'Midrange', 'click to view the definition of the Midrange'),header=TRUE) > a<-table.element(a,midr) > a<-table.element(a,'') > a<-table.element(a,'') > a<-table.row.end(a) > a<-table.row.start(a) > mymid <- hyperlink('http://www.xycoon.com/midmean.htm', 'Midmean', 'click to view the definition of the Midmean') > mylabel <- paste(mymid,hyperlink('http://www.xycoon.com/method_1.htm','Weighted Average at Xnp',''),sep=' - ') > a<-table.element(a,mylabel,header=TRUE) > a<-table.element(a,midm[1]) > a<-table.element(a,'') > a<-table.element(a,'') > a<-table.row.end(a) > a<-table.row.start(a) > mymid <- hyperlink('http://www.xycoon.com/midmean.htm', 'Midmean', 'click to view the definition of the Midmean') > mylabel <- paste(mymid,hyperlink('http://www.xycoon.com/method_2.htm','Weighted Average at X(n+1)p',''),sep=' - ') > a<-table.element(a,mylabel,header=TRUE) > a<-table.element(a,midm[2]) > a<-table.element(a,'') > a<-table.element(a,'') > a<-table.row.end(a) > a<-table.row.start(a) > mymid <- hyperlink('http://www.xycoon.com/midmean.htm', 'Midmean', 'click to view the definition of the Midmean') > mylabel <- paste(mymid,hyperlink('http://www.xycoon.com/method_3.htm','Empirical Distribution Function',''),sep=' - ') > a<-table.element(a,mylabel,header=TRUE) > a<-table.element(a,midm[3]) > a<-table.element(a,'') > a<-table.element(a,'') > a<-table.row.end(a) > a<-table.row.start(a) > mymid <- hyperlink('http://www.xycoon.com/midmean.htm', 'Midmean', 'click to view the definition of the Midmean') > mylabel <- paste(mymid,hyperlink('http://www.xycoon.com/method_4.htm','Empirical Distribution Function - Averaging',''),sep=' - ') > a<-table.element(a,mylabel,header=TRUE) > a<-table.element(a,midm[4]) > a<-table.element(a,'') > a<-table.element(a,'') > a<-table.row.end(a) > a<-table.row.start(a) > mymid <- hyperlink('http://www.xycoon.com/midmean.htm', 'Midmean', 'click to view the definition of the Midmean') > mylabel <- paste(mymid,hyperlink('http://www.xycoon.com/method_5.htm','Empirical Distribution Function - Interpolation',''),sep=' - ') > a<-table.element(a,mylabel,header=TRUE) > a<-table.element(a,midm[5]) > a<-table.element(a,'') > a<-table.element(a,'') > a<-table.row.end(a) > a<-table.row.start(a) > mymid <- hyperlink('http://www.xycoon.com/midmean.htm', 'Midmean', 'click to view the definition of the Midmean') > mylabel <- paste(mymid,hyperlink('http://www.xycoon.com/method_6.htm','Closest Observation',''),sep=' - ') > a<-table.element(a,mylabel,header=TRUE) > a<-table.element(a,midm[6]) > a<-table.element(a,'') > a<-table.element(a,'') > a<-table.row.end(a) > a<-table.row.start(a) > mymid <- hyperlink('http://www.xycoon.com/midmean.htm', 'Midmean', 'click to view the definition of the Midmean') > mylabel <- paste(mymid,hyperlink('http://www.xycoon.com/method_7.htm','True Basic - Statistics Graphics Toolkit',''),sep=' - ') > a<-table.element(a,mylabel,header=TRUE) > a<-table.element(a,midm[7]) > a<-table.element(a,'') > a<-table.element(a,'') > a<-table.row.end(a) > a<-table.row.start(a) > mymid <- hyperlink('http://www.xycoon.com/midmean.htm', 'Midmean', 'click to view the definition of the Midmean') > mylabel <- paste(mymid,hyperlink('http://www.xycoon.com/method_8.htm','MS Excel (old versions)',''),sep=' - ') > a<-table.element(a,mylabel,header=TRUE) > a<-table.element(a,midm[8]) > a<-table.element(a,'') > a<-table.element(a,'') > a<-table.row.end(a) > a<-table.row.start(a) > a<-table.element(a,'Number of observations',header=TRUE) > a<-table.element(a,length(x)) > a<-table.element(a,'') > a<-table.element(a,'') > a<-table.row.end(a) > a<-table.end(a) > table.save(a,file="/var/www/html/rcomp/tmp/36nko1197309819.tab") > > system("convert tmp/1ywcl1197309818.ps tmp/1ywcl1197309818.png") > system("convert tmp/2v6dj1197309818.ps tmp/2v6dj1197309818.png") > > > proc.time() user system elapsed 1.253 0.350 1.365