सिंपल लीनियर रिग्रेशन

Python में Time Series Analysis

Rob Reider

Adjunct Professor, NYU-Courant Consultant, Quantopian

Regression क्या है?

  • सिंपल लीनियर रिग्रेशन:

$\ \ \ \ y_t = \alpha + \beta x_t + \epsilon_t$

Python में Time Series Analysis

Regression क्या है?

  • ऑर्डिनरी लीस्ट स्क्वेयर्स (OLS)
Python में Time Series Analysis

Regression चलाने के लिए Python पैकेज

  • statsmodels में:
    import statsmodels.api as sm
    sm.OLS(y, x).fit()
    
  • numpy में:
    np.polyfit(x, y, deg=1)
    
  • pandas में:
    pd.ols(y, x)
    
  • scipy में:
    from scipy import stats
    stats.linregress(x, y)
    

चेतावनी: अलग-अलग पैकेजों में x और y का क्रम एक जैसा नहीं है

Python में Time Series Analysis

उदाहरण: Large Cap पर Small Cap रिटर्न का Regression

  • statsmodels मॉड्यूल इम्पोर्ट करें
    import statsmodels.api as sm
    
  • पहले की तरह, दोनों सीरीज़ के प्रतिशत बदलाव निकालें
    df['SPX_Ret'] = df['SPX_Prices'].pct_change()
    df['R2000_Ret'] = df['R2000_Prices'].pct_change()
    
  • रिग्रेशन इंटरसेप्ट के लिए DataFrame में एक constant जोड़ें
    df = sm.add_constant(df)
    
Python में Time Series Analysis

Regression उदाहरण (जारी)

  • ध्यान दें कि रिटर्न की पहली पंक्ति NaN है
                SPX_Price  R2000_Price   SPX_Ret  R2000_Ret
    Date                                                     
    2012-11-01  1427.589966   827.849976       NaN        NaN
    2012-11-02  1414.199951   814.369995 -0.009379  -0.016283
    
  • NaN वाली पंक्ति हटाएँ
      df = df.dropna()
    
  • रिग्रेशन चलाएँ
      results = sm.OLS(df['R2000_Ret'],df[['const','SPX_Ret']]).fit()
      print(results.summary())
    
Python में Time Series Analysis

Regression उदाहरण (जारी)

  • रिग्रेशन आउटपुट

  • इंटरसेप्ट results.params[0] में
  • स्लोप results.params[1] में
Python में Time Series Analysis

Regression उदाहरण (जारी)

  • रिग्रेशन आउटपुट

Python में Time Series Analysis

R-squared और Correlation का संबंध

  • $ [\text{corr} (x,y)]^2 = R^2$ (या R-squared)
  • $ \text{sign(corr)} = \text{sign(regression slope)}$
  • पिछले उदाहरण में:
    • R-squared = 0.753
    • स्लोप पॉज़िटिव है
    • correlation = $ + \sqrt{0.753} = 0.868$
Python में Time Series Analysis

अभ्यास करते हैं!

Python में Time Series Analysis

Preparing Video For Download...