From tho@j|eeper @end|ng |rom gm@||@com  Sat Feb 23 13:38:19 2019
From: tho@j|eeper @end|ng |rom gm@||@com (Thomas J. Leeper)
Date: Sat, 23 Feb 2019 12:38:19 +0000
Subject: [Rd] Return/print standard error in t.test()
In-Reply-To: <23665.11044.792776.730104@stat.math.ethz.ch>
References: <5880_1550782663_x1LKvgt1024492_CAOC91MRbfkM3Z-27xGjpq00yV0RrfVCnZT=s3f6YH374x_wpEw@mail.gmail.com>
 <FBFE4A3F-ACD3-4373-87E1-0B6D50EA14A5@mcmaster.ca>
 <0A38DEBA-18D2-4ED2-BFE1-B4E98F657643@gmail.com>
 <23665.11044.792776.730104@stat.math.ethz.ch>
Message-ID: <CAOC91MSTftTo-bH4dgk-C+f_rca_QJKdwCMs67BrvGKCNxrwig@mail.gmail.com>

That seems great to me. Thank you very much!

-Thomas

On Sat, Feb 23, 2019 at 11:14 AM Martin Maechler
<maechler at stat.math.ethz.ch> wrote:
>
> >>>>> peter dalgaard
> >>>>>     on Fri, 22 Feb 2019 12:38:14 +0100 writes:
>
>     > It's not a problem per se to put additional information
>     > into class htest objects (hey, it's S3 after all...) and
>     > there is a precedent in chisq.test which returns $observed
>     > and $expected.
>
> It seems the consent is to simply return the SE but *not* change
> the print() method, and also be careful not to mess with
> existing parts of the result.
> So, a minimal patch is to add the short line
>
>       stderr = stderr,
>
> inside the list(..) constucting the return value...
>
> and that's what I'm planning to commit (to the sources).
>
> With thanks for the suggestion and considerations to
> Thomas, John and Peter!
>
> Martin
>
>     > Getting such information printed by print.htest is more tricky, although it might be possible to (ab)use the $estimate slot.
>
>     > The further question is whether one would really want to do that (change the output and/or modify the current return values), at the risk of affecting a rather large bundle of existing scripts, books, lecture notes, etc. I don't think that I would want to do that for the case of the s.e.d., although I'll admit that there is another thing that has always been a bit of an eyesore to me: We give a confidence interval but not the corresponding point estimate (i.e. the _difference_ of the means).
>
>     > It might be better to simply start over and write a new function. In the process one might address other things that people have been asking for, like calculations based on the sample mean and SDs (which would useful for dealing with published summaries and textbook examples). Oh, and a formula interface for the one-sample test.
>
>     > -pd
>
>     >> On 21 Feb 2019, at 22:51 , Fox, John <jfox at mcmaster.ca> wrote:
>     >>
>     >> Dear Thomas,
>     >>
>     >> it is, unfortunately, not that simple. t.test() returns an object of class "htest" and not all such objects have standard errors. I'm not entirely sure what the point is since it's easy to compute the standard error of the difference from the information in the object (adapting an example from ?t.test):
>     >>
>     >>> (res <- t.test(1:10, y = c(7:20)))
>     >>
>     >> Welch Two Sample t-test
>     >>
>     >> data:  1:10 and c(7:20)
>     >> t = -5.4349, df = 21.982, p-value = 1.855e-05
>     >> alternative hypothesis: true difference in means is not equal to 0
>     >> 95 percent confidence interval:
>     >> -11.052802  -4.947198
>     >> sample estimates:
>     >> mean of x mean of y
>     >> 5.5      13.5
>     >>
>     >>> as.vector(abs(diff(res$estimate)/res$statistic)) # SE
>     >> [1] 1.47196
>     >>> class(res)
>     >> [1] "htest"
>     >>
>     >> and if you really want to print the SE as a matter of course, you could always write your own wrapper for t.test() that returns an object of class, say, "t.test" for which you can provide a print() method. Much of the advantage of working in a statistical computing environment like R (or Stata, for that matter) is that you can make things work the way you like.
>     >>
>     >> Best,
>     >> John
>     >>
>     >> -------------------------------------------------
>     >> John Fox, Professor Emeritus
>     >> McMaster University
>     >> Hamilton, Ontario, Canada
>     >> Web: http::/socserv.mcmaster.ca/jfox
>     >>
>     >>> On Feb 21, 2019, at 3:57 PM, Thomas J. Leeper <thosjleeper at gmail.com> wrote:
>     >>>
>     >>> A recent thread on Twitter [1] by a Stata user highlighted that t.test()
>     >>> does not return or print the standard error of the mean difference, despite
>     >>> it being calculated by the function.
>     >>>
>     >>> I know this isn?t the kind of change that?s likely to be made but could we
>     >>> at least return the SE even if the print() method isn?t updated? Or,
>     >>> better, update the print() method to display this as well?
>     >>>
>     >>> Best,
>     >>> Thomas
>     >>>
>     >>> [1]
>     >>> https://twitter.com/amandayagan/status/1098314654470819840?s=21
>     >>> --
>     >>>
>     >>> Thomas J. Leeper
>     >>> http://www.thomasleeper.com
>     >>>
>     >>> [[alternative HTML version deleted]]
>     >>>
>     >>> ______________________________________________
>     >>> R-devel at r-project.org mailing list
>     >>> https://stat.ethz.ch/mailman/listinfo/r-devel
>     >>
>     >> ______________________________________________
>     >> R-devel at r-project.org mailing list
>     >> https://stat.ethz.ch/mailman/listinfo/r-devel
>
>     > --
>     > Peter Dalgaard, Professor,
>     > Center for Statistics, Copenhagen Business School
>     > Solbjerg Plads 3, 2000 Frederiksberg, Denmark
>     > Phone: (+45)38153501
>     > Office: A 4.23
>     > Email: pd.mes at cbs.dk  Priv: PDalgd at gmail.com
>
>     > ______________________________________________
>     > R-devel at r-project.org mailing list
>     > https://stat.ethz.ch/mailman/listinfo/r-devel



[Rd] Return/print standard error in t.test()
Thomas J. Leeper