w A
((mp~ |:) - (# %~ [: */~ +/)) A
((At=: |:A) mp A) - (*/~+/A) % m=: #A
(At mp A) - (*/~ {. (e=: (1,m) $ 1) mp A) % m
(At mp A) - ((|: e mp A) mp e mp A) % m
(At mp A) - ((At mp et=: |:e) mp e mp A) % m
(At mp A) - At mp et mp e mp A % mHere we notice that (et mp e) -: E=: (m,m) $ 1 Continuing, (At mp A) - At mp E mp A % m At mp (A - E mp A % m) At mp C NB. from previous posts |:Ct mp A |:(At - At mp (|:E) % m) mp A |:(At mp (I=: %.~At) - E % m) mp A |:At mp (I - E % m) mp A At mp ((|:I) - Et % m) mp A At mp (I - E % m) mp A Ct mp A (|:(-"1 mean)A) mp A ((mp~ |:) (-"1 mean)) A Along the way we have shown that (-: |:) Ct mp A, and therefor that the variance-covariance matrix is symmetric. And hi from the APL forums Xiao-Yong! Cheers, Louis > On 13 Feb 2017, at 18:27, Xiao-Yong Jin <[email protected]> wrote: > > Louis is correct that there is no simpler way to explain this. > At least not from anything in this email thread so far. > Perhaps it would make it easier to point out that the following > w=: (+/ .*~ |:) - (#%~[:*/~+/) > gives the same as u and v. > > If this generates more confusion, perhaps going back to a tautology > on a list of numbers would make it clearer. > t0=: ( (+/%#)@:*: - *:@:(+/%#) ) -: (+/%#)@:*:@:(- +/%#) > t1=: ( +/ @:*: - *:@:(+/)%# ) -: +/ @:*:@:(- +/%#) > check > t0?10#0 > t1?10#0 > >> On Feb 13, 2017, at 10:39 AM, Louis de Forcrand <[email protected]> wrote: >> >> I'm afraid that what is happenning here is not simple. >> >> u=: (mp~ |:) (-"1 mean) >> v=: (mp~ |:)@(-"1 mean) >> >> u A >> A mp~ |: (-"1 mean) A >> (|: A -"1 mean A) mp A >> >> v A >> (mp~ |:) A -"1 mean A >> (|: A -"1 mean A) mp A -"1 mean A >> >> It is not obvious that these two verbs are mathematically equivalent. That >> is why my post may be hard to follow. >> >> Louis >> >>> On 13 Feb 2017, at 17:25, Raul Miller <[email protected]> wrote: >>> >>> Eh... ok, but that's pretty hard to follow, and there's much simpler >>> ways of recognizing what's going on here. >>> >>> -- >>> Raul >>> >>> >>>> On Mon, Feb 13, 2017 at 10:15 AM, Louis de Forcrand <[email protected]> >>>> wrote: >>>> I forgot to divide by m, see my correction. >>>> >>>> Louis >>>> >>>>> On 13 Feb 2017, at 15:24, Raul Miller <[email protected]> wrote: >>>>> >>>>> I'm having problems following your reasoning here. >>>>> >>>>> Consider: >>>>> >>>>> A=: 5 3 $ 90 60 90 90 90 30 60 60 60 60 60 90 30 30 30 >>>>> mean=: +/%# >>>>> mp=: +/ . * >>>>> C=: A - B=: (E=: (m,m) $ 1) mp A % m=: #A >>>>> u=: ((mp~ |:) (-"1 mean)) % # >>>>> v=: (mp~ |:)@(-"1 mean) % # >>>>> u A >>>>> 504 360 180 >>>>> 360 360 0 >>>>> 180 0 720 >>>>> (|:C) mp A >>>>> 2520 1800 900 >>>>> 1800 1800 0 >>>>> 900 0 3600 >>>>> >>>>> If I understand your presentation, those two results should have been >>>>> the same. But they are not... >>>>> >>>>> Can you run through your work with some example values and see whether >>>>> you think it's the presentation or my understanding of it that needs >>>>> to change? >>>>> >>>>> Thanks, >>>>> >>>>> -- >>>>> Raul >>>>> >>>>> >>>>> >>>>>> On Mon, Feb 13, 2017 at 6:36 AM, Louis de Forcrand <[email protected]> >>>>>> wrote: >>>>>> A few corrections: >>>>>> >>>>>> u is >>>>>> (|:C) mp A % m >>>>>> and v is >>>>>> (|:C) mp C % m >>>>>> but we can multiply both by m when showing that they are equal. >>>>>> >>>>>> In addition, I forgot a division by m here: >>>>>>> +/ (i{Et) * j {"1 E >>>>>> that should read >>>>>> +/ (i{Et) * j {"1 E % m. >>>>>> >>>>>> Louis >>>>>> >>>>>>> On 13 Feb 2017, at 01:35, Louis de Forcrand <[email protected]> wrote: >>>>>>> >>>>>>> The two statements are executing two different procedures which happen >>>>>>> to be mathematically equivalent: >>>>>>> >>>>>>> u=: ((mp~ |:) (-"1 mean)) % # >>>>>>> v=: (mp~ |:)@(-"1 mean) % # >>>>>>> >>>>>>> If (u -: v) A for a matrix A, then >>>>>>> (((mp~ |:) (-"1 mean)) -: (mp~ |:)@(-"1 mean)) A. >>>>>>> >>>>>>> Let >>>>>>> C=: A - B=: (E=: (m,m) $ 1) mp A % m=: #A >>>>>>> then u is >>>>>>> (|:C) mp A >>>>>>> and v is >>>>>>> (|:C) mp C. >>>>>>> >>>>>>> Let's look at u: >>>>>>> (|:C) mp A >>>>>>> (|:A-B) mp A >>>>>>> ((At=: |:A) - Bt=: |:B) mp A >>>>>>> (At mp A) - Bt mp A >>>>>>> >>>>>>> Now for v: >>>>>>> (|:C) mp C >>>>>>> (At - Bt) mp A - B >>>>>>> (At mp A) - (At mp B) - (Bt mp A) + Bt mp B >>>>>>> >>>>>>> We can see that if >>>>>>> (Bt mp B) -: At mp B >>>>>>> then (u -: v) A. >>>>>>> >>>>>>> At mp B >>>>>>> At mp E mp A % m >>>>>>> >>>>>>> Bt mp B >>>>>>> (|: E mp A % m) mp E mp A % m >>>>>>> At mp (Et=: |:E) mp E mp A % *:m >>>>>>> At mp (E mp E % m) mp A % m >>>>>>> >>>>>>> Now (and for the coup de grace): >>>>>>> (<i,j) { E mp E % m >>>>>>> +/ (i{Et) * j {"1 E >>>>>>> +/ (m$1) * m $ 1 % m >>>>>>> 1 for all i and j between 0 and m. >>>>>>> Therefor >>>>>>> E -: E mp E % m. >>>>>>> >>>>>>> And thus >>>>>>> Bt mp B >>>>>>> At mp E mp A % m >>>>>>> At mp B >>>>>>> >>>>>>> (u -: v) A for all matrices A. # >>>>>>> >>>>>>> Cheers, >>>>>>> Louis >>>>>>> >>>>>>> PS: I hope I didn't make and mistakes, but I might have. Thanks for >>>>>>> checking! >>>>>>> >>>>>>>> On 12 Feb 2017, at 18:54, Raul Miller <[email protected]> wrote: >>>>>>>> >>>>>>>> It's not so much that it's of no use, but that it's redundant. >>>>>>>> >>>>>>>> When your hook is a train where the first verb is a hook, you can >>>>>>>> restructure either of them so that the other of those two hooks takes >>>>>>>> over the responsibility of obtaining the hook's "left argument" >>>>>>>> (presumably, this would eliminate the other hook). >>>>>>>> >>>>>>>> I hope this helps, >>>>>>>> >>>>>>>> -- >>>>>>>> Raul >>>>>>>> >>>>>>>> >>>>>>>>> On Sun, Feb 12, 2017 at 10:18 AM, R.E. Boss <[email protected]> >>>>>>>>> wrote: >>>>>>>>> I think the problem is that the big hook is of no use, that's what >>>>>>>>> creates confusion. >>>>>>>>> >>>>>>>>> (data mp1 mn data)% # data >>>>>>>>> 504 360 180 >>>>>>>>> 360 360 0 >>>>>>>>> 180 0 720 >>>>>>>>> >>>>>>>>> data mp1 mn data >>>>>>>>> 2520 1800 900 >>>>>>>>> 1800 1800 0 >>>>>>>>> 900 0 3600 >>>>>>>>> >>>>>>>>> mp1 mn data >>>>>>>>> 2520 1800 900 >>>>>>>>> 1800 1800 0 >>>>>>>>> 900 0 3600 >>>>>>>>> >>>>>>>>> >>>>>>>>> R.E. Boss >>>>>>>>> >>>>>>>>> >>>>>>>>> -----Original Message----- >>>>>>>>> From: Programming [mailto:[email protected]] >>>>>>>>> On Behalf Of 'Mike Day' via Programming >>>>>>>>> Sent: zondag 12 februari 2017 12:02 >>>>>>>>> To: [email protected] >>>>>>>>> Subject: Re: [Jprogramming] Hooked again >>>>>>>>> >>>>>>>>> It looks to me as if the two left hooks form one big left hook, not >>>>>>>>> that I'm into boxing: >>>>>>>>> >>>>>>>>> mn =: -"1 mean >>>>>>>>> mp1=: mp~|: >>>>>>>>> >>>>>>>>> ((mp1 mn)%#)data NB. big "hook" >>>>>>>>> 504 360 180 >>>>>>>>> 360 360 0 >>>>>>>>> 180 0 720 >>>>>>>>> >>>>>>>>> ((mp1 @: mn)%#)data NB. mp1 after mn using @: >>>>>>>>> 504 360 180 >>>>>>>>> 360 360 0 >>>>>>>>> 180 0 720 >>>>>>>>> >>>>>>>>> (([: mp1 mn)%#)data NB. mp1 after mn using [: >>>>>>>>> 504 360 180 >>>>>>>>> 360 360 0 >>>>>>>>> 180 0 720 >>>>>>>>> >>>>>>>>> Any use? >>>>>>>>> >>>>>>>>> Mike >>>>>>>>> >>>>>>>>> >>>>>>>>>> On 12/02/2017 08:06, Lippu Esa wrote: >>>>>>>>>> ]data=. 5 3 $ 90 60 90 90 90 30 60 60 60 60 60 90 30 30 30 >>>>>>>>>> >>>>>>>>>> mean=: +/%# >>>>>>>>>> mp=: +/ . * >>>>>>>>>> covmat=: ((mp~|:)(-"1 mean))%# NB. divede by n not n-1 to comply with >>>>>>>>>> the example >>>>>>>>> >>>>>>>>> >>>>>>>>> --- >>>>>>>>> This email has been checked for viruses by Avast antivirus software. >>>>>>>>> https://www.avast.com/antivirus >>>>>>>>> >>>>>>>>> ---------------------------------------------------------------------- >>>>>>>>> For information about J forums see http://www.jsoftware.com/forums.htm >>>>>>>>> ---------------------------------------------------------------------- >>>>>>>>> For information about J forums see http://www.jsoftware.com/forums.htm >>>>>>>> ---------------------------------------------------------------------- >>>>>>>> For information about J forums see http://www.jsoftware.com/forums.htm >>>>>>> >>>>>>> ---------------------------------------------------------------------- >>>>>>> For information about J forums see http://www.jsoftware.com/forums.htm >>>>>> ---------------------------------------------------------------------- >>>>>> For information about J forums see http://www.jsoftware.com/forums.htm >>>>> ---------------------------------------------------------------------- >>>>> For information about J forums see http://www.jsoftware.com/forums.htm >>>> >>>> ---------------------------------------------------------------------- >>>> For information about J forums see http://www.jsoftware.com/forums.htm >>> ---------------------------------------------------------------------- >>> For information about J forums see http://www.jsoftware.com/forums.htm >> >> ---------------------------------------------------------------------- >> For information about J forums see http://www.jsoftware.com/forums.htm > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
