{"id":188178,"date":"2023-04-11T09:47:18","date_gmt":"2023-04-11T13:47:18","guid":{"rendered":"https:\/\/ibkrcampus.com\/?p=188178"},"modified":"2023-04-11T19:41:28","modified_gmt":"2023-04-11T23:41:28","slug":"multiple-linear-regression-using-tensorflow","status":"publish","type":"post","link":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/multiple-linear-regression-using-tensorflow\/","title":{"rendered":"Multiple Linear Regression using Tensorflow"},"content":{"rendered":"\n<p>This post implements the standard matrix based estimation of multiple linear regression model using Tensorflow. With this example, we can learn some basic vector or matrix operations in Tensorflow and also Python.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Linear Regression using Tensorflow<\/strong><\/h3>\n\n\n\n<p>To study some basic vector or matrix operations in Tensorflow which is not familiar to us, we take the linear regression model as an example, which is familiar to us.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-linear-regression-model\">Linear Regression model<\/h3>\n\n\n\n<p>Multiple linear regression model has the following expression.&nbsp;(t = 1, 2,\u2026, n)<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"545\" height=\"66\" data-src=\"\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/Multiple-Linear-Regression-using-Tensorflow-1.png\" alt=\"\" class=\"wp-image-188182 lazyload\" data-srcset=\"https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/Multiple-Linear-Regression-using-Tensorflow-1.png 545w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/Multiple-Linear-Regression-using-Tensorflow-1-300x36.png 300w\" data-sizes=\"(max-width: 545px) 100vw, 545px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 545px; aspect-ratio: 545\/66;\" \/><\/figure>\n\n\n\n<p>Here&nbsp;Y<sub>t<\/sub>&nbsp;is the dependent variable and&nbsp;X<sub>t<\/sub>=(1,X<sub>1t<\/sub>,X<sub>2t<\/sub>,\u2026,X<sub>p\u22121,t<\/sub>)&nbsp;is a set of independent variables.&nbsp;\u03b2=(\u03b2<sub>0<\/sub>,\u03b2<sub>1<\/sub>,\u03b2<sub>2<\/sub>,\u2026,\u03b2<sub>p\u22121<\/sub>)&nbsp;is a vector of parameters and&nbsp;\u03f5<sub>t<\/sub>&nbsp;is a vector or stochastic disturbances.<\/p>\n\n\n\n<p>It is worth noting that&nbsp;<strong>the number of parameters is&nbsp;p<\/strong>&nbsp;and&nbsp;<strong>the number of variables is&nbsp;p\u22121<\/strong><\/p>\n\n\n\n<p>Stochastic error term&nbsp;\u03f5<sub>t<\/sub>&nbsp;&nbsp;is assumed in the following way.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"567\" height=\"111\" data-src=\"\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/Multiple-Linear-Regression-using-Tensorflow-2.png\" alt=\"\" class=\"wp-image-188183 lazyload\" data-srcset=\"https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/Multiple-Linear-Regression-using-Tensorflow-2.png 567w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/Multiple-Linear-Regression-using-Tensorflow-2-300x59.png 300w\" data-sizes=\"(max-width: 567px) 100vw, 567px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 567px; aspect-ratio: 567\/111;\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Least Squares Estimator<\/h3>\n\n\n\n<p>To estimate the regression coefficients&nbsp;\u03b2, we use least squares which minimize the sum of squared residuals. In a matrix notation, the least squares estimator is calculated in the following way.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"548\" height=\"176\" data-src=\"\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/Multiple-Linear-Regression-using-Tensorflow-3.png\" alt=\"\" class=\"wp-image-188184 lazyload\" data-srcset=\"https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/Multiple-Linear-Regression-using-Tensorflow-3.png 548w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/Multiple-Linear-Regression-using-Tensorflow-3-300x96.png 300w\" data-sizes=\"(max-width: 548px) 100vw, 548px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 548px; aspect-ratio: 548\/176;\" \/><\/figure>\n\n\n\n<p>Differentiating&nbsp;<em>S(\u03b2)<\/em>&nbsp;with respect to&nbsp;<em>\u03b2<\/em>&nbsp;and set to zero results in the following the normal equation.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"529\" height=\"60\" data-src=\"\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/Multiple-Linear-Regression-using-Tensorflow-4.png\" alt=\"\" class=\"wp-image-188185 lazyload\" data-srcset=\"https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/Multiple-Linear-Regression-using-Tensorflow-4.png 529w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/Multiple-Linear-Regression-using-Tensorflow-4-300x34.png 300w\" data-sizes=\"(max-width: 529px) 100vw, 529px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 529px; aspect-ratio: 529\/60;\" \/><\/figure>\n\n\n\n<p>Hence the least squares estimator of&nbsp;<em>\u03b2<\/em>&nbsp;is<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"558\" height=\"46\" data-src=\"\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/Multiple-Linear-Regression-using-Tensorflow-11.png\" alt=\"\" class=\"wp-image-188241 lazyload\" data-srcset=\"https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/Multiple-Linear-Regression-using-Tensorflow-11.png 558w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/Multiple-Linear-Regression-using-Tensorflow-11-300x25.png 300w\" data-sizes=\"(max-width: 558px) 100vw, 558px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 558px; aspect-ratio: 558\/46;\" \/><\/figure>\n\n\n\n<p><strong>Standard Errors<\/strong><\/p>\n\n\n\n<p><img decoding=\"async\" data-src=\"\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/Multiple-Linear-Regression-using-Tensorflow-5.png\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\">follows the following distribution<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"550\" height=\"193\" data-src=\"\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/Multiple-Linear-Regression-using-Tensorflow-6.png\" alt=\"\" class=\"wp-image-188188 lazyload\" data-srcset=\"https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/Multiple-Linear-Regression-using-Tensorflow-6.png 550w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/Multiple-Linear-Regression-using-Tensorflow-6-300x105.png 300w\" data-sizes=\"(max-width: 550px) 100vw, 550px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 550px; aspect-ratio: 550\/193;\" \/><\/figure>\n\n\n\n<p>Since <img decoding=\"async\" data-src=\"\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/Multiple-Linear-Regression-using-Tensorflow-7.png\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\"> is the population parameter we don&#8217;t know, <img decoding=\"async\" data-src=\"\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/Multiple-Linear-Regression-using-Tensorflow-7.png\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\"> is replaced with <img decoding=\"async\" data-src=\"\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/Multiple-Linear-Regression-using-Tensorflow-8.png\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\"> the sample estimate of <img decoding=\"async\" data-src=\"\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/Multiple-Linear-Regression-using-Tensorflow-9.png\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\"><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"508\" height=\"120\" data-src=\"\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/Multiple-Linear-Regression-using-Tensorflow-10.png\" alt=\"\" class=\"wp-image-188192 lazyload\" data-srcset=\"https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/Multiple-Linear-Regression-using-Tensorflow-10.png 508w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/Multiple-Linear-Regression-using-Tensorflow-10-300x71.png 300w\" data-sizes=\"(max-width: 508px) 100vw, 508px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 508px; aspect-ratio: 508\/120;\" \/><\/figure>\n\n\n\n<p>To estimate <img decoding=\"async\" data-src=\"\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/Multiple-Linear-Regression-using-Tensorflow-9.png\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\"> we need to estimate&nbsp;<em>p<\/em>&nbsp;parameters (<strong>1 intercept + (p-1) coefficients<\/strong>),in other words,&nbsp;<em>p&nbsp;<\/em>degree of freedom is lost.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Python code using Tensorflow<\/h3>\n\n\n\n<p>The purpose of this post is to learn some basic vector or matrix operations (matrix multiplication, transpose, inverse, etc.) in Tensorflow. As an example, we use the diabetes data from&nbsp;<strong>sklearn<\/strong>&nbsp;package which has 10 explanatory variables and 1 response variable.<\/p>\n\n\n\n<p>To check the estimation accuracy, regression outputs from sklearn, statsmodels are also considered.&nbsp;<strong>pd.DataFrame()<\/strong>&nbsp;from&nbsp;<strong>pandas<\/strong>&nbsp;package is used for make a table from np.array or Tenslorflow objects.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># -*- coding: utf-8 -*-\n\"\"\"\n#========================================================#\n# Quantitative ALM, Financial Econometrics &amp; Derivatives \n# ML\/DL using R, Python, Tensorflow by Sang-Heon Lee \n#\n# https:\/\/kiandlee.blogspot.com\n#--------------------------------------------------------#\n# Linear Regression model using Tensorflow \n#========================================================#\n\"\"\"\n \nimport pandas as pd\nimport numpy as np\nfrom sklearn import datasets, linear_model\n \n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n  Load the diabetes dataset\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\nX, y = datasets.load_diabetes(return_X_y=True)\nnrow, ncol = X.shape; print (nrow, ncol) \nnparam = ncol+1 # number of parameters\n \nv_row_name = np.hstack(\n    [[\"const\"], [\"X\"+str(i) for i in range(1,ncol+1)]])\n \n \n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n  1) using sklearn\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\nreg_mod = linear_model.LinearRegression() # object\nreg_mod.fit(X, y) # estimation or tradining\n \ndf_out_sk = pd.DataFrame(\n    np.hstack([reg_mod.intercept_, reg_mod.coef_]))\ndf_out_sk.columns = [\"estimate\"]\ndf_out_sk.index   = v_row_name\nprint(\"\\n========== using sklearn ==========\")\nprint(df_out_sk)\n \n \n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n  2) using statsmodels\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\nimport statsmodels.api as sm\nXw1 = sm.add_constant(X)\nols = sm.OLS(y, Xw1)\nfit = ols.fit()\n#print(fit.summary())\n \ndf_out_ss = pd.DataFrame(np.vstack([fit.params, \n                fit.bse, fit.params\/fit.bse]).T)\ndf_out_ss.columns = [\"estimate\", \"std.err\", \"t-stats\"]\ndf_out_ss.index   = v_row_name\n \nprint(\"\\n========== using statsmodels ==========\")\nprint(df_out_ss)\n \n \n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n  3) using matrix formula (np.array)\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\nmX    = np.column_stack([np.ones(nrow),X])\nbeta  = np.linalg.inv(mX.T.dot(mX)).dot(mX.T).dot(y)\nerr   = y - mX.dot(beta)\n \ns2    = err.T.dot(err)\/(nrow-ncol-1)\ncov_beta = s2*np.linalg.inv(mX.T.dot(mX))\nstd_err  = np.sqrt(np.diag(cov_beta))\n \ndf_out_np = pd.DataFrame(\n    np.row_stack((beta, std_err, beta\/std_err)).T)\ndf_out_np.columns = [\"estimate\", \"std.err\", \"t-stats\"]\ndf_out_np.index   = v_row_name\n \nprint(\"\\n========== using np.array ==========\")\nprint(df_out_np)\n \n \n\"\"\"\n#==================================================\n# 4) using matrix formula (Tensorflow)\n#==================================================\n\"\"\"\nimport tensorflow as tf\n \n# from np.array\ny = tf.constant(y, shape=[nrow, 1]) \nX = tf.constant(X, shape=[nrow, ncol])\n \n# need double tensor\none  = tf.cast(tf.ones([nrow, 1]), tf.float64)\noneX = tf.concat([one, X], 1); # 1, X\n \nXtX  = tf.matmul(oneX, oneX ,transpose_a=True)\nXty  = tf.matmul(oneX, y  ,transpose_a=True)\nbeta = tf.matmul(tf.linalg.inv(XtX),Xty)\nerr  = y - tf.matmul(oneX, beta)\ns2   = tf.matmul(err, err, transpose_a=True)\/(nrow-nparam)\ncov_beta = s2*tf.linalg.inv(XtX)\nstd_err  = tf.sqrt(tf.linalg.diag_part(cov_beta))\nbeta = tf.reshape(beta,[nparam])\n \nest_out   = tf.stack([beta, std_err, beta\/std_err],1)\ndf_out_tf = pd.DataFrame(np.asarray(est_out))\ndf_out_tf.columns = [\"estimate\", \"std.err\", \"t-stats\"]\ndf_out_tf.index   = v_row_name\n \nprint(\"\\n========== using Tensorflow ==========\")\nprint(df_out_tf)<\/pre>\n\n\n\n<p>We can easily find that all results are the same as expected. In particular, two approaches using np.array and Tensorflow has the nearly same structure.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"802\" height=\"589\" data-src=\"\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/four_ols_results-sh-fintech.png\" alt=\"\" class=\"wp-image-188193 lazyload\" data-srcset=\"https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/four_ols_results-sh-fintech.png 802w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/four_ols_results-sh-fintech-700x514.png 700w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/four_ols_results-sh-fintech-300x220.png 300w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/four_ols_results-sh-fintech-768x564.png 768w\" data-sizes=\"(max-width: 802px) 100vw, 802px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 802px; aspect-ratio: 802\/589;\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Concluding Remarks<\/h3>\n\n\n\n<p>This post dealt with how to use&nbsp;<strong>some basic vector or matrix operations of Tensorflow<\/strong>. It is similar to that of&nbsp;<strong>np.arrary<\/strong>&nbsp;but there are some subtle differences about manipulating array objects. Based on these, if we know remaining subjects such as for-loop, function definition, and optimization, it is expected that we can implement state space model using Kalman filter and estimate its parameters.<\/p>\n\n\n\n<p><em>Originally posted on <a href=\"https:\/\/kiandlee.blogspot.com\/2022\/03\/multiple-linear-regression-Tensorflow.html\">SH Fintech Modeling<\/a> blog. <\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This post implements the standard matrix based estimation of multiple linear regression model using Tensorflow. <\/p>\n","protected":false},"author":662,"featured_media":188194,"comment_status":"closed","ping_status":"closed","sticky":true,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[339,343,349,338],"tags":[15063,4404,1225,1224,595,6810,924],"contributors-categories":[13728],"class_list":{"0":"post-188178","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-data-science","8":"category-programing-languages","9":"category-python-development","10":"category-ibkr-quant-news","11":"tag-least-squares-estimator","12":"tag-linear-regression","13":"tag-numpy","14":"tag-pandas","15":"tag-python","16":"tag-sklearn","17":"tag-tensorflow","18":"contributors-categories-sh-fintech-modeling"},"pp_statuses_selecting_workflow":false,"pp_workflow_action":"current","pp_status_selection":"publish","acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Multiple Linear Regression using Tensorflow | IBKR Quant<\/title>\n<meta name=\"description\" content=\"This post implements the standard matrix based estimation of multiple linear regression model using Tensorflow.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.interactivebrokers.com\/campus\/wp-json\/wp\/v2\/posts\/188178\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Multiple Linear Regression using Tensorflow | IBKR Campus US\" \/>\n<meta property=\"og:description\" content=\"This post implements the standard matrix based estimation of multiple linear regression model using Tensorflow.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/multiple-linear-regression-using-tensorflow\/\" \/>\n<meta property=\"og:site_name\" content=\"IBKR Campus US\" \/>\n<meta property=\"article:published_time\" content=\"2023-04-11T13:47:18+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-04-11T23:41:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/python-quant.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1000\" \/>\n\t<meta property=\"og:image:height\" content=\"563\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Sang-Heon Lee\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sang-Heon Lee\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\n\t    \"@context\": \"https:\\\/\\\/schema.org\",\n\t    \"@graph\": [\n\t        {\n\t            \"@type\": \"NewsArticle\",\n\t            \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/multiple-linear-regression-using-tensorflow\\\/#article\",\n\t            \"isPartOf\": {\n\t                \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/multiple-linear-regression-using-tensorflow\\\/\"\n\t            },\n\t            \"author\": {\n\t                \"name\": \"Sang-Heon Lee\",\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#\\\/schema\\\/person\\\/0a959ff9de7f0465a07baa1fe1ae0200\"\n\t            },\n\t            \"headline\": \"Multiple Linear Regression using Tensorflow\",\n\t            \"datePublished\": \"2023-04-11T13:47:18+00:00\",\n\t            \"dateModified\": \"2023-04-11T23:41:28+00:00\",\n\t            \"mainEntityOfPage\": {\n\t                \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/multiple-linear-regression-using-tensorflow\\\/\"\n\t            },\n\t            \"wordCount\": 454,\n\t            \"publisher\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#organization\"\n\t            },\n\t            \"image\": {\n\t                \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/multiple-linear-regression-using-tensorflow\\\/#primaryimage\"\n\t            },\n\t            \"thumbnailUrl\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2023\\\/04\\\/python-quant.jpg\",\n\t            \"keywords\": [\n\t                \"Least Squares Estimator\",\n\t                \"Linear Regression\",\n\t                \"NumPy\",\n\t                \"Pandas\",\n\t                \"Python\",\n\t                \"sklearn\",\n\t                \"TensorFlow\"\n\t            ],\n\t            \"articleSection\": [\n\t                \"Data Science\",\n\t                \"Programming Languages\",\n\t                \"Python Development\",\n\t                \"Quant\"\n\t            ],\n\t            \"inLanguage\": \"en-US\"\n\t        },\n\t        {\n\t            \"@type\": \"WebPage\",\n\t            \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/multiple-linear-regression-using-tensorflow\\\/\",\n\t            \"url\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/multiple-linear-regression-using-tensorflow\\\/\",\n\t            \"name\": \"Multiple Linear Regression using Tensorflow | IBKR Campus US\",\n\t            \"isPartOf\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#website\"\n\t            },\n\t            \"primaryImageOfPage\": {\n\t                \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/multiple-linear-regression-using-tensorflow\\\/#primaryimage\"\n\t            },\n\t            \"image\": {\n\t                \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/multiple-linear-regression-using-tensorflow\\\/#primaryimage\"\n\t            },\n\t            \"thumbnailUrl\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2023\\\/04\\\/python-quant.jpg\",\n\t            \"datePublished\": \"2023-04-11T13:47:18+00:00\",\n\t            \"dateModified\": \"2023-04-11T23:41:28+00:00\",\n\t            \"description\": \"This post implements the standard matrix based estimation of multiple linear regression model using Tensorflow.\",\n\t            \"inLanguage\": \"en-US\",\n\t            \"potentialAction\": [\n\t                {\n\t                    \"@type\": \"ReadAction\",\n\t                    \"target\": [\n\t                        \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/multiple-linear-regression-using-tensorflow\\\/\"\n\t                    ]\n\t                }\n\t            ]\n\t        },\n\t        {\n\t            \"@type\": \"ImageObject\",\n\t            \"inLanguage\": \"en-US\",\n\t            \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/multiple-linear-regression-using-tensorflow\\\/#primaryimage\",\n\t            \"url\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2023\\\/04\\\/python-quant.jpg\",\n\t            \"contentUrl\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2023\\\/04\\\/python-quant.jpg\",\n\t            \"width\": 1000,\n\t            \"height\": 563,\n\t            \"caption\": \"Python\"\n\t        },\n\t        {\n\t            \"@type\": \"WebSite\",\n\t            \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#website\",\n\t            \"url\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/\",\n\t            \"name\": \"IBKR Campus US\",\n\t            \"description\": \"Financial Education from Interactive Brokers\",\n\t            \"publisher\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#organization\"\n\t            },\n\t            \"potentialAction\": [\n\t                {\n\t                    \"@type\": \"SearchAction\",\n\t                    \"target\": {\n\t                        \"@type\": \"EntryPoint\",\n\t                        \"urlTemplate\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/?s={search_term_string}\"\n\t                    },\n\t                    \"query-input\": {\n\t                        \"@type\": \"PropertyValueSpecification\",\n\t                        \"valueRequired\": true,\n\t                        \"valueName\": \"search_term_string\"\n\t                    }\n\t                }\n\t            ],\n\t            \"inLanguage\": \"en-US\"\n\t        },\n\t        {\n\t            \"@type\": \"Organization\",\n\t            \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#organization\",\n\t            \"name\": \"Interactive Brokers\",\n\t            \"alternateName\": \"IBKR\",\n\t            \"url\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/\",\n\t            \"logo\": {\n\t                \"@type\": \"ImageObject\",\n\t                \"inLanguage\": \"en-US\",\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#\\\/schema\\\/logo\\\/image\\\/\",\n\t                \"url\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2024\\\/05\\\/ibkr-campus-logo.jpg\",\n\t                \"contentUrl\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2024\\\/05\\\/ibkr-campus-logo.jpg\",\n\t                \"width\": 669,\n\t                \"height\": 669,\n\t                \"caption\": \"Interactive Brokers\"\n\t            },\n\t            \"image\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#\\\/schema\\\/logo\\\/image\\\/\"\n\t            },\n\t            \"publishingPrinciples\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/about-ibkr-campus\\\/\",\n\t            \"ethicsPolicy\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/cyber-security-notice\\\/\"\n\t        },\n\t        {\n\t            \"@type\": \"Person\",\n\t            \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#\\\/schema\\\/person\\\/0a959ff9de7f0465a07baa1fe1ae0200\",\n\t            \"name\": \"Sang-Heon Lee\",\n\t            \"url\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/author\\\/sang-heonlee\\\/\"\n\t        }\n\t    ]\n\t}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Multiple Linear Regression using Tensorflow | IBKR Quant","description":"This post implements the standard matrix based estimation of multiple linear regression model using Tensorflow.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.interactivebrokers.com\/campus\/wp-json\/wp\/v2\/posts\/188178\/","og_locale":"en_US","og_type":"article","og_title":"Multiple Linear Regression using Tensorflow | IBKR Campus US","og_description":"This post implements the standard matrix based estimation of multiple linear regression model using Tensorflow.","og_url":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/multiple-linear-regression-using-tensorflow\/","og_site_name":"IBKR Campus US","article_published_time":"2023-04-11T13:47:18+00:00","article_modified_time":"2023-04-11T23:41:28+00:00","og_image":[{"width":1000,"height":563,"url":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/python-quant.jpg","type":"image\/jpeg"}],"author":"Sang-Heon Lee","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Sang-Heon Lee","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/multiple-linear-regression-using-tensorflow\/#article","isPartOf":{"@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/multiple-linear-regression-using-tensorflow\/"},"author":{"name":"Sang-Heon Lee","@id":"https:\/\/ibkrcampus.com\/campus\/#\/schema\/person\/0a959ff9de7f0465a07baa1fe1ae0200"},"headline":"Multiple Linear Regression using Tensorflow","datePublished":"2023-04-11T13:47:18+00:00","dateModified":"2023-04-11T23:41:28+00:00","mainEntityOfPage":{"@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/multiple-linear-regression-using-tensorflow\/"},"wordCount":454,"publisher":{"@id":"https:\/\/ibkrcampus.com\/campus\/#organization"},"image":{"@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/multiple-linear-regression-using-tensorflow\/#primaryimage"},"thumbnailUrl":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/python-quant.jpg","keywords":["Least Squares Estimator","Linear Regression","NumPy","Pandas","Python","sklearn","TensorFlow"],"articleSection":["Data Science","Programming Languages","Python Development","Quant"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/multiple-linear-regression-using-tensorflow\/","url":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/multiple-linear-regression-using-tensorflow\/","name":"Multiple Linear Regression using Tensorflow | IBKR Campus US","isPartOf":{"@id":"https:\/\/ibkrcampus.com\/campus\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/multiple-linear-regression-using-tensorflow\/#primaryimage"},"image":{"@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/multiple-linear-regression-using-tensorflow\/#primaryimage"},"thumbnailUrl":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/python-quant.jpg","datePublished":"2023-04-11T13:47:18+00:00","dateModified":"2023-04-11T23:41:28+00:00","description":"This post implements the standard matrix based estimation of multiple linear regression model using Tensorflow.","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/multiple-linear-regression-using-tensorflow\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/multiple-linear-regression-using-tensorflow\/#primaryimage","url":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/python-quant.jpg","contentUrl":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/python-quant.jpg","width":1000,"height":563,"caption":"Python"},{"@type":"WebSite","@id":"https:\/\/ibkrcampus.com\/campus\/#website","url":"https:\/\/ibkrcampus.com\/campus\/","name":"IBKR Campus US","description":"Financial Education from Interactive Brokers","publisher":{"@id":"https:\/\/ibkrcampus.com\/campus\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ibkrcampus.com\/campus\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/ibkrcampus.com\/campus\/#organization","name":"Interactive Brokers","alternateName":"IBKR","url":"https:\/\/ibkrcampus.com\/campus\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ibkrcampus.com\/campus\/#\/schema\/logo\/image\/","url":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2024\/05\/ibkr-campus-logo.jpg","contentUrl":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2024\/05\/ibkr-campus-logo.jpg","width":669,"height":669,"caption":"Interactive Brokers"},"image":{"@id":"https:\/\/ibkrcampus.com\/campus\/#\/schema\/logo\/image\/"},"publishingPrinciples":"https:\/\/www.interactivebrokers.com\/campus\/about-ibkr-campus\/","ethicsPolicy":"https:\/\/www.interactivebrokers.com\/campus\/cyber-security-notice\/"},{"@type":"Person","@id":"https:\/\/ibkrcampus.com\/campus\/#\/schema\/person\/0a959ff9de7f0465a07baa1fe1ae0200","name":"Sang-Heon Lee","url":"https:\/\/www.interactivebrokers.com\/campus\/author\/sang-heonlee\/"}]}},"jetpack_featured_media_url":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2023\/04\/python-quant.jpg","_links":{"self":[{"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/posts\/188178","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/users\/662"}],"replies":[{"embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/comments?post=188178"}],"version-history":[{"count":0,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/posts\/188178\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/media\/188194"}],"wp:attachment":[{"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/media?parent=188178"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/categories?post=188178"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/tags?post=188178"},{"taxonomy":"contributors-categories","embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/contributors-categories?post=188178"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}