ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Python 데이터분석 기초 49 - 단회귀분석(선형회귀분석) OLS summary(요약결과) 보는 방법
    Python 데이터 분석 2022. 11. 15. 13:02

     

     

    # 단순선형회귀 모델
    # 기본적인 결정론적 선형회귀방법 : 독립변수에 대해 대응하는 종속변수와 유사한 예측값을 출력하는 함수 f(x)(= wx + b)를 찾는 작업이다.
    
    import pandas as pd
    
    df = pd.read_csv('../testdata/drinking_water.csv')
    print(df.head(3))
    print(df.corr()) # 상관관계 출력
    
    import statsmodels.formula.api as smf
    
    # 적절성이 만족도에 영향을 준다라는 가정하에 모델 생성
    model = smf.ols(formula = '만족도 ~ 적절성', data = df).fit() # 종속변수 ~ 독립변수, fit()함수는 학습하는 합수
    print(model.summary()) # 생성된 모델의 요약결과를 반환. 능력치 확인
    # p-value = Prob (F-statistic): 2.24e-52
    # 기울기 = coef : 0.7393
    # 표준오차 = std err : 0.038 (모집단에서 표본집단을 추출, 표본평균들의 표준편차)
    # 기울기 절편을 구하려면 최소제곱법 이용(패턴이 같으면 최소제곱법은 밀도에 상관없이 동일한 수식을 제공한다.)
    # 기울기와 절편은 -> 최소제곱법을 이용해서 구한다. 밀도와 상관없이 패턴이 같다면 같은 추세선이 나타나게 된다.
    # 하지만 밀도가 높으면 표준오차가 작다(분산의 설명력이 높다) ->  R-squared (결정계수, 설명력) 이 높다.
    # P>|t| : 0.05보다 작으면 독립변수로서 의미가 있다. 
    # R-squared : 0.588 (결정계수, 설명력) x가 종속변수 y의 분산을 설명하는 비율(0~1), 종속변수의 전체 분산으로 설명된 분산(종속변수가 독립변수의 영향을 받은 설명력)을 나눈 값
    # Adj. R-squared : 0.586 (다중회귀분석에서는 이것을 이용)
    # F값이나 T값이 커지면 p-value는 작아진다. (반비례 관계)
    
    # Omnibus는 무의미성에 대해 수치를 표시한 것이다.
    # Durbin-Watson는 변수들 간의 자기상관을 표시
    # Prob(JB) : 0.000335 , 숫자가 0에 가까울수록 정규분포에 가깝다.
    # Skew : -0.328, 왜도 
    # Kurtosis : 4.012, 첨도
    
    print('회귀계수 :', model.params)
    print('결정계수 :', model.rsquared)
    print('유의확률 :', model.pvalues)
    print('예측값 :', model.predict()[:5])
    print('실제값 :', df.만족도[:5].values)
    
    print()
    new_df = pd.DataFrame({'적절성':[4,3,2,1]})
    new_pred = model.predict(new_df)
    print('예측 결과 :', new_pred.values)
    
    
    
    
    <console>
       친밀도  적절성  만족도
    0    3    4    3
    1    3    3    2
    2    4    4    4
              친밀도       적절성       만족도
    친밀도  1.000000  0.499209  0.467145
    적절성  0.499209  1.000000  0.766853
    만족도  0.467145  0.766853  1.000000
                                OLS Regression Results                            
    ==============================================================================
    Dep. Variable:                    만족도   R-squared:                       0.588
    Model:                            OLS   Adj. R-squared:                  0.586
    Method:                 Least Squares   F-statistic:                     374.0
    Date:                Tue, 15 Nov 2022   Prob (F-statistic):           2.24e-52
    Time:                        13:00:37   Log-Likelihood:                -207.44
    No. Observations:                 264   AIC:                             418.9
    Df Residuals:                     262   BIC:                             426.0
    Df Model:                           1                                         
    Covariance Type:            nonrobust                                         
    ==============================================================================
                     coef    std err          t      P>|t|      [0.025      0.975]
    ------------------------------------------------------------------------------
    Intercept      0.7789      0.124      6.273      0.000       0.534       1.023
    적절성            0.7393      0.038     19.340      0.000       0.664       0.815
    ==============================================================================
    Omnibus:                       11.674   Durbin-Watson:                   2.185
    Prob(Omnibus):                  0.003   Jarque-Bera (JB):               16.003
    Skew:                          -0.328   Prob(JB):                     0.000335
    Kurtosis:                       4.012   Cond. No.                         13.4
    ==============================================================================
    
    Notes:
    [1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
    회귀계수 : Intercept    0.778858
    적절성          0.739276
    dtype: float64
    결정계수 : 0.5880630629464404
    유의확률 : Intercept    1.454388e-09
    적절성          2.235345e-52
    dtype: float64
    예측값 : [3.73596305 2.99668687 3.73596305 2.25741069 2.25741069]
    실제값 : [3 2 4 2 2]
    
    예측 결과 : [3.73596305 2.99668687 2.25741069 1.51813451]

    1. p-value = Prob (F-statistic): 2.24e-52
    2. 기울기 = coef : 0.7393
    3. 표준오차 = std err : 0.038 (모집단에서 표본집단을 추출, 표본평균들의 표준편차)
    4. 기울기 절편을 구하려면 최소제곱법 이용(패턴이 같으면 최소제곱법은 밀도에 상관없이 동일한 수식을 제공한다.)
        기울기와 절편은 -> 최소제곱법을 이용해서 구한다. 밀도와 상관없이 패턴이 같다면 같은 추세선이 나타나게 된다. 
        하지만 밀도가 높으면 표준오차가 작다(분산의 설명력이 높다) ->  R-squared (결정계수, 설명력) 이 높다.
    5. R-squared : 0.588 (결정계수, 설명력) x가 종속변수 y의 분산을 설명하는 비율(0~1), 종속변수의 전체 분산으로 설명된      분종속변수가 독립변수의 영향을 받은 설명력)을 나눈 값
    6. Adj. R-squared : 0.586 (다중회귀분석에서는 이것을 이용)
    7. F값이나 T값이 커지면 p-value는 작아진다. (반비례 관계)

    8. T값은 평균집단 1 - 평균집단2 / 표준오차이다. 기울기가 있으므로 그것을 이용하여 집단 1, 집단 2로 나눌 수 있다. 그것      으로 T값을 구한다.

        T-값은 표본 데이터 변동에 비례한 차이의 크기를 측정한다. 다르게 표현하면 T는 계산된 차이를 표준 오차 단위로 나          타낸 것으로, T의 크기가 클수록 귀무 가설에 대한 증거가 크다 즉, 유의한 차이가 있다는 증거가 더 명확한 것.

     

    9. Omnibus는 무의미성에 대해 수치를 표시한 것이다.
    10. Durbin-Watson는 변수들 간의 자기상관을 표시
    11. Prob(JB) : 0.000335 , 숫자가 0에 가까울수록 정규분포에 가깝다.
    12. Skew : -0.328, 왜도 
    13. Kurtosis : 4.012, 첨도

    14. # P>|t| : 0.05보다 작으면 독립변수로서 의미가 있다. 

     

    .0t값

     

     

    출처 :&nbsp;https://igija.tistory.com/256

    댓글

Designed by Tistory.