priti desai
2006-Jun-16 07:26 UTC
[R] The qurey about kolmogorov-smirnov test & adding the trendline to graph
I am hereby forwarding the data & method use to calculate the Kolmogorov-Smirnov goodness of fit test made manually by me in R launguage which deffers with the actual inbuilt formula as shown below. Further I have plot the graph in R. In that graph how to add trendline (i.e. straight line passing through maximum points in plot) to a Plot. R script is as follows please run this script to see the output in R. ========================= start ========================= # The data is as follows data <- c( 0.01, 0.02, 0.04, 0.13, 0.17 , 0.19 , 0.21 , 0.27 , 0.27 , 0.28, 0.29, 0.37, 0.41, 0.49, 0.51, 0.52, 0.54, 0.57, 0.62, 0.63, 0.68, 0.73, 0.74, 0.79, 0.81, 0.81, 0.82, 0.86, 0.94, 0.96, 1.02, 1.10, 1.10, 1.20, 1.29, 1.36, 1.40, 1.41, 1.44, 1.45, 1.62, 1.67, 1.69, 1.78, 1.82, 2.11, 2.13, 2.14, 2.24, 2.29, 2.34, 2.40, 2.46, 2.70, 2.83, 2.98, 3.00, 3.30, 3.53, 3.70, 3.86, 3.90, 3.91, 3.98, 5.01, 5.23, 6.05, 6.12, 10.41, 10.73) # K-S goodness of fit test (actual calculated) print('K-S goodness of fit test') # Ho:sample come from postulated prob distribution vs H1: Not Ho # Reject Ho if o > 0.162312045 o.w. don't reject Ho at 5% los. # Reject Ho if o > 0.194583 o.w. don't reject Ho at 1% los. # In this case, we don't Reject Ho at 5% &1% los. average <- mean(data) print('average:') # estimate the parameter print('Estimation of parameter') lambda <- (1/average) print(lambda) e <- c(1:70) k <- c((e-1)/70) Fx <- c(1 - exp(-lambda*data)) g <- sort(Fx) l <- c(g-k) m <- c(e/70) n <- c(m-g) o <- max(l,n) print('k-s stat:') print(o) # K-S goodness of fit test (R inbuilt formula) ks.test(x= data,"pexp", alternative = c("g"),exact = NULL) # P-P plot e <- c(1:70) f <- c((e-.5)/70) Fx <- c(1 - exp(-lambda*data)) g <- sort(Fx) plot(f,g) ========================= end ========================= The results are as follows: The K-S test calculated manualy giving the result as follows, Ho:sample come from postulated prob distribution vs H1: Not Ho Ks statistic = D = 0.04391726 Reject Ho if o > 0.162312045 o.w. don't reject Ho at 5% los. Reject Ho if o > 0.194583 o.w. don't reject Ho at 1% los. In this case, we don't Reject Ho at 5% &1% los. (by inbuilt formula the output is as follows,) One-sample Kolmogorov-Smirnov test data: data D^+ = 0.0088, p-value = 0.9893 alternative hypothesis: greater Warning message: cannot compute correct p-values with ties in: ks.test(x = data, "pexp", alternative = c("g"), exact = NULL) It is requested to clarify & confirm formula derirved so as to enable me to cross check my calculations made manually. Further please convey as how to interprete the results. Awaiting your positive reply. Regards, Priti