[Date Index]
[Thread Index]
[Author Index]
Re: Problem with lists as matrices for OLS and statistical inference
*To*: mathgroup at smc.vnet.net
*Subject*: [mg81660] Re: [mg81638] Problem with lists as matrices for OLS and statistical inference
*From*: DrMajorBob <drmajorbob at bigfoot.com>
*Date*: Mon, 1 Oct 2007 04:40:39 -0400 (EDT)
*References*: <19756584.1191142844936.JavaMail.root@m35>
*Reply-to*: drmajorbob at bigfoot.com
First of all, underscores can't be used in symbol names; rsquare_one is a
named pattern object with head "one" and name "rsquare".
rsquare[x_, y_] := (x.firstOLS[x, y]).(x.firstOLS[x, y])/(y.y)
Secondly, your xtwo and ytwo have incompatible shapes for the purpose.
Dimensions /@ {x, y, xtwo, ytwo}
{{30, 10}, {30}, {9, 3}, {9, 1}}
y is a vector, but ytwo is a column matrix.
You can flatten ytwo, and then
ytwo = Flatten@ytwo
{3.21116, 3.22359, 3.22625, 3.18356, 3.15343, 3.18843, 3.17617, \
3.19074, 3.3005}
rsquare[xtwo, ytwo]
0.99989
and so forth.
Bobby
On Sun, 30 Sep 2007 02:58:22 -0500, Mauricio Esteban Cuak
<cuak2000 at gmail.com> wrote:
> 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
>
>
--
DrMajorBob at bigfoot.com
Prev by Date:
**Re: create a list with x,y,z coordinates**
Next by Date:
**Re: Plot3D with NDSolve**
Previous by thread:
**Re: create a list with x,y,z coordinates**
Next by thread:
**Re: Problem with lists as matrices for OLS and statistical inference**
| |