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
