R/statisticalTests.R
statisticalTests.Rd
These functions verify the Markov property, assess the order and stationarity of the Markov chain.
This function tests whether an empirical transition matrix is statistically compatible with a theoretical one. It is a chi-square based test. In case a cell in the empirical transition matrix is >0 that is 0 in the theoretical transition matrix the null hypothesis is rejected.
Verifies that the s elements in the input list belongs to the same DTMC
verifyMarkovProperty(sequence, verbose = TRUE) assessOrder(sequence, verbose = TRUE) assessStationarity(sequence, nblocks, verbose = TRUE) verifyEmpiricalToTheoretical(data, object, verbose = TRUE) verifyHomogeneity(inputList, verbose = TRUE)
sequence | An empirical sequence. |
---|---|
verbose | Should test results be printed out? |
nblocks | Number of blocks. |
data | matrix, character or list to be converted in a raw transition matrix |
object | a markovchain object |
inputList | A list of items that can coerced to transition matrices |
Verification result
a list with following slots: statistic (the chi - square statistic), dof (degrees of freedom), and corresponding p-value. In case a cell in the empirical transition matrix is >0 that is 0 in the theoretical transition matrix the null hypothesis is rejected. In that case a p-value of 0 and statistic and dof of NA are returned.
a list of transition matrices?
Anderson and Goodman.
markovchain
Tae Seung Kang, Giorgio Alfredo Spedicato
sequence <- c("a", "b", "a", "a", "a", "a", "b", "a", "b", "a", "b", "a", "a", "b", "b", "b", "a") mcFit <- markovchainFit(data = sequence, byrow = FALSE) verifyMarkovProperty(sequence)#> Testing markovianity property on given data sequence #> Chi - square statistic is: 0.28 #> Degrees of freedom are: 5 #> And corresponding p-value is: 0.9980024assessOrder(sequence)#> Warning: The accuracy of the statistical inference functions has been questioned. It will be thoroughly investigated in future versions of the package.#> Warning: Chi-squared approximation may be incorrect#> Warning: Chi-squared approximation may be incorrect#> The assessOrder test statistic is: 1.55307e-31 #> The Chi-Square d.f. are: 2 #> The p-value is: 1assessStationarity(sequence, 1)#> Warning: The accuracy of the statistical inference functions has been questioned. It will be thoroughly investigated in future versions of the package.#> Warning: Chi-squared approximation may be incorrect#> Warning: Chi-squared approximation may be incorrect#> The assessStationarity test statistic is: 0.1960191 #> The Chi-Square d.f. are: 0 #> The p-value is: 0#Example taken from Kullback Kupperman Tests for Contingency Tables and Markov Chains sequence<-c(0,1,2,2,1,0,0,0,0,0,0,1,2,2,2,1,0,0,1,0,0,0,0,0,0,1,1, 2,0,0,2,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,2,1,0, 0,2,1,0,0,0,0,0,0,1,1,1,2,2,0,0,2,1,1,1,1,2,1,1,1,1,1,1,1,1,1,0,2, 0,1,1,0,0,0,1,2,2,0,0,0,0,0,0,2,2,2,1,1,1,1,0,1,1,1,1,0,0,2,1,1, 0,0,0,0,0,2,2,1,1,1,1,1,2,1,2,0,0,0,1,2,2,2,0,0,0,1,1) mc=matrix(c(5/8,1/4,1/8,1/4,1/2,1/4,1/4,3/8,3/8),byrow=TRUE, nrow=3) rownames(mc)<-colnames(mc)<-0:2; theoreticalMc<-as(mc, "markovchain") verifyEmpiricalToTheoretical(data=sequence,object=theoreticalMc)#> Testing whether the #> 0 1 2 #> 0 51 11 8 #> 1 12 31 9 #> 2 6 11 10 #> transition matrix is compatible with #> 0 1 2 #> 0 0.625 0.250 0.125 #> 1 0.250 0.500 0.250 #> 2 0.250 0.375 0.375 #> [1] "theoretical transition matrix" #> ChiSq statistic is 6.551795 d.o.f are 6 corresponding p-value is 0.3642899#> $statistic #> 0 #> 6.551795 #> #> $dof #> [1] 6 #> #> $pvalue #> 0 #> 0.3642899 #>#> Warning: The accuracy of the statistical inference functions has been questioned. It will be thoroughly investigated in future versions of the package.#> Testing homogeneity of DTMC underlying input list #> ChiSq statistic is 275.9963 d.o.f are 35 corresponding p-value is 0#> $statistic #> [1] 275.9963 #> #> $dof #> [1] 35 #> #> $pvalue #> [1] 0 #>