одномерная регрессия в питоне - PullRequest
1 голос
/ 08 июля 2019

Необходимо запустить несколько моделей однофакторной (одномерной) регрессии в python между столбцом в кадре данных и несколькими другими столбцами в одном и том же кадре данных

-

enter image description here

поэтому, основываясь на изображении, я хочу запустить регрессионные модели между x1 & dep, x2 & dep и т. Д. И т. П.

Хотите вывести - бета, перехват, R-sq, p-значение, SSE, AIC, BIC, проверка нормальности остатков и т. Д.

1 Ответ

0 голосов
/ 08 июля 2019

Здесь можно использовать две опции. Одним из них является популярная библиотека scikit-learn . Используется следующим образом

from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X, y)  # where X is your feature data and y is your target
reg.score(X, y)  # R^2 value
>>> 0.87
reg.coef_  # slope coeficients
>>> array([1.45, -9.2])
reg.intercept_  # intercept
>>> 6.1723...

Существует не так много других статистических данных, которые вы можете использовать с scikit.

Другой вариант - statsmodels , который предлагает гораздо более подробную информацию в статистике модели

import numpy as np
import statsmodels.api as sm

# generate some synthetic data
nsample = 100
x = np.linspace(0, 10, 100)
X = np.column_stack((x, x**2))
beta = np.array([1, 0.1, 10])
e = np.random.normal(size=nsample)

X = sm.add_constant(X)
y = np.dot(X, beta) + e

# fit the model and get a summary of the statistics
model = sm.OLS(y, X)
results = model.fit()
print(results.summary())

                            OLS Regression Results                            
==============================================================================
Dep. Variable:                      y   R-squared:                       1.000
Model:                            OLS   Adj. R-squared:                  1.000
Method:                 Least Squares   F-statistic:                 4.020e+06
Date:                Mon, 08 Jul 2019   Prob (F-statistic):          2.83e-239
Time:                        02:07:22   Log-Likelihood:                -146.51
No. Observations:                 100   AIC:                             299.0
Df Residuals:                      97   BIC:                             306.8
Df Model:                           2                                         
Covariance Type:            nonrobust                                         
==============================================================================
                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
const          1.3423      0.313      4.292      0.000       0.722       1.963
x1            -0.0402      0.145     -0.278      0.781      -0.327       0.247
x2            10.0103      0.014    715.745      0.000       9.982      10.038
==============================================================================
Omnibus:                        2.042   Durbin-Watson:                   2.274
Prob(Omnibus):                  0.360   Jarque-Bera (JB):                1.875
Skew:                           0.234   Prob(JB):                        0.392
Kurtosis:                       2.519   Cond. No.                         144.
==============================================================================

Вы можете видеть, что statsmodels предлагают гораздо больше деталей, таких как AIC, BIC, t-статистика и т. Д.

...