Further Notes to `Model Classes' [9/12/2002]

L. Allison, CSSE, Monash University, Australia 3168

home1 home2
 Bib
 Algorithms
 Bioinfo
 FP
 Logic
 MML
 Prog.Lang
and the
 Book

 9/12/2002

FP
 ACSC2003
MML
 

For want of a name, the term statistical model is taken to include any, more or less, statistical or probabilistic model (description etc.) of data.


Selected from O.E.D. :-
Model:
I. Representation of structure.
    b. A summary, epitome, or abstract...
    c. A description of structure...
  2. a. A representation in three dimensions of...
    b. Something that accurately resembles...
    c. An archetypal image or pattern.
    e. A simplified or idealized description or conception of a particular system, situation, or process (often in mathematical terms: so mathematical model) that is put forward as a basis for calculations, predictions, or further investigation.
    f. [Logic] A set of entities that satisfies all the formulas of a given formal or axiomatic system.
  3. A mould...
  4. A small portrait...
  5. An object or figure made in clay, wax, or the like...
  6. ...
II. Type of design.
III. An object of imitation.
  10. a. A person, or a work, that is proposed or adopted for imitation; an exemplar.
  11. a. A person, or, less frequently, a thing, that serves as the artist's pattern...
    b. A person, freq. a woman, who is employed to display clothes...
  12. A person or thing eminently worthy of imitation...
. . .
 
Class:
2. a. A division or order of society according to status; a rank or grade of society.
6. a. A number of individuals (persons or things) possessing common attributes,...
  b. in Logical classification.
  c. Natural History. One of the highest groups into which the Animal, Vegetable, or Mineral Kingdom is divided, a class being subdivided into orders, and these again to genera, and species.
. . .
 
and also
model-class as in statistics
class as in O.O.P.


 
The historical example...
 
Parameters m1 and m2 are ``models'' of sequences
 
e.g. ``AT-rich'', or some Markov model of order k, etc.
 
(Note that d:Distribution is just the result of m1 (or m2).)
 
Align determines if S1 and S2 are similar or not;
 
this depends on what is usual, common v. what is unusual, rare
 
-- which is described by m1 and m2.


 
Haskell:
A functional programming language
Lazy, e.g.
let ints = 1 : (map (\x -> x+1) ints)
in ...
 
Polymorphic types, e.g.
map :: (t -> u) -> [t] -> [u]
 
Type inference algorithm, e.g.
map f [] = []
map f (x:xs) = (f x):(map f xs)
 
inferred...
-- f :: t -> u
-- x :: t,  f x :: u
-- result :: [u]
 
Type classes, e.g.
Show -- printable
Functor -- mapable
Model -- subject of seminar
etc.
 
An expression is evaluated to give a value.
A value has a type.
A type can be (an instance of  |  in) one or more type-classes.


 

E. g. Just to show there is nothing up my sleeve, a universal Model of non-negative Ints:

wallaceIntModel =
 let
  catalans =
   let
    cats last n =
     let
      twoN = 2*n
      n1   = n+1
      nSq  = n*n
      next = last * 2 * (twoN-1) `div` n
     in (next `div` n1) : (cats next n1)
   in 1 : (cats 1 1)

  cumulativeCatalans = scanl1 (+) catalans

  find n posn (e:es) =
    if n < e then posn else find n (posn+1) es

 in
   MMsg 0
       (\n->(find n 0 cumulativeCatalans)*2+1)


--  n  code     msg2  cat' cumulative
--  0  0         1     1    1
--  1  100       3     1    2
--  2  10100     5     2    4
--  3  11000
--  4  1010100   7     5    9
--  ...


 

E.g. Simple operations on Models and estimators.

bivariate (m1, m2) =
  let m (d1, d2) = (msg2 m1 d1) + (msg2 m2 d2)
  in MMsg ((msg1 m1) + (msg1 m2)) m


estBivariateWeighted (est1,est2) dataSet wts
-- weighted version
 = let (ds1, ds2) = unzip dataSet
   in bivariate (est1 ds1 wts,
                 est2 ds2 wts)

 
 
 
 

 

A Model is "like" a value.
 
A FunctionModel is "like" a function (->).
 
A TimeSeries is "like" a list ([]).
 
 
 


 

E.g. Convert  FunctionModel of ip op  to  Model of (ip, op).

functionModel2model fm =
 MMsg (msg1 fm) (\(i, o) -> condMsg2 fm i o)
 --i.e. pr(o|i,fm), i assumed common knowledge!

E.g. Convert TimeSeries of ds to Model of [ds].

timeSeries2model1 mdlLen tsm =
 MMsg (msg1 tsm + msg1 mdlLen)
  (\dataSeries ->
  foldl (+) (msg2 mdlLen (length dataSeries))
            (msg2s tsm dataSeries))  --elements

timeSeries2model tsm =
 let
  msg n = msg wallaceIntModel n  --say
  mdlLen = MMsg 0 msg            --length Model
 in timeSeries2model1 mdlLen tsm



Coding Ockham's Razor, L. Allison, Springer

A Practical Introduction to Denotational Semantics, L. Allison, CUP

Linux
 Ubuntu
free op. sys.
OpenOffice
free office suite
The GIMP
~ free photoshop
Firefox
web browser

© L. Allison   http://www.allisons.org/ll/   (or as otherwise indicated),
Faculty of Information Technology (Clayton), Monash University, Australia 3800 (6/'05 was School of Computer Science and Software Engineering, Fac. Info. Tech., Monash University,
was Department of Computer Science, Fac. Comp. & Info. Tech., '89 was Department of Computer Science, Fac. Sci., '68-'71 was Department of Information Science, Fac. Sci.)
Created with "vi (Linux + Solaris)",  charset=iso-8859-1,  fetched Tuesday, 30-Apr-2024 00:51:28 AEST.