Statsmodels



statsmodels

Statsmodels

statsmodels هي وحدة بايثون التي توفر الفصول والوظائف لتقدير العديد من النماذج الإحصائية المختلفة ، وكذلك لإجراء الاختبارات الإحصائية ، واستكشاف البيانات الإحصائية. تتوفر قائمة واسعة من إحصائيات النتائج لكل مقدر. يتم اختبار النتائج مقابل الحزم الإحصائية الموجودة للتأكد من أنها صحيحة. يتم تحرير الحزمة تحت رخصة المصدر المفتوح BSD (3-clause). تتم استضافة الوثائق عبر الإنترنت على statsmodels.org .

أمثلة الحد الأدنى

منذ الإصدار 0.5.0 من statsmodels ، يمكنك استخدام صيغ R-style مع إطارات بيانات statsmodels لتلائم النماذج الخاصة بك. هنا مثال بسيط باستخدام المربعات الصغرى العادية:

In [1]: import numpy as np

In [2]: import statsmodels.api as sm

In [3]: import statsmodels.formula.api as smf

# Load data
In [4]: dat = sm.datasets.get_rdataset("Guerry", "HistData").data

# Fit regression model (using the natural log of one of the regressors)
In [5]: results = smf.ols('Lottery ~ Literacy + np.log(Pop1831)', data=dat).fit()

# Inspect the results
In [6]: print(results.summary())
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                Lottery   R-squared:                       0.348
Model:                            OLS   Adj. R-squared:                  0.333
Method:                 Least Squares   F-statistic:                     22.20
Date:                Tue, 28 Feb 2017   Prob (F-statistic):           1.90e-08
Time:                        21:38:05   Log-Likelihood:                -379.82
No. Observations:                  86   AIC:                             765.6
Df Residuals:                      83   BIC:                             773.0
Df Model:                           2                                         
Covariance Type:            nonrobust                                         
===================================================================================
                      coef    std err          t      P>|t|      [0.025      0.975]
-----------------------------------------------------------------------------------
Intercept         246.4341     35.233      6.995      0.000     176.358     316.510
Literacy           -0.4889      0.128     -3.832      0.000      -0.743      -0.235
np.log(Pop1831)   -31.3114      5.977     -5.239      0.000     -43.199     -19.424
==============================================================================
Omnibus:                        3.713   Durbin-Watson:                   2.019
Prob(Omnibus):                  0.156   Jarque-Bera (JB):                3.394
Skew:                          -0.487   Prob(JB):                        0.183
Kurtosis:                       3.003   Cond. No.                         702.
==============================================================================

Warnings:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.

يمكنك أيضًا استخدام numpy بدلاً من الصيغ:

In [7]: import numpy as np

In [8]: import statsmodels.api as sm

# Generate artificial data (2 regressors + constant)
In [9]: nobs = 100

In [10]: X = np.random.random((nobs, 2))

In [11]: X = sm.add_constant(X)

In [12]: beta = [1, .1, .5]

In [13]: e = np.random.random(nobs)

In [14]: y = np.dot(X, beta) + e

# Fit regression model
In [15]: results = sm.OLS(y, X).fit()

# Inspect the results
In [16]: print(results.summary())
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                      y   R-squared:                       0.260
Model:                            OLS   Adj. R-squared:                  0.245
Method:                 Least Squares   F-statistic:                     17.06
Date:                Tue, 28 Feb 2017   Prob (F-statistic):           4.49e-07
Time:                        21:38:05   Log-Likelihood:                -23.039
No. Observations:                 100   AIC:                             52.08
Df Residuals:                      97   BIC:                             59.89
Df Model:                           2                                         
Covariance Type:            nonrobust                                         
==============================================================================
                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
const          1.3622      0.088     15.521      0.000       1.188       1.536
x1             0.2220      0.112      1.973      0.051      -0.001       0.445
x2             0.6277      0.112      5.585      0.000       0.405       0.851
==============================================================================
Omnibus:                       38.171   Durbin-Watson:                   1.957
Prob(Omnibus):                  0.000   Jarque-Bera (JB):                6.373
Skew:                           0.079   Prob(JB):                       0.0413
Kurtosis:                       1.773   Cond. No.                         5.71
==============================================================================

Warnings:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.

إلقاء نظرة على dir(results) لرؤية النتائج المتاحة. يتم وصف السمات في results.__doc__ و results.__doc__ ونتائج النتائج لها results.__doc__ خاصة بها.

الاقتباس

عند استخدام statsmodels في المنشور العلمي ، يرجى النظر في استخدام الاقتباس التالي:

Seabold و Skipper و Josef Perktold. " Statsmodels: الاقتصاد القياسي والنمذجة الإحصائية مع بيثون. " Proceedings of the 9th Python in Science Conference. 2010.

مدخل Bibtex:

@inproceedings{seabold2010statsmodels,
  title={Statsmodels: Econometric and statistical modeling with python},
  author={Seabold, Skipper and Perktold, Josef},
  booktitle={9th Python in Science Conference},
  year={2010},
}