Hướng dẫn chi-square cdf python
Cập nhật: như đã lưu ý, chisqprob () không được dùng cho phiên bản scipy 0.17.0 trở đi. Giá trị chi-square có độ chính xác cao hiện có thể được lấy qua scipy.stats.distributions.chi2.sf (), ví dụ: >>>from scipy.stats.distributions import chi2 >>>chi2.sf(3.84,1) 0.050043521248705189 >>>chi2.sf(1424,1) 1.2799986253099803e-311Mặc dù stats.chisqprob () và 1-stats.chi2.cdf () xuất hiện có thể so sánh được đối với các giá trị chi-square nhỏ, đối với các giá trị chi-square lớn thì ưu tiên hơn. Giá trị thứ hai không thể cung cấp giá trị p nhỏ hơn epsilon máy và sẽ đưa ra các câu trả lời rất không chính xác gần với epsilon máy. Như được trình bày bởi những người khác, các giá trị có thể so sánh cho kết quả là các giá trị chi bình phương nhỏ bằng hai phương pháp: >>>from scipy.stats import chisqprob, chi2 >>>chisqprob(3.84,1) 0.050043521248705189 >>>1 - chi2.cdf(3.84,1) 0.050043521248705147Sử dụng 1-chi2.cdf () được chia nhỏ tại đây: >>>1 - chi2.cdf(67,1) 2.2204460492503131e-16 >>>1 - chi2.cdf(68,1) 1.1102230246251565e-16 >>>1 - chi2.cdf(69,1) 1.1102230246251565e-16 >>>1 - chi2.cdf(70,1) 0.0Trong khi chisqprob () cung cấp cho bạn kết quả chính xác cho một phạm vi giá trị chi-square lớn hơn nhiều, tạo ra giá trị p gần bằng giá trị float nhỏ nhất lớn hơn 0, cho đến khi nó quá chảy: >>>chisqprob(67,1) 2.7150713219425247e-16 >>>chisqprob(68,1) 1.6349553217245471e-16 >>>chisqprob(69,1) 9.8463440314253303e-17 >>>chisqprob(70,1) 5.9304458500824782e-17 >>>chisqprob(500,1) 9.505397766554137e-111 >>>chisqprob(1000,1) 1.7958327848007363e-219 >>>chisqprob(1424,1) 1.2799986253099803e-311 >>>chisqprob(1425,1) 0.022 hữu ích 3 bình luận chia sẻ A chi-squared continuous random variable. For the noncentral chi-square distribution, see ncx2. As an instance of the rv_continuous class, chi2 object inherits from it a collection of generic methods [see below for the full list], and completes them with details specific for this particular distribution. Notes The probability density function for chi2 is: \[f[x, k] = \frac{1}{2^{k/2} \Gamma \left[ k/2 \right]} x^{k/2-1} \exp \left[ -x/2 \right]\] for \[x > 0\] and \[k > 0\] [degrees of freedom, denoted df in the implementation]. chi2 takes df as a shape parameter. The chi-squared distribution is a special case of the gamma distribution, with gamma parameters a = df/2, loc = 0 and scale = 2. The probability density above is defined in the “standardized” form. To shift and/or scale the distribution use the loc and scale parameters. Specifically, chi2.pdf[x, df, loc, scale] is identically equivalent to chi2.pdf[y, df] / scale with y = [x - loc] / scale. Note that shifting the location of a distribution does not make it a “noncentral” distribution; noncentral generalizations of some distributions are available in separate classes. Examples >>> from scipy.stats import chi2 >>> import matplotlib.pyplot as plt >>> fig, ax = plt.subplots[1, 1] Calculate the first four moments: >>> df = 55 >>> mean, var, skew, kurt = chi2.stats[df, moments='mvsk'] Display the probability density function [pdf]: >>> x = np.linspace[chi2.ppf[0.01, df], ... chi2.ppf[0.99, df], 100] >>> ax.plot[x, chi2.pdf[x, df], ... 'r-', lw=5, alpha=0.6, label='chi2 pdf'] Alternatively, the distribution object can be called [as a function] to fix the shape, location and scale parameters. This returns a “frozen” RV object holding the given parameters fixed. Freeze the distribution and display the frozen pdf: >>> rv = chi2[df] >>> ax.plot[x, rv.pdf[x], 'k-', lw=2, label='frozen pdf'] Check accuracy of cdf and ppf: >>> vals = chi2.ppf[[0.001, 0.5, 0.999], df] >>> np.allclose[[0.001, 0.5, 0.999], chi2.cdf[vals, df]] True Generate random numbers: >>> r = chi2.rvs[df, size=1000] And compare the histogram: >>> ax.hist[r, density=True, histtype='stepfilled', alpha=0.2] >>> ax.legend[loc='best', frameon=False] >>> plt.show[] Methods
|