matlab,math,statistics,time-series,chi-squared

You can do it with ncx2inv (Statistics Toolbox): p = 0.02; %// probability (i.e. quantile) df = 2; %// degrees of freedom n = 0; %// non-centrality parameter. Set to 0 to generate the provided table result = ncx2inv(1-p, df, n); In this example the result is 7.824, in accordance...

It's ugly, but it works (Sam in the comments is right that this whole issue should probably be addressed by adjusting your data to a clean format before analysing, but anyway): Map( function(x,y) { out <- cbind(x,y) final <- rbind(out[1,],colSums(out[2:3,])) chisq.test(final,correct=FALSE) }, SO_Example_v1[grepl("^hosp1",names(SO_Example_v1))], SO_Example_v1[grepl("^hosp2",names(SO_Example_v1))] ) #$hosp1_WoundAssocType # # Pearson's Chi-squared...

r,data.frame,plyr,apply,chi-squared

Don't use apply on data.frames. It internally coerces to a matrix, which can have unintended consequences for some data structures (i.e. factors). It is also not efficient (memorywise). If you want to apply a function by column, use lapply (as a data.frame is a list) You can use plyr::ldply do...

If I am right you can use the GNU Scientific Library. Look for the function gsl_ran_chisq, which returns a random value from a Chi-square distribution provided a number of degrees of freedom. You can check the C functions related to chi-square and many other distributions on this link. Simply install...

python,scikit-learn,chi-squared

It's right there in the documentation: get_feature_names()...

c++,boost,chi-squared,probability-density

boost::math::chi_squared mydist(n); x = boost::math::qunatile(complement(mydist, pfa)); boost::math::non_central_chi_squared mydist(n, lambda); y = boost::math::quantile(mydist, pmd); where pfa is the probability of false alert and pmd the probability of missed detection...

What you want is ?qchisq. This takes a probability and a degrees of freedom, and outputs the associated quantile. Consider: > qchisq(p=0.2, df=2, lower.tail=FALSE) [1] 3.218876 Furthermore, according the the documentation, dinvchisq() is the density function (the height of the pdf at a given quantile) of the inverse of the...

chisq.test is for contingency tables and that is not what you are giving it. (Notice the degrees of freedom is 42, so it thinks your "real" variables are counts rather than numeric measurements. Take a look at this implementation of a Pearson chi-squared test: > chisq <- sum( (real-theor)^2/theor) >...

r,error-handling,chi-squared,sample-size

I think there is a "numerical" explanation to that. If you take a look at the function's code, you can see that the number of samples is computed by uniroot and is supposed to belong to an interval whose boundaries are set to 1e-10 and 1e5. The error message states...