Problem with lists as matrices for OLS and statistical inference
- To: mathgroup at smc.vnet.net
- Subject: [mg81638] Problem with lists as matrices for OLS and statistical inference
- From: "Mauricio Esteban Cuak" <cuak2000 at gmail.com>
- Date: Sun, 30 Sep 2007 03:58:22 -0400 (EDT)
Hello everyone. I tried making some functions for OLS, R square, etc. (yes, I'm aware these functions already exist). As a newcomer to Mathematica, I'm a bit confused with using lists instead of matrices. Here was my first attempt: Clear["`*"]; Needs["HypothesisTesting`"]; firstOLS[x_, y_] := (Inverse[Transpose[x].x]).Transpose[x].y And I did also one for estimated variance for the parameters and one for R square: estimatedvariance[x_, y_] :=(Inverse[Transpose[x].x])*((y - x.firstOLS[x, y]).(y - x.firstOLS[x, y]))/(Length[y] - Length[firstOLS[x, y]]) rsquare_one[x_, y_] := (x.firstOLS[x, y]).(x.firstOLS[x, y])/(y.y) I tried both with this matrices and it worked fine: x = Table[RandomReal[10, 10], {30}];y = RandomReal[21, 30]; So far so good. When I tried using data imported from excel, all hell broke loose. Here are the matrices I used for x and y : xtwo = {{1.`, 4.351993`, 1.888761`}, {1.`, 4.321984`, 1.907567`}, {1.`, 4.290852`, 1.88777`}, {1.`, 4.296212`, 1.99383`}, {1.`, 4.258126`, 1.870771`}, {1.`, 4.343519`, 1.967788`}, {1.`, 4.337479`, 1.882922`}, {1.`, 4.332442`, 1.94114`}, {1.`, 4.36106`, 1.942251`}} ytwo = {{3.211156`}, {3.223586`}, {3.226253`}, {3.183556`}, {3.15343`}, {3.18843`}, {3.17617`}, {3.190737`}, {3.300504`}} Now my functions don't work even though they look the same to me! (the output gives an error saying the matrices can't be divided) I tried correcting them in this way: estimated_variance_two[x_, y_] := (Inverse[Transpose[x].x])*(Flatten[ Transpose[(y - x.firstOLS[x, y])].(y - x.firstOLS[x, y])])/(Length[y] - Length[firstOLS[x, y]]) rsquare_two[x_, y_] := (Flatten[ Transpose[(xdmda.firstOLS[x, y])].(x.firstOLS[x, y])])/Flatten[Transpose[y].y] Now they seem to work fine with the last x and y matrices, but when I use this functions with the original "test" matrices, they don't work... I think I must be missing something about the way Mathematica works with lists. Hope you can help me. Thanks! Regards, cd