Hướng dẫn chisq inv python - chisq inv 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-311

Mặ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.050043521248705147

Sử 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.0

Trong 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.0

22 hữu ích 3 bình luận chia sẻ 3 bình luận chia sẻ

scipy.stats.chi2=[source]#chi2=[source]#

A chi-squared continuous random variable.

For the noncentral chi-square distribution, see ncx2.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.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: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].\[x > 0\] and \[k > 0\] [degrees of freedom, denoted df in the implementation].

chi2 takes df as a shape parameter. 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.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.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

>>> fromscipy.statsimportchi2>>> importmatplotlib.pyplotasplt>>> fig,ax=plt.subplots[1,1]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']df = 55 >>> mean, var, skew, kurt = chi2.stats[df, moments='mvsk']

Display the probability density function [pdf]: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']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:pdf:

>>> rv=chi2[df]>>> ax.plot[x,rv.pdf[x],'k-',lw=2,label='frozen pdf']rv = chi2[df] >>> ax.plot[x, rv.pdf[x], 'k-', lw=2, label='frozen pdf']

Check accuracy of cdf and ppf: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]]Truevals = 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]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[]ax.hist[r, density=True, histtype='stepfilled', alpha=0.2] >>> ax.legend[loc='best', frameon=False] >>> plt.show[]

Methods

rvs[df, loc=0, scale=1, size=1, random_state=None]

Random variates.

pdf[x, df, loc=0, scale=1]

Probability density function.

logpdf[x, df, loc=0, scale=1]

Log of the probability density function.

cdf[x, df, loc=0, scale=1]

Cumulative distribution function.

logcdf[x, df, loc=0, scale=1]

Log of the cumulative distribution function.

sf[x, df, loc=0, scale=1]

Survival function [also defined as 1-cdf, but sf is sometimes more accurate].1 - cdf, but sf is sometimes more accurate].

logsf[x, df, loc=0, scale=1]

Log of the survival function.

ppf[q, df, loc=0, scale=1]

Percent point function [inverse of cdf — percentiles].cdf — percentiles].

isf[q, df, loc=0, scale=1]

Inverse survival function [inverse of sf].sf].

moment[order, df, loc=0, scale=1]

Non-central moment of the specified order.

stats[df, loc=0, scale=1, moments=’mv’]

Có nghĩa là [’m,], phương sai [‘ V,], xiên [‘s,] và/hoặc kurtosis [‘ k đấm].

entropy [df, loc = 0, tỷ lệ = 1]

[Khác biệt] entropy của RV.

fit[data]

Ước tính tham số cho dữ liệu chung.Xem scipy.stats.rv_continout.fit để biết tài liệu chi tiết về các đối số từ khóa.

Mong đợi [func, args = [df,], loc = 0, scale = 1, lb = none, ub = none, có điều kiện = false, ** kwds]

Giá trị dự kiến của một hàm [của một đối số] đối với phân phối.

trung bình [df, loc = 0, tỷ lệ = 1]

Trung bình phân phối.

trung bình [df, loc = 0, tỷ lệ = 1]

Trung bình của phân phối.

var [df, loc = 0, scale = 1]

Phương sai của phân phối.

std [df, loc = 0, tỷ lệ = 1]

Độ lệch chuẩn của phân phối.

khoảng [Niềm tin, df, loc = 0, tỷ lệ = 1]

Khoảng tin cậy với các khu vực bằng nhau xung quanh trung bình.

Bài Viết Liên Quan

Chủ Đề