Выполнение KS.test на эмпирических взвешенных функциях распределения в R

Я хочу сравнить два набора данных с разным объемом данных и разными начальными/конечными точками. Я хотел использовать KS.test, так как я делаю что-то подобное в написанной мной программе на C (сравнивает данные через гистограмму GSL -> GSL cdf -> самописный тест KS), но поскольку эта программа все еще не опубликована, я не могу ее использовать. это для этого. Однако я хотел использовать тот же принцип в R, но не могу понять, как это сделать в R.

У меня есть две эмпирические взвешенные функции распределения (созданные с помощью библиотеки spatstat), и я пытаюсь выполнить для них KS.test, но это дает мне ошибку, которую я не совсем уверен, как ее интерпретировать.

R-код, который я выполнил:

предсказанный и экспериментальный содержит массив значений xy (разные длины, начальные и конечные значения X).

cdf_e<-ewcdf(experimental[,1],weights=experimental[,2])
cdf_p<-ewcdf(predicted[,1],weights=predicted[,2])
ks.test(cdf_e,cdf_p)

Сообщение, которое я получаю:

Error in x[!is.na(x)] : object of type 'closure' is not subsettable
In addition: Warning message:
In is.na(x) : is.na() applied to non-(list or vector) of type 'closure'

Может ли кто-нибудь сказать мне, что это конкретно означает (поскольку в ?ks.test не упоминается ничего, что я могу связать с этой ошибкой), или следует ли вместо этого использовать другой вызов функции или что-то еще.

PS: первые 10 строк каждого файла данных выглядят следующим образом:

предсказанный

m/z I
292.1 1272
322.0 815
324.9 780
350.0 922
363.9 781
366.0 87049
366.9 12773
367.9 1620
383.6 1258

Экспериментальный

m/z I
366.139 1229.62
367.142 186.775
368.145 10.9435
528.192 19.8701
529.195 4.39351
579.435 11.5899
680.996 73.8311
681.861 7.2526
745.032 5.31373

r cdf
person Bas Jansen    schedule 28.01.2013    source источник
comment
Вы нашли приемлемое решение для этого?   -  person fred    schedule 29.11.2013


Ответы (1)


Я предполагаю, что это потому, что ks.test ожидает в качестве аргументов либо два вектора значений данных, либо вектор значений данных и именованную функцию распределения; а не сами ECDF. Если у вас уже есть два ECDF, вы можете рассчитать KS-статистику самостоятельно.

person Scortchi - Reinstate Monica    schedule 28.01.2013