mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-11-01 23:12:21 +00:00
1 line
56 KiB
JavaScript
1 line
56 KiB
JavaScript
"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[75792],{3905:(t,e,a)=>{a.d(e,{Zo:()=>m,kt:()=>s});var r=a(67294);function n(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function i(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,r)}return a}function l(t){for(var e=1;e<arguments.length;e++){var a=null!=arguments[e]?arguments[e]:{};e%2?i(Object(a),!0).forEach((function(e){n(t,e,a[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))}))}return t}function o(t,e){if(null==t)return{};var a,r,n=function(t,e){if(null==t)return{};var a,r,n={},i=Object.keys(t);for(r=0;r<i.length;r++)a=i[r],e.indexOf(a)>=0||(n[a]=t[a]);return n}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r<i.length;r++)a=i[r],e.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(n[a]=t[a])}return n}var g=r.createContext({}),p=function(t){var e=r.useContext(g),a=e;return t&&(a="function"==typeof t?t(e):l(l({},e),t)),a},m=function(t){var e=p(t.components);return r.createElement(g.Provider,{value:e},t.children)},d={inlineCode:"code",wrapper:function(t){var e=t.children;return r.createElement(r.Fragment,{},e)}},k=r.forwardRef((function(t,e){var a=t.components,n=t.mdxType,i=t.originalType,g=t.parentName,m=o(t,["components","mdxType","originalType","parentName"]),k=p(a),s=n,N=k["".concat(g,".").concat(s)]||k[s]||d[s]||i;return a?r.createElement(N,l(l({ref:e},m),{},{components:a})):r.createElement(N,l({ref:e},m))}));function s(t,e){var a=arguments,n=e&&e.mdxType;if("string"==typeof t||n){var i=a.length,l=new Array(i);l[0]=k;var o={};for(var g in e)hasOwnProperty.call(e,g)&&(o[g]=e[g]);o.originalType=t,o.mdxType="string"==typeof t?t:n,l[1]=o;for(var p=2;p<i;p++)l[p]=a[p];return r.createElement.apply(null,l)}return r.createElement.apply(null,a)}k.displayName="MDXCreateElement"},21995:(t,e,a)=>{a.r(e),a.d(e,{assets:()=>g,contentTitle:()=>l,default:()=>d,frontMatter:()=>i,metadata:()=>o,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));const i={title:"Econometrics",keywords:["econometrics","statistics","regression","panel data","time series","research","thesis","university"],excerpt:"The Introduction to Econometrics explains how to use the menu"},l=void 0,o={unversionedId:"guides/intros/econometrics",id:"guides/intros/econometrics",title:"Econometrics",description:"The capabilities of the Econometrics menu from the OpenBB Terminal are wrapped into a powerful SDK, enabling users to work with the data in a flexible environment that can be fully customized to meet the needs of any user. The Econometrics menu's purpose is to provide the user the ability to perform statistical research on custom datasets. The menu allows the user to load in his/her own dataset(s), modify the data by adding columns or setting indices, apply statistical tests (e.g. Breusch-Godfrey autocorrelation tests) as well as OLS regressions and Panel regressions (e.g. Random Effects and Fixed Effects)",source:"@site/content/sdk/guides/intros/econometrics.md",sourceDirName:"guides/intros",slug:"/guides/intros/econometrics",permalink:"/sdk/guides/intros/econometrics",draft:!1,editUrl:"https://github.com/OpenBB-finance/OpenBBTerminal/edit/main/website/content/sdk/guides/intros/econometrics.md",tags:[],version:"current",frontMatter:{title:"Econometrics",keywords:["econometrics","statistics","regression","panel data","time series","research","thesis","university"],excerpt:"The Introduction to Econometrics explains how to use the menu"},sidebar:"tutorialSidebar",previous:{title:"Discovery",permalink:"/sdk/guides/intros/crypto/discovery"},next:{title:"Economy",permalink:"/sdk/guides/intros/economy"}},g={},p=[{value:"How to use",id:"how-to-use",level:2},{value:"Examples",id:"examples",level:2},{value:"Loading a dataset",id:"loading-a-dataset",level:3},{value:"Working with Time Series data",id:"working-with-time-series-data",level:3},{value:"Working with Panel data",id:"working-with-panel-data",level:3}],m={toc:p};function d(t){let{components:e,...a}=t;return(0,n.kt)("wrapper",(0,r.Z)({},m,a,{components:e,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"The capabilities of the ",(0,n.kt)("a",{parentName:"p",href:"/terminal/guides/intros/econometrics"},"Econometrics menu")," from the OpenBB Terminal are wrapped into a powerful SDK, enabling users to work with the data in a flexible environment that can be fully customized to meet the needs of any user. The Econometrics menu's purpose is to provide the user the ability to perform statistical research on custom datasets. The menu allows the user to load in his/her own dataset(s), modify the data by adding columns or setting indices, apply statistical tests (e.g. ",(0,n.kt)("a",{href:"https://en.wikipedia.org/wiki/Breusch%E2%80%93Godfrey_test",target:"_blank",rel:"noreferrer noopener"},"Breusch-Godfrey autocorrelation tests"),") as well as OLS regressions and Panel regressions (e.g. ",(0,n.kt)("a",{href:"https://en.wikipedia.org/wiki/Random_effects_model",target:"_blank",rel:"noreferrer noopener"},"Random Effects")," and ",(0,n.kt)("a",{href:"https://en.wikipedia.org/wiki/Fixed_effects_model",target:"_blank",rel:"noreferrer noopener"},"Fixed Effects"),")"),(0,n.kt)("h2",{id:"how-to-use"},"How to use"),(0,n.kt)("p",null,"Start a Python script or Notebook file and import the SDK module:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-python"},"from openbb_terminal.sdk import openbb\n")),(0,n.kt)("p",null,"Below is a brief description of each function within the Portfolio module:"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:"left"},"Path"),(0,n.kt)("th",{parentName:"tr",align:"center"},"Type"),(0,n.kt)("th",{parentName:"tr",align:"right"},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"openbb.econometrics.granger"),(0,n.kt)("td",{parentName:"tr",align:"center"},"Function"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Check time-series for Granger causality (X causes Y)")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"openbb.econometrics.granger_chart"),(0,n.kt)("td",{parentName:"tr",align:"center"},"Function"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Obtain a nice table of Granger causality")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"openbb.econometrics.fe"),(0,n.kt)("td",{parentName:"tr",align:"center"},"Function"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Perform a Fixed Effects (fe) regression on Panel data")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"openbb.econometrics.options"),(0,n.kt)("td",{parentName:"tr",align:"center"},"Function"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Obtain all options that can be used for regression techniques")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"openbb.econometrics.options_chart"),(0,n.kt)("td",{parentName:"tr",align:"center"},"Function"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Get a nice table of the options")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"openbb.econometrics.dwat"),(0,n.kt)("td",{parentName:"tr",align:"center"},"Function"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Check for auto-correlation with Durbin Watson")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"openbb.econometrics.dwat_chart"),(0,n.kt)("td",{parentName:"tr",align:"center"},"Function"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Plot the residuals of the OLS model")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"openbb.econometrics.coint"),(0,n.kt)("td",{parentName:"tr",align:"center"},"Function"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Check whether time-series are cointegrated")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"openbb.econometrics.coint_chart"),(0,n.kt)("td",{parentName:"tr",align:"center"},"Function"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Show the error-correction terms plot")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"openbb.econometrics.pols"),(0,n.kt)("td",{parentName:"tr",align:"center"},"Function"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Perform a Pooled OLS (pols) regression on Panel data")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"openbb.econometrics.root"),(0,n.kt)("td",{parentName:"tr",align:"center"},"Function"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Check for unit root in the timeseries")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"openbb.econometrics.root_chart"),(0,n.kt)("td",{parentName:"tr",align:"center"},"Function"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Show a nice table of the unit root test results")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"openbb.econometrics.bgod"),(0,n.kt)("td",{parentName:"tr",align:"center"},"Function"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Check for autocorrelation with Breusch Godfrey")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"openbb.econometrics.bgod_chart"),(0,n.kt)("td",{parentName:"tr",align:"center"},"Function"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Show a nice table of the autocorrelation test results")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"openbb.econometrics.re"),(0,n.kt)("td",{parentName:"tr",align:"center"},"Function"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Perform a Random Effects (re) regression on Panel data")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"openbb.econometrics.bols"),(0,n.kt)("td",{parentName:"tr",align:"center"},"Function"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Perform a Between OLS (bols) regression on Panel data")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"openbb.econometrics.panel"),(0,n.kt)("td",{parentName:"tr",align:"center"},"Function"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Obtain the regression results wrapper")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"openbb.econometrics.get_regression_data"),(0,n.kt)("td",{parentName:"tr",align:"center"},"Function"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Obtain an OLS model wrapper")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"openbb.econometrics.norm"),(0,n.kt)("td",{parentName:"tr",align:"center"},"Function"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Check whether the time-series is normally distributed")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"openbb.econometrics.norm_chart"),(0,n.kt)("td",{parentName:"tr",align:"center"},"Function"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Show a histogram of the time-series")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"openbb.econometrics.clean"),(0,n.kt)("td",{parentName:"tr",align:"center"},"Function"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Apply either a fill or drop method to clean the data")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"openbb.econometrics.bpag"),(0,n.kt)("td",{parentName:"tr",align:"center"},"Function"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Test for heteroskedasticity with a Breusch-Pagan test")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"openbb.econometrics.bpag_chart"),(0,n.kt)("td",{parentName:"tr",align:"center"},"Function"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Get a nice table with Breusch-Pagan test results")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"openbb.econometrics.fdols"),(0,n.kt)("td",{parentName:"tr",align:"center"},"Function"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Perform a First Difference OLS (fdols) regression on Panel data")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"openbb.econometrics.load"),(0,n.kt)("td",{parentName:"tr",align:"center"},"Function"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Load in a dataset to be used within other functionalities")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"openbb.econometrics.ols"),(0,n.kt)("td",{parentName:"tr",align:"center"},"Function"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Perform an Ordinary Least Squares (ols) regression on time-series data")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"openbb.econometrics.comparison"),(0,n.kt)("td",{parentName:"tr",align:"center"},"Function"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Compare different regression models in one table")))),(0,n.kt)("p",null,"Alteratively you can print the contents of the Econometrics SDK with:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-python"},"help(openbb.econometrics)\n")),(0,n.kt)("h2",{id:"examples"},"Examples"),(0,n.kt)("h3",{id:"loading-a-dataset"},"Loading a dataset"),(0,n.kt)("p",null,"The first step in using this menu is loading a dataset. This can be either an example dataset, see the list below, or any locally stored Excel file. To demonstrate the usage of the menu, the ",(0,n.kt)("a",{href:"https://www.statsmodels.org/dev/datasets/generated/longley.html",target:"_blank",rel:"noreferrer noopener"},"longley"),"\ndataset is loaded in. This can be done with the following"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-python"},'example_load = openbb.econometrics.load("anes96")\nfile_load = openbb.econometric.load("PATH_TO_FILE/FILE.xlsx")\n')),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:"left"},"File"),(0,n.kt)("th",{parentName:"tr",align:"right"},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"anes96"),(0,n.kt)("td",{parentName:"tr",align:"right"},"American National Election Survey 1996")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"cancer"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Breast Cancer Data")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"ccard"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Bill Greene\u2019s credit scoring data.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"cancer_china"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Smoking and lung cancer in eight cities in China.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"co2"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Mauna Loa Weekly Atmospheric CO2 Data")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"committee"),(0,n.kt)("td",{parentName:"tr",align:"right"},"First 100 days of the US House of Representatives 1995")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"copper"),(0,n.kt)("td",{parentName:"tr",align:"right"},"World Copper Market 1951-1975 Dataset")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"cpunish"),(0,n.kt)("td",{parentName:"tr",align:"right"},"US Capital Punishment dataset.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"danish_data"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Danish Money Demand Data")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"elnino"),(0,n.kt)("td",{parentName:"tr",align:"right"},"El Nino - Sea Surface Temperatures")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"engel"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Engel (1857) food expenditure data")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"fair"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Affairs dataset")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"fertility"),(0,n.kt)("td",{parentName:"tr",align:"right"},"World Bank Fertility Data")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"grunfeld"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Grunfeld (1950) Investment Data")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"heart"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Transplant Survival Data")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"interest_inflation"),(0,n.kt)("td",{parentName:"tr",align:"right"},"(West) German interest and inflation rate 1972-1998")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"longley"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Longley dataset")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"macrodata"),(0,n.kt)("td",{parentName:"tr",align:"right"},"United States Macroeconomic data")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"modechoice"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Travel Mode Choice")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"nile"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Nile River flows at Ashwan 1871-1970")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"randhie"),(0,n.kt)("td",{parentName:"tr",align:"right"},"RAND Health Insurance Experiment Data")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"scotland"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Taxation Powers Vote for the Scottish Parliament 1997")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"spector"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Spector and Mazzeo (1980) - Program Effectiveness Data")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"stackloss"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Stack loss data")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"star98"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Star98 Educational Dataset")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"statecrim"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Statewide Crime Data 2009")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"strikes"),(0,n.kt)("td",{parentName:"tr",align:"right"},"U.S. Strike Duration Data")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"sunspots"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Yearly sunspots data 1700-2008")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"wage_panel"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Veila and M. Verbeek (1998): Whose Wages Do Unions Raise?")))),(0,n.kt)("h3",{id:"working-with-time-series-data"},"Working with Time Series data"),(0,n.kt)("p",null,"To demonstrate the usage of the Econometrics SDK for time series data, the"),(0,n.kt)("a",{href:"https://www.statsmodels.org/dev/datasets/generated/longley.html",target:"_blank",rel:"noreferrer noopener"},"longley")," dataset is loaded in.",(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-python"},'# Load the data\nlongley = openbb.econometrics.load("longley")\n\n# Show the data\nlongley\n')),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:"right"}),(0,n.kt)("th",{parentName:"tr",align:"right"},"TOTEMP"),(0,n.kt)("th",{parentName:"tr",align:"right"},"GNPDEFL"),(0,n.kt)("th",{parentName:"tr",align:"right"},"GNP"),(0,n.kt)("th",{parentName:"tr",align:"right"},"UNEMP"),(0,n.kt)("th",{parentName:"tr",align:"right"},"ARMED"),(0,n.kt)("th",{parentName:"tr",align:"right"},"POP"),(0,n.kt)("th",{parentName:"tr",align:"right"},"YEAR"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"right"},"0"),(0,n.kt)("td",{parentName:"tr",align:"right"},"60323"),(0,n.kt)("td",{parentName:"tr",align:"right"},"83"),(0,n.kt)("td",{parentName:"tr",align:"right"},"234289"),(0,n.kt)("td",{parentName:"tr",align:"right"},"2356"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1590"),(0,n.kt)("td",{parentName:"tr",align:"right"},"107608"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1947")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"right"},"1"),(0,n.kt)("td",{parentName:"tr",align:"right"},"61122"),(0,n.kt)("td",{parentName:"tr",align:"right"},"88.5"),(0,n.kt)("td",{parentName:"tr",align:"right"},"259426"),(0,n.kt)("td",{parentName:"tr",align:"right"},"2325"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1456"),(0,n.kt)("td",{parentName:"tr",align:"right"},"108632"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1948")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"right"},"2"),(0,n.kt)("td",{parentName:"tr",align:"right"},"60171"),(0,n.kt)("td",{parentName:"tr",align:"right"},"88.2"),(0,n.kt)("td",{parentName:"tr",align:"right"},"258054"),(0,n.kt)("td",{parentName:"tr",align:"right"},"3682"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1616"),(0,n.kt)("td",{parentName:"tr",align:"right"},"109773"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1949")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"right"},"3"),(0,n.kt)("td",{parentName:"tr",align:"right"},"61187"),(0,n.kt)("td",{parentName:"tr",align:"right"},"89.5"),(0,n.kt)("td",{parentName:"tr",align:"right"},"284599"),(0,n.kt)("td",{parentName:"tr",align:"right"},"3351"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1650"),(0,n.kt)("td",{parentName:"tr",align:"right"},"110929"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1950")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"right"},"4"),(0,n.kt)("td",{parentName:"tr",align:"right"},"63221"),(0,n.kt)("td",{parentName:"tr",align:"right"},"96.2"),(0,n.kt)("td",{parentName:"tr",align:"right"},"328975"),(0,n.kt)("td",{parentName:"tr",align:"right"},"2099"),(0,n.kt)("td",{parentName:"tr",align:"right"},"3099"),(0,n.kt)("td",{parentName:"tr",align:"right"},"112075"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1951")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"right"},"5"),(0,n.kt)("td",{parentName:"tr",align:"right"},"63639"),(0,n.kt)("td",{parentName:"tr",align:"right"},"98.1"),(0,n.kt)("td",{parentName:"tr",align:"right"},"346999"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1932"),(0,n.kt)("td",{parentName:"tr",align:"right"},"3594"),(0,n.kt)("td",{parentName:"tr",align:"right"},"113270"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1952")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"right"},"6"),(0,n.kt)("td",{parentName:"tr",align:"right"},"64989"),(0,n.kt)("td",{parentName:"tr",align:"right"},"99"),(0,n.kt)("td",{parentName:"tr",align:"right"},"365385"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1870"),(0,n.kt)("td",{parentName:"tr",align:"right"},"3547"),(0,n.kt)("td",{parentName:"tr",align:"right"},"115094"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1953")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"right"},"7"),(0,n.kt)("td",{parentName:"tr",align:"right"},"63761"),(0,n.kt)("td",{parentName:"tr",align:"right"},"100"),(0,n.kt)("td",{parentName:"tr",align:"right"},"363112"),(0,n.kt)("td",{parentName:"tr",align:"right"},"3578"),(0,n.kt)("td",{parentName:"tr",align:"right"},"3350"),(0,n.kt)("td",{parentName:"tr",align:"right"},"116219"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1954")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"right"},"8"),(0,n.kt)("td",{parentName:"tr",align:"right"},"66019"),(0,n.kt)("td",{parentName:"tr",align:"right"},"101.2"),(0,n.kt)("td",{parentName:"tr",align:"right"},"397469"),(0,n.kt)("td",{parentName:"tr",align:"right"},"2904"),(0,n.kt)("td",{parentName:"tr",align:"right"},"3048"),(0,n.kt)("td",{parentName:"tr",align:"right"},"117388"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1955")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"right"},"9"),(0,n.kt)("td",{parentName:"tr",align:"right"},"67857"),(0,n.kt)("td",{parentName:"tr",align:"right"},"104.6"),(0,n.kt)("td",{parentName:"tr",align:"right"},"419180"),(0,n.kt)("td",{parentName:"tr",align:"right"},"2822"),(0,n.kt)("td",{parentName:"tr",align:"right"},"2857"),(0,n.kt)("td",{parentName:"tr",align:"right"},"118734"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1956")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"right"},"10"),(0,n.kt)("td",{parentName:"tr",align:"right"},"68169"),(0,n.kt)("td",{parentName:"tr",align:"right"},"108.4"),(0,n.kt)("td",{parentName:"tr",align:"right"},"442769"),(0,n.kt)("td",{parentName:"tr",align:"right"},"2936"),(0,n.kt)("td",{parentName:"tr",align:"right"},"2798"),(0,n.kt)("td",{parentName:"tr",align:"right"},"120445"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1957")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"right"},"11"),(0,n.kt)("td",{parentName:"tr",align:"right"},"66513"),(0,n.kt)("td",{parentName:"tr",align:"right"},"110.8"),(0,n.kt)("td",{parentName:"tr",align:"right"},"444546"),(0,n.kt)("td",{parentName:"tr",align:"right"},"4681"),(0,n.kt)("td",{parentName:"tr",align:"right"},"2637"),(0,n.kt)("td",{parentName:"tr",align:"right"},"121950"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1958")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"right"},"12"),(0,n.kt)("td",{parentName:"tr",align:"right"},"68655"),(0,n.kt)("td",{parentName:"tr",align:"right"},"112.6"),(0,n.kt)("td",{parentName:"tr",align:"right"},"482704"),(0,n.kt)("td",{parentName:"tr",align:"right"},"3813"),(0,n.kt)("td",{parentName:"tr",align:"right"},"2552"),(0,n.kt)("td",{parentName:"tr",align:"right"},"123366"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1959")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"right"},"13"),(0,n.kt)("td",{parentName:"tr",align:"right"},"69564"),(0,n.kt)("td",{parentName:"tr",align:"right"},"114.2"),(0,n.kt)("td",{parentName:"tr",align:"right"},"502601"),(0,n.kt)("td",{parentName:"tr",align:"right"},"3931"),(0,n.kt)("td",{parentName:"tr",align:"right"},"2514"),(0,n.kt)("td",{parentName:"tr",align:"right"},"125368"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1960")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"right"},"14"),(0,n.kt)("td",{parentName:"tr",align:"right"},"69331"),(0,n.kt)("td",{parentName:"tr",align:"right"},"115.7"),(0,n.kt)("td",{parentName:"tr",align:"right"},"518173"),(0,n.kt)("td",{parentName:"tr",align:"right"},"4806"),(0,n.kt)("td",{parentName:"tr",align:"right"},"2572"),(0,n.kt)("td",{parentName:"tr",align:"right"},"127852"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1961")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"right"},"15"),(0,n.kt)("td",{parentName:"tr",align:"right"},"70551"),(0,n.kt)("td",{parentName:"tr",align:"right"},"116.9"),(0,n.kt)("td",{parentName:"tr",align:"right"},"554894"),(0,n.kt)("td",{parentName:"tr",align:"right"},"4007"),(0,n.kt)("td",{parentName:"tr",align:"right"},"2827"),(0,n.kt)("td",{parentName:"tr",align:"right"},"130081"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1962")))),(0,n.kt)("p",null,"This can be extended by also showing the descriptive statistics, this can be\ndone with a native command from Pandas as follows:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-python"},"longley.describe()\n")),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:"left"}),(0,n.kt)("th",{parentName:"tr",align:"right"},"TOTEMP"),(0,n.kt)("th",{parentName:"tr",align:"right"},"GNPDEFL"),(0,n.kt)("th",{parentName:"tr",align:"right"},"GNP"),(0,n.kt)("th",{parentName:"tr",align:"right"},"UNEMP"),(0,n.kt)("th",{parentName:"tr",align:"right"},"ARMED"),(0,n.kt)("th",{parentName:"tr",align:"right"},"POP"),(0,n.kt)("th",{parentName:"tr",align:"right"},"YEAR"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"count"),(0,n.kt)("td",{parentName:"tr",align:"right"},"16"),(0,n.kt)("td",{parentName:"tr",align:"right"},"16"),(0,n.kt)("td",{parentName:"tr",align:"right"},"16"),(0,n.kt)("td",{parentName:"tr",align:"right"},"16"),(0,n.kt)("td",{parentName:"tr",align:"right"},"16"),(0,n.kt)("td",{parentName:"tr",align:"right"},"16"),(0,n.kt)("td",{parentName:"tr",align:"right"},"16")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"mean"),(0,n.kt)("td",{parentName:"tr",align:"right"},"65317"),(0,n.kt)("td",{parentName:"tr",align:"right"},"101.681"),(0,n.kt)("td",{parentName:"tr",align:"right"},"387698"),(0,n.kt)("td",{parentName:"tr",align:"right"},"3193.31"),(0,n.kt)("td",{parentName:"tr",align:"right"},"2606.69"),(0,n.kt)("td",{parentName:"tr",align:"right"},"117424"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1954.5")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"std"),(0,n.kt)("td",{parentName:"tr",align:"right"},"3511.97"),(0,n.kt)("td",{parentName:"tr",align:"right"},"10.7916"),(0,n.kt)("td",{parentName:"tr",align:"right"},"99394.9"),(0,n.kt)("td",{parentName:"tr",align:"right"},"934.464"),(0,n.kt)("td",{parentName:"tr",align:"right"},"695.92"),(0,n.kt)("td",{parentName:"tr",align:"right"},"6956.1"),(0,n.kt)("td",{parentName:"tr",align:"right"},"4.76095")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"min"),(0,n.kt)("td",{parentName:"tr",align:"right"},"60171"),(0,n.kt)("td",{parentName:"tr",align:"right"},"83"),(0,n.kt)("td",{parentName:"tr",align:"right"},"234289"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1870"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1456"),(0,n.kt)("td",{parentName:"tr",align:"right"},"107608"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1947")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"25%"),(0,n.kt)("td",{parentName:"tr",align:"right"},"62712.5"),(0,n.kt)("td",{parentName:"tr",align:"right"},"94.525"),(0,n.kt)("td",{parentName:"tr",align:"right"},"317881"),(0,n.kt)("td",{parentName:"tr",align:"right"},"2348.25"),(0,n.kt)("td",{parentName:"tr",align:"right"},"2298"),(0,n.kt)("td",{parentName:"tr",align:"right"},"111788"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1950.75")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"50%"),(0,n.kt)("td",{parentName:"tr",align:"right"},"65504"),(0,n.kt)("td",{parentName:"tr",align:"right"},"100.6"),(0,n.kt)("td",{parentName:"tr",align:"right"},"381427"),(0,n.kt)("td",{parentName:"tr",align:"right"},"3143.5"),(0,n.kt)("td",{parentName:"tr",align:"right"},"2717.5"),(0,n.kt)("td",{parentName:"tr",align:"right"},"116804"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1954.5")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"75%"),(0,n.kt)("td",{parentName:"tr",align:"right"},"68290.5"),(0,n.kt)("td",{parentName:"tr",align:"right"},"111.25"),(0,n.kt)("td",{parentName:"tr",align:"right"},"454086"),(0,n.kt)("td",{parentName:"tr",align:"right"},"3842.5"),(0,n.kt)("td",{parentName:"tr",align:"right"},"3060.75"),(0,n.kt)("td",{parentName:"tr",align:"right"},"122304"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1958.25")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"max"),(0,n.kt)("td",{parentName:"tr",align:"right"},"70551"),(0,n.kt)("td",{parentName:"tr",align:"right"},"116.9"),(0,n.kt)("td",{parentName:"tr",align:"right"},"554894"),(0,n.kt)("td",{parentName:"tr",align:"right"},"4806"),(0,n.kt)("td",{parentName:"tr",align:"right"},"3594"),(0,n.kt)("td",{parentName:"tr",align:"right"},"130081"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1962")))),(0,n.kt)("p",null,"It is possible to check for a variety of assumptions, e.g. normality, unit root,\ngranger and co-integration. The functions ",(0,n.kt)("inlineCode",{parentName:"p"},"openbb.econometric.norm")," and ",(0,n.kt)("inlineCode",{parentName:"p"},"openb.econometrics.root")," are shown below. Note\nthat due to the small size of the dataset, many of these tests are not\nstatistically significant."),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-python"},"openbb.econometrics.norm(longley['GNP'])\n")),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:"left"}),(0,n.kt)("th",{parentName:"tr",align:"right"},"Kurtosis"),(0,n.kt)("th",{parentName:"tr",align:"right"},"Skewness"),(0,n.kt)("th",{parentName:"tr",align:"right"},"Jarque-Bera"),(0,n.kt)("th",{parentName:"tr",align:"right"},"Shapiro-Wilk"),(0,n.kt)("th",{parentName:"tr",align:"right"},"Kolmogorov-Smirnov"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"Statistic"),(0,n.kt)("td",{parentName:"tr",align:"right"},"-1.1944"),(0,n.kt)("td",{parentName:"tr",align:"right"},"0.0525317"),(0,n.kt)("td",{parentName:"tr",align:"right"},"0.835092"),(0,n.kt)("td",{parentName:"tr",align:"right"},"0.962593"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"p-value"),(0,n.kt)("td",{parentName:"tr",align:"right"},"0.23232"),(0,n.kt)("td",{parentName:"tr",align:"right"},"0.95811"),(0,n.kt)("td",{parentName:"tr",align:"right"},"0.65866"),(0,n.kt)("td",{parentName:"tr",align:"right"},"0.709"),(0,n.kt)("td",{parentName:"tr",align:"right"},"0")))),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-python"},"openbb.econometrics.root(longley['POP'])\n")),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:"left"}),(0,n.kt)("th",{parentName:"tr",align:"right"},"ADF"),(0,n.kt)("th",{parentName:"tr",align:"right"},"KPSS"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"Test Statistic"),(0,n.kt)("td",{parentName:"tr",align:"right"},"2.35204"),(0,n.kt)("td",{parentName:"tr",align:"right"},"0.324887")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"P-Value"),(0,n.kt)("td",{parentName:"tr",align:"right"},"0.998986"),(0,n.kt)("td",{parentName:"tr",align:"right"},"0.1")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"NLags"),(0,n.kt)("td",{parentName:"tr",align:"right"},"6"),(0,n.kt)("td",{parentName:"tr",align:"right"},"0")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"Nobs"),(0,n.kt)("td",{parentName:"tr",align:"right"},"9"),(0,n.kt)("td",{parentName:"tr",align:"right"},"0")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"ICBest"),(0,n.kt)("td",{parentName:"tr",align:"right"},"113.054"),(0,n.kt)("td",{parentName:"tr",align:"right"},"0")))),(0,n.kt)("p",null,"The longley dataset is known for the ability to create an OLS regression that results in a ",(0,n.kt)("a",{href:"https://www.investopedia.com/terms/r/r-squared.asp",target:"_blank",rel:"noreferrer noopener"},"R-squared")," of 1.0 due to the fact that the US macroeconomic variables are known to be highly collinear. See the following regression performed with ",(0,n.kt)("inlineCode",{parentName:"p"},"openbb.econometrics.ols")," as follows:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-python"},"# Perform the regression technique. TOTEMP is dependent, all others independent\nols_regression = openbb.econometrics.ols(longley['TOTEMP'], longley.drop('TOTEMP', axis=1))\n\n# Show the model summary\nols_regression.summary()\n")),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre"}," OLS Regression Results\n=======================================================================================\nDep. Variable: TOTEMP R-squared (uncentered): 1.000\nModel: OLS Adj. R-squared (uncentered): 1.000\nMethod: Least Squares F-statistic: 5.052e+04\nDate: Mon, 21 Nov 2022 Prob (F-statistic): 8.20e-22\nTime: 10:54:19 Log-Likelihood: -117.56\nNo. Observations: 16 AIC: 247.1\nDf Residuals: 10 BIC: 251.8\nDf Model: 6\nCovariance Type: nonrobust\n==============================================================================\n coef std err t P>|t| [0.025 0.975]\n------------------------------------------------------------------------------\nGNPDEFL -52.9936 129.545 -0.409 0.691 -341.638 235.650\nGNP 0.0711 0.030 2.356 0.040 0.004 0.138\nUNEMP -0.4235 0.418 -1.014 0.335 -1.354 0.507\nARMED -0.5726 0.279 -2.052 0.067 -1.194 0.049\nPOP -0.4142 0.321 -1.289 0.226 -1.130 0.302\nYEAR 48.4179 17.689 2.737 0.021 9.003 87.832\n==============================================================================\nOmnibus: 1.443 Durbin-Watson: 1.277\nProb(Omnibus): 0.486 Jarque-Bera (JB): 0.605\nSkew: 0.476 Prob(JB): 0.739\nKurtosis: 3.031 Cond. No. 4.56e+05\n==============================================================================\n\nNotes:\n[1] R\xb2 is computed without centering (uncentered) since the model does not contain a constant.\n[2] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n[3] The condition number is large, 4.56e+05. This might indicate that there are\nstrong multicollinearity or other numerical problems.\n")),(0,n.kt)("p",null,"After running the regression estimation, it is possible to perform tests on the residuals of the model. E.g. for autocorrelation and heteroscedasity as shown below with the ",(0,n.kt)("inlineCode",{parentName:"p"},"openbb.econometrics.bgod")," and ",(0,n.kt)("inlineCode",{parentName:"p"},"openbb.econometrics.bpag")," functions."),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-python"},"# Perform Breusch Goodfrey auto-correlation test\nopenbb.econometrics.bgod(ols_regression)\n")),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:"left"}),(0,n.kt)("th",{parentName:"tr",align:"right"},"0"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"lm-stat"),(0,n.kt)("td",{parentName:"tr",align:"right"},"10.3471")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"p-value"),(0,n.kt)("td",{parentName:"tr",align:"right"},"0.0158347")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"f-stat"),(0,n.kt)("td",{parentName:"tr",align:"right"},"0.0970889")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"fp-value"),(0,n.kt)("td",{parentName:"tr",align:"right"},"0.958799")))),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-python"},"# Perform Breusch Pagan heteroskedacity test\nopenbb.econometrics.bpag(ols_regression)\n")),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:"left"}),(0,n.kt)("th",{parentName:"tr",align:"right"},"0"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"lm-stat"),(0,n.kt)("td",{parentName:"tr",align:"right"},"7.90331")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"p-value"),(0,n.kt)("td",{parentName:"tr",align:"right"},"0.161645")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"f-stat"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1.62686")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"fp-value"),(0,n.kt)("td",{parentName:"tr",align:"right"},"0.236596")))),(0,n.kt)("h3",{id:"working-with-panel-data"},"Working with Panel data"),(0,n.kt)("p",null,"Within the examples there is one panel dataset available named ",(0,n.kt)("inlineCode",{parentName:"p"},"wage_panel"),". This is a dataset from the paper by Vella and M. Verbeek (1998), \u201cWhose Wages Do Unions Raise? A Dynamic Model of Unionism and Wage Rate Determination for Young Men,\u201d Journal of Applied Econometrics 13, 163-183. This is a well-known dataset also used within Chapter 14 of ",(0,n.kt)("a",{href:"https://www.amazon.com/Introductory-Econometrics-Modern-Approach-Economics/dp/1111531048",target:"_blank",rel:"noreferrer noopener"},"Introduction to Econometrics by Jeffrey Wooldridge"),"."),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-python"},'# Load the data\nwage_panel = openbb.econometrics.load("wage_panel")\n\n# Show the data\nwage_panel\n')),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:"right"}),(0,n.kt)("th",{parentName:"tr",align:"right"},"nr"),(0,n.kt)("th",{parentName:"tr",align:"right"},"year"),(0,n.kt)("th",{parentName:"tr",align:"right"},"black"),(0,n.kt)("th",{parentName:"tr",align:"right"},"exper"),(0,n.kt)("th",{parentName:"tr",align:"right"},"hisp"),(0,n.kt)("th",{parentName:"tr",align:"right"},"hours"),(0,n.kt)("th",{parentName:"tr",align:"right"},"married"),(0,n.kt)("th",{parentName:"tr",align:"right"},"educ"),(0,n.kt)("th",{parentName:"tr",align:"right"},"union"),(0,n.kt)("th",{parentName:"tr",align:"right"},"lwage"),(0,n.kt)("th",{parentName:"tr",align:"right"},"expersq"),(0,n.kt)("th",{parentName:"tr",align:"right"},"occupation"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"right"},"0"),(0,n.kt)("td",{parentName:"tr",align:"right"},"13"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1980"),(0,n.kt)("td",{parentName:"tr",align:"right"},"0"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1"),(0,n.kt)("td",{parentName:"tr",align:"right"},"0"),(0,n.kt)("td",{parentName:"tr",align:"right"},"2672"),(0,n.kt)("td",{parentName:"tr",align:"right"},"0"),(0,n.kt)("td",{parentName:"tr",align:"right"},"14"),(0,n.kt)("td",{parentName:"tr",align:"right"},"0"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1.19754"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1"),(0,n.kt)("td",{parentName:"tr",align:"right"},"9")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"right"},"1"),(0,n.kt)("td",{parentName:"tr",align:"right"},"13"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1981"),(0,n.kt)("td",{parentName:"tr",align:"right"},"0"),(0,n.kt)("td",{parentName:"tr",align:"right"},"2"),(0,n.kt)("td",{parentName:"tr",align:"right"},"0"),(0,n.kt)("td",{parentName:"tr",align:"right"},"2320"),(0,n.kt)("td",{parentName:"tr",align:"right"},"0"),(0,n.kt)("td",{parentName:"tr",align:"right"},"14"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1.85306"),(0,n.kt)("td",{parentName:"tr",align:"right"},"4"),(0,n.kt)("td",{parentName:"tr",align:"right"},"9")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"right"},"2"),(0,n.kt)("td",{parentName:"tr",align:"right"},"13"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1982"),(0,n.kt)("td",{parentName:"tr",align:"right"},"0"),(0,n.kt)("td",{parentName:"tr",align:"right"},"3"),(0,n.kt)("td",{parentName:"tr",align:"right"},"0"),(0,n.kt)("td",{parentName:"tr",align:"right"},"2940"),(0,n.kt)("td",{parentName:"tr",align:"right"},"0"),(0,n.kt)("td",{parentName:"tr",align:"right"},"14"),(0,n.kt)("td",{parentName:"tr",align:"right"},"0"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1.34446"),(0,n.kt)("td",{parentName:"tr",align:"right"},"9"),(0,n.kt)("td",{parentName:"tr",align:"right"},"9")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"right"},"3"),(0,n.kt)("td",{parentName:"tr",align:"right"},"13"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1983"),(0,n.kt)("td",{parentName:"tr",align:"right"},"0"),(0,n.kt)("td",{parentName:"tr",align:"right"},"4"),(0,n.kt)("td",{parentName:"tr",align:"right"},"0"),(0,n.kt)("td",{parentName:"tr",align:"right"},"2960"),(0,n.kt)("td",{parentName:"tr",align:"right"},"0"),(0,n.kt)("td",{parentName:"tr",align:"right"},"14"),(0,n.kt)("td",{parentName:"tr",align:"right"},"0"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1.43321"),(0,n.kt)("td",{parentName:"tr",align:"right"},"16"),(0,n.kt)("td",{parentName:"tr",align:"right"},"9")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"right"},"4"),(0,n.kt)("td",{parentName:"tr",align:"right"},"13"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1984"),(0,n.kt)("td",{parentName:"tr",align:"right"},"0"),(0,n.kt)("td",{parentName:"tr",align:"right"},"5"),(0,n.kt)("td",{parentName:"tr",align:"right"},"0"),(0,n.kt)("td",{parentName:"tr",align:"right"},"3071"),(0,n.kt)("td",{parentName:"tr",align:"right"},"0"),(0,n.kt)("td",{parentName:"tr",align:"right"},"14"),(0,n.kt)("td",{parentName:"tr",align:"right"},"0"),(0,n.kt)("td",{parentName:"tr",align:"right"},"1.56812"),(0,n.kt)("td",{parentName:"tr",align:"right"},"25"),(0,n.kt)("td",{parentName:"tr",align:"right"},"5")))),(0,n.kt)("p",null,"4360 rows \xd7 12 columns"),(0,n.kt)("p",null,"To run panel regressions, it is important to define both ",(0,n.kt)("em",{parentName:"p"},"entity")," (e.g. company) and ",(0,n.kt)("em",{parentName:"p"},"time")," (e.g. year).\nTrying to run the ",(0,n.kt)("inlineCode",{parentName:"p"},"openbb.econometrics.re")," function would right now result in the following:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre"},"openbb.econometrics.re(wage_panel['black'], wage_panel.drop('black', axis=1))\n\nError: Series can only be used with a 2-level MultiIndex\n")),(0,n.kt)("p",null,"This can be corrected by setting a multi-index, this can be done with the following:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-python"},"wage_panel = wage_panel.set_index(['nr', 'year'], drop=False)\n")),(0,n.kt)("p",null,"The columns ",(0,n.kt)("inlineCode",{parentName:"p"},"nr")," and ",(0,n.kt)("inlineCode",{parentName:"p"},"year")," still exists within the dataset and could have been dropped with the if desired. However, in this case the ",(0,n.kt)("inlineCode",{parentName:"p"},"year")," column is relevant for generating time effects in Pooled OLS, Fixed Effects and Random Effects estimations. To be able to do this, the type of the year column needs to be changed accordingly to 'category' so it is perceived as categorical data. This can be done with the following:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-python"},"# Observe the current types\nwage_panel.dtypes\n")),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:"left"}),(0,n.kt)("th",{parentName:"tr",align:"left"},"0"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"nr"),(0,n.kt)("td",{parentName:"tr",align:"left"},"int64")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"year"),(0,n.kt)("td",{parentName:"tr",align:"left"},"int64")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"black"),(0,n.kt)("td",{parentName:"tr",align:"left"},"int64")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"exper"),(0,n.kt)("td",{parentName:"tr",align:"left"},"int64")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"hisp"),(0,n.kt)("td",{parentName:"tr",align:"left"},"int64")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"hours"),(0,n.kt)("td",{parentName:"tr",align:"left"},"int64")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"married"),(0,n.kt)("td",{parentName:"tr",align:"left"},"int64")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"educ"),(0,n.kt)("td",{parentName:"tr",align:"left"},"int64")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"union"),(0,n.kt)("td",{parentName:"tr",align:"left"},"int64")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"lwage"),(0,n.kt)("td",{parentName:"tr",align:"left"},"float64")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"expersq"),(0,n.kt)("td",{parentName:"tr",align:"left"},"int64")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"occupation"),(0,n.kt)("td",{parentName:"tr",align:"left"},"int64")))),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-python"},"# Change the type of year to categorical\nwage_panel['year'] = wage_panel['year'].astype('category')\n\n# Observe the changed types\nwage_panel.dtypes\n")),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:"left"}),(0,n.kt)("th",{parentName:"tr",align:"left"},"0"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"nr"),(0,n.kt)("td",{parentName:"tr",align:"left"},"int64")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"year"),(0,n.kt)("td",{parentName:"tr",align:"left"},"category")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"black"),(0,n.kt)("td",{parentName:"tr",align:"left"},"int64")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"exper"),(0,n.kt)("td",{parentName:"tr",align:"left"},"int64")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"hisp"),(0,n.kt)("td",{parentName:"tr",align:"left"},"int64")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"hours"),(0,n.kt)("td",{parentName:"tr",align:"left"},"int64")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"married"),(0,n.kt)("td",{parentName:"tr",align:"left"},"int64")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"educ"),(0,n.kt)("td",{parentName:"tr",align:"left"},"int64")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"union"),(0,n.kt)("td",{parentName:"tr",align:"left"},"int64")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"lwage"),(0,n.kt)("td",{parentName:"tr",align:"left"},"float64")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"expersq"),(0,n.kt)("td",{parentName:"tr",align:"left"},"int64")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"occupation"),(0,n.kt)("td",{parentName:"tr",align:"left"},"int64")))),(0,n.kt)("p",null,"The dataset is now properly configured to allow for proper panel regressions. The Econometrics SDK supports the following regression techniques."),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:"left"},"Path"),(0,n.kt)("th",{parentName:"tr",align:"right"},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"openbb.econometrics.ols"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Perform an Ordinary Least Squares (ols) regression on time-series data")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"openbb.econometrics.pols"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Perform a Pooled OLS (pols) regression on Panel data")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"openbb.econometrics.bols"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Perform a Between OLS (bols) regression on Panel data")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"openbb.econometrics.fdols"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Perform a First Difference OLS (fdols) regression on Panel data")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"openbb.econometrics.fe"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Perform a Fixed Effects (fe) regression on Panel data")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},"openbb.econometrics.re"),(0,n.kt)("td",{parentName:"tr",align:"right"},"Perform a Random Effects (re) regression on Panel data")))),(0,n.kt)("p",null,"As an example, a ",(0,n.kt)("strong",{parentName:"p"},"Random Effects")," regression is performed. This can be done as follows:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-python"},"# Perform the Random Effects regression technique\nrandom_effects_regression = openbb.econometrics.re(wage_panel['lwage'], wage_panel[['black', 'hisp', 'exper', 'expersq', 'married', 'educ', 'union','year']])\n\n# Show the results\nrandom_effects_regression.summary\n")),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre"}," RandomEffects Estimation Summary\n================================================================================\nDep. Variable: lwage R-squared: 0.1806\nEstimator: RandomEffects R-squared (Between): 0.1853\nNo. Observations: 4360 R-squared (Within): 0.1799\nDate: Mon, Nov 21 2022 R-squared (Overall): 0.1828\nTime: 11:13:36 Log-likelihood -1622.5\nCov. Estimator: Unadjusted\n F-statistic: 68.409\nEntities: 545 P-value 0.0000\nAvg Obs: 8.0000 Distribution: F(14,4345)\nMin Obs: 8.0000\nMax Obs: 8.0000 F-statistic (robust): 68.409\n P-value 0.0000\nTime periods: 8 Distribution: F(14,4345)\nAvg Obs: 545.00\nMin Obs: 545.00\nMax Obs: 545.00\n\n Parameter Estimates\n==============================================================================\n Parameter Std. Err. T-stat P-value Lower CI Upper CI\n------------------------------------------------------------------------------\nconst 0.0234 0.1514 0.1546 0.8771 -0.2735 0.3203\nblack -0.1394 0.0480 -2.9054 0.0037 -0.2334 -0.0453\nhisp 0.0217 0.0428 0.5078 0.6116 -0.0622 0.1057\nexper 0.1058 0.0154 6.8706 0.0000 0.0756 0.1361\nexpersq -0.0047 0.0007 -6.8623 0.0000 -0.0061 -0.0034\nmarried 0.0638 0.0168 3.8035 0.0001 0.0309 0.0967\neduc 0.0919 0.0107 8.5744 0.0000 0.0709 0.1129\nunion 0.1059 0.0179 5.9289 0.0000 0.0709 0.1409\nyear.1981 0.0404 0.0247 1.6362 0.1019 -0.0080 0.0889\nyear.1982 0.0309 0.0324 0.9519 0.3412 -0.0327 0.0944\nyear.1983 0.0202 0.0417 0.4840 0.6284 -0.0616 0.1020\nyear.1984 0.0430 0.0515 0.8350 0.4037 -0.0580 0.1440\nyear.1985 0.0577 0.0615 0.9383 0.3482 -0.0629 0.1782\nyear.1986 0.0918 0.0716 1.2834 0.1994 -0.0485 0.2321\nyear.1987 0.1348 0.0817 1.6504 0.0989 -0.0253 0.2950\n==============================================================================\n")))}d.isMDXComponent=!0}}]); |