/* input data into Stata */ input y x0 x1 x2 7 1 2 1 15 1 4 4 20 1 3 7 15 1 6 3 12 1 5 2 8 1 1 2 end save test.dta mata /* read data into Mata */ X = st_data(.,("x0","x1","x2")) X y = st_data(.,"y") /* find b */ b = qrinv(X'*X)*(X'y) /* make predictions */ yp = X * b ye = y - yp stata(`"display "Predictor Variables""') X stata(`"display "Predicted Variable""') y stata(`"display "Parameter Estimates""') b stata(`"display "Predicted Value of Y""') yp stata(`"display "Error in Prediction of Y""') ye /* create a vector to tell Stata which observations to put b into */ nb = (123) /* Write out b into the dataset */ (void) st_addvar("float","b") st_store(nb,"b",b) end label var b "parameter" save test, replace