Wywołaj R z JAVA, aby uzyskać statystyki Chi-kwadrat i wartość p
Mam dwie macierze 4 * 4 w JAVA, gdzie jedna macierz zawiera obserwowane zliczenia i inne oczekiwane liczby.
Potrzebuję zautomatyzowanego sposobu obliczenia wartości p ze statystyki chi-kwadrat między tymi dwiema macierzami; JAVA nie ma jednak takiej funkcji, o ile mi wiadomo.
Mogę obliczyć chi-kwadrat i jego wartość p odczytując dwie macierze w R jako formaty plików .csv, a następnie używając funkcji chisq.test w następujący sposób:
obs<-read.csv("obs.csv")
exp<-read.csv("exp.csv")
chisq.test(obs,exp)
gdzie format plików .csv wygląda następująco:
A, C, G, T
A, 197.136, 124.32, 63.492, 59.052
C, 124.32, 78.4, 40.04, 37.24
G, 63.492, 40.04, 20.449, 19.019
T, 59.052, 37.24, 19.019, 17.689
Biorąc pod uwagę te polecenia, R da wynik formatu:
X-squared = 20.6236, df = 9, p-value = 0.01443
który zawiera wartość p, której szukałem.
Czy ktoś zna skuteczny sposób automatyzacji procesu:
1) Wyprowadzanie moich matryc z JAVA do plików .csv 2) Przesyłanie plików .csv do R 3) Wywoływanie chisq.test na plikach .csv do R 4) Zwracanie wyjściowej wartości p z powrotem do JAVA?
Dzięki za pomoc…