Picking up again on a topic I looked at a few years ago, I've been playing about in my occasional spare evenings with using R to fit nomograms to data.
Specifically, I've been generating (x,y,z) triples (initially from mathematical relationships, though sometimes I've added very small amounts of noise), and fitting genus 0 (particularly parallel-scale) and more recently genus I nomograms. Winchell describes this classification scheme if you're not familiar with it ( http://www.projectrho.com/nomogram/standardForms.html )
That is, using some ideas I've adapted from various places, I've been fitting functions of the form
E[h(z)] = f(x) + g(y)
(which can be immediately implemented as a parallel-scale nomogram but which can also be adapted into other genus 0 forms)
and more recently of
E[h(z)] = f(x) + phi(x).g(y) (which can be turned into a genus I nomogram)
where the functions h,f,g and phi can be estimated from the data points (though you can set one or more of them easily enough if need be, and just estimate the rest).
It's worked suprisingly well. Obviously the genus I has more ability to "fit" the relationship than the genus 0 form does, and so is more successful.
I plan to turn my scripts into more automatic R functions when I can and write up some examples showing how to do it.
In the last few days I've been thinking about whether it's feasible to extend this to a grid-type nomogram relationship of the form
E[h(z)] = f(s,t) + phi(s,t).g(y)
but there are still a few issues to come to grips with there before I can try implementing that.
Once advantage of the simpler parallel-scale nomogram over the genus I approach (in spite of less ability to fit) is that it can also be turned into a slide rule.
Since someone has already done a basic cardboard slide-rule template in R I would eventually like to link the genus 0 nomogram approach to that code in the hope that one could input data and get out a slide rule that approximated the relationship fairly automatically. Slide rules can actually implement a 4-variable parallel-scale compound nomogram, but that's somewhat more complex to do the estimation of the transformations (since there are two sets of transformations that have to agree on one variable in common.
Fitting nomograms to data
Genus II - Re: Fitting nomograms to data
I believe I have come up with a simple algorithm for fitting Genus II nomograms to data, given an algorithm for fitting genus 0 nomograms with weights (which I believe I already have). At least simple relative to what I thought would be involved.
I will need to do some testing, and checking that it at least converges for reasonably sensible cases. There will probably be some tweaking involved to get it working nicely (particularly with regularity of the weights, the degree of smoothing and the convergence all stemming from one part of the algorithm), but unless I've made some glaring error somewhere, it looks to me like the idea should be sound. Genus I and Genus 0 nomograms drop out as special cases.
This trumps my genus I idea (which nevertheless did pretty well). When (if) I get a nice example working I'll put up details.
If it does work as it seems it should, what would be really nice is a convergence proof, so we know when we can trust that it will converge. Anyway, that comes later.
I will need to do some testing, and checking that it at least converges for reasonably sensible cases. There will probably be some tweaking involved to get it working nicely (particularly with regularity of the weights, the degree of smoothing and the convergence all stemming from one part of the algorithm), but unless I've made some glaring error somewhere, it looks to me like the idea should be sound. Genus I and Genus 0 nomograms drop out as special cases.
This trumps my genus I idea (which nevertheless did pretty well). When (if) I get a nice example working I'll put up details.
If it does work as it seems it should, what would be really nice is a convergence proof, so we know when we can trust that it will converge. Anyway, that comes later.
Who is online
Users browsing this forum: No registered users and 2 guests