[R-gui] (renamed) What do we do?
Thomas Friedrichsmeier
thomas.friedrichsmeier@ruhr-uni-bochum.de
Mon, 2 Dec 2002 01:18:01 +0100
I must admit, I'm not quite as adept at statistics as you are (or as likely
most of the people on this list are), so I can't respond to everything, but
some things I can answer:
> To be explicit, the components of the t-test that I'd like to see, to
> make this a non-trivial example (scalable to the level of the
> analyst), would be:
>
> 1. specification of the groups (2 variables, vs. 1 response and a
> grouping variable).
In the draft: <varselector>, <varslot>. I admit, there's no yet a tag to
represent a widget to select one or more specific values from a nominal-scale
var (if the grouping var is not 0-1-coded), but that's not a problem in
principle.
> 2. specification of the variance estimate (and corresponding adjustments)
<input>, <radio>, <checkbutton>, <select> or <optionselector>
> 3. approaches for resampling - data, model based.
I was rather thinking of using a separate dialog, but it's no more than a few
options-tags plus a bit of code in the <code>-section to realize this in a
single dialog.
> 4. approaches for sensitivity analysis (related rank-based tests,
> related 2-sample based likelihood based tests, using both same and
> different probability models, additions of noise or resampling, ala
> Gary King's Clarify).
Various options-tags (see 2), no? Potentially some rather complicated stuff in
the <code>-section, but no more complicated than any individual solution
would have to be.
> 5. a "dial-o-meter" (I don't see it as 1-d, but not sure what the
> right interface would be) to control the flexibility inherent in this
> (buttons, help settings, link-outs) based on user's skill level,
> needs, wants, etc.
Depends on what exactly you mean by this. I can think of three approaches
(solving different problems), only one of which would require an extension of
the specification-draft:
1) As long as it doesn't touch the core functionality, it's entirely the
applications responsibility (to e.g. offer transformations to be applied to
selected objects, or not), and the application would provide that
"dial-o-meter" (in the dialog itself or in a "global" place), no need to put
something like that in the spec.
2) Simple but probably quite feasible approach: Put extended options into a
separate <tab> (whatever your app thinks a <tab> should look like, no need
for it to really be a classical tabwidget). Probably rather reasonable
anyway, when we're talking about dialogs with potentially _lots_ of options.
3) Extend specification to include "level"-attributes for all "widgets".
Application would decide (depended on user setting) which level of widgets to
show and simply assume default values for widgets below that level. Other
than than, see 1). There's no problem with adding this to the specs. We'd
have to agree on rough landmarks in the range of levels to use (potentially
multi-dimensional, but dimensions would need to be defined beforehand).
Some toolkits may have trouble showing/hiding widgets on the fly (Qt handles
this like a charm, but I'm not sure, how some others will be doing), but in
these cases, it's not a problem of the specification, but would also apply
when trying to find an individual solution.
If you want something similar for the help-settings, I propose to use either
#targets (current proposal is to use HTML for the help), or several
help-sections with different "level"-attributes. The application would know
which target to jump to preferrably (once again based on user-settings). This
would of course require the plugin-author to provide multiple versions of
help, otherwise the setting will not have any effect. But this is no more
complicated than any "individual" approach.
> I don't think that constraining the data format, i.e. #1, would be
> useful; it is precisely the issue being addressed with the GUI. #3/#4
> start to become novel, at least they were when others proposed them.
Ok, but these really only require a more elaborate <code>-section, no? I mean
there's nothing fundamentally new in the GUI, or is there?
> #5 is what I'm hoping to see in your description of the layout,
> Thomas, i.e. a statistical rather than computational description. I'm
> not seeing it at this point, but maybe I'm being obtuse.
Not quite sure, whether you're satisfied with my answers, but I'm open for
proposals. After all, it's only a draft. I'm very convinced that we should
use something along these lines, and at some points I have strong opinions
about what should _not_ go into the draft, but I'm definitely open for
discussion of improvements/extensions/changes.
> I don't see what you are doing as particularly novel -- in fact,
> numerous parts are possible as very simple extensions of ESS or
> (X)Emacs tools (such as the S-Spreadsheet tool from the mid-90s, or
> the widget and image tools that have been available for a while).
> But to each, their own toolset...
It's not very novel, indeed, and it's not innovative at all. The differences
to the approaches you mention are that 1) it's relatively easy on the
plugin-writer, esp. as far as the GUI-side is concerned (one of the major
reasons I wanted to have something like it in the first place), 2) it's as
you say not depended on a specific toolkit (and independency from specific
toolkits is a definite prerequestite, if we want something useful to all of
our projects!) 3) it is meant to allow for easy fallbacks, so that an
application, that e.g. does not understand the newly introduced
"level"-attribute is still fully functional 4) it is designed to leave some
freedom of look-and-feel-and-functionality to the application.
2) is probably the most important point, but IMHO, the others deserve
consideration, too.
> But #5, if you can figure that specification out...!
How did I do?
Seriously, I see you have some very interesting ideas, that I did not think of
and would not have thought of. Also chances are, that new ideas will come up
late in the process of trying to agree on a specification, some of which
might not be easy to incorporate (although I'm quite optimistic).
Still, don't you agree, that if we could find a solution that could cover if
not 95% then at least some 60% of "standard" problems, a lot would still be
won?
Thomas