Description Usage Arguments Details Author(s) See Also Examples
Calculates the chi-squared statistic for a given p-value.
1 | p2chi(p, k, steps = 30, chimax = 1E31)
|
p |
a vector of input p-values |
k |
the number of degrees of freedom |
steps |
number of accuracy steps |
chimax |
the upper chi-squared search limit |
The chi-squared distribution is the sum of the squares of k independent standard normal random variables, where k represents the number of degrees of freedom. Typically, k is estimated using the relation k = N - n, where N represents the number of data points (observations) in your data set, and n represents the number of fitted parameters in your model.
The p-value represents the estimated probability of rejecting the null hypothesis. Here we assume the null hypothesis to be that the sample follows a chi-squared distribution as parameterised by the number of degrees of freedom k. Typically, if p >= 0.05, the data appear to be consistent with the null hypothesis, and if p < 0.05, there is significant evidence against the null hypothesis in favour of the alternative. These limits, albeit rather arbitrary, are nevertheless consistently used in the literature. Often, the p-value is (incorrectly) interpreted as the probability that the null hypothesis is true.
This function returns the chi-squared statistic for a vector of given p-values with an associated number k degrees of freedom. Increasing the number of accuracy steps will increase the final accuracy, however; steps = 30 (the default) should be sufficient for most tasks.
Lee Kelvin <lee.kelvin@uibk.ac.at>
The astronomy package: astro
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | X = seq(0,20,len=1000)
kvals = c(1,2,3,4,6,9)
cols = c("yellow","green","turquoise","blue","purple","red")
for(i in 1:length(kvals)){
psig = p2chi(p=0.05, k=kvals[i])
pgood = seq(0,psig,len=100)
pbad = seq(psig,max(X),len=100)
aplot(X, chipdf(X=X, k=kvals[i]), type="n", xlab=bquote(chi^2),
ylab=bquote(paste(f[k],"(",chi^2,")",sep="")),
ylim=c(0,min(0.5,max(chipdf(X=X, k=kvals[i])))),
main="Chi-Squared Probability Density Function")
polygon(x=c(pgood,rev(pgood)),
y=c(chipdf(pgood, k=kvals[i]),rep(0,len=length(pgood))),
col=acol("yellow",alpha=0.5), border=NA)
polygon(x=c(pbad,rev(pbad)),
y=c(chipdf(pbad, k=kvals[i]),rep(0,len=length(pbad))),
col=acol("turquoise",alpha=0.5), border=NA)
lines(X, chipdf(X=X, k=kvals[i]), lwd=3, col=cols[i])
legend("topright",
legend=c("p >= 0.05 (data consistent with null hypothesis)",
"p < 0.05 (reject null hypothesis)"), bty="o",
bg=acol("white",alpha=0.7), inset=0.04, text.font=3, box.col=NA,
fill=acol(c("yellow","turquoise"),alpha=0.5), border=NA)
legend("right", legend=paste("k =",kvals[i]), lwd=3, col=cols[i],
bty="o", bg=acol("white",alpha=0.7), inset=0.04, text.font=3,
box.col=NA)
}
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.