Posts

Showing posts from July, 2009

Poisson Estimation

In Chapter two of his book , Rasch jumps from his Equation 6.1 to an approximation, which he attributes to Poisson, but he not only provides no derivation of the approximation, but also omits to write out the approximation in general terms. I have found a page on the web , which sets out a cursory but satisfactory explanation of the approximation. Rasch calls the approximation Poisson's Law. The page on the web calls it the Poisson distribution or the Law of Rare Events. Let's begin with my Equation 3 from my previous blog. p{a|n} = (n!/((n-a)!a!))θ a (1-θ) n-a (3) Then according to the argument, if you focus on the right hand term, (1-θ) n-a , you can approximate that as: (1-θ) n-a ≈ e -n θ (4) where ≈ means is approximately equal to, θ is assumed to be low. The derivation involves isolating the left hand of the equation and taking the natural log: ln(1-θ) n-a = (n-a)ln(1-θ)

Building Rasch Formulae

Towards the end of his introduction, Rasch describes a simple probabilistic model involving mice. I shall not use his exact notation because it is not convenient for me to put bars over characters. So where Rasch describes and outcome A or à I shall describe the outcomes as 1 or 0. The probability of outcome 1 is q , and the probability of outcome 0 is 1- q . The thing about probability is not that it is hard, but that it is tedious. What makes it hard is that people who work with probability all the time, to reduce the tedium, have developed annotations. They also jump steps. I guess for them the fewer the steps, the lower the tedium, for for people (like me) who don't work with it a lot, it has the effect of combining tedium with headache. I am sure this is one of the reasons why Rasch is not well known by people who walk up and down high streets carrying shopping bags. Rasch jumps with his mouse model straight into an expression which looks to the layman like gibberis

Reading Rasch

My blog will be (more) shambolic and disorganised (than usual) for the next few posts. I am reading a classic text to clarify my understanding of a topic which has been rattling around in my brain for years. I find it helps to make notes when I read a technical text, and the more technical the text, the more detailed the notes have to be. I mentioned in my previous blog the sleight of hand by which the Rasch parameters (individual ability and item difficulty) can be estimated independently of one another. I have seen the formulae and I have read the text, but it does not sit comfortably with me. You cannot begin the estimation process for item difficulty without individuals, and vice versa. I think some confusion arises because in much of the subsequent literature the term "logits" is used, whereas, in the original book Rasch emphasises that his parameters are pure numbers - they don't have units. If you try to create units (for whatever reason), in my opinion, yo

Dichotomous data and rates

At last I have in my possession the Rasch book . Amazon offers it second hand from $235 (as at today). By going through the Institute for Objective Measurement , I got it for $30. Reading the foreword there are two important things, which Rasch made clear to other people. The first is that if a test is constructed to produce dichotomous data, it must be properly graduated. In the guts of the book Rasch produces a model for data generated by a properly spaced test, and then defines parameters which have to be met by real data, for that data to be said to fit the model. The second is almost a sleight of hand, by which he states that the probability of a result is a function of the ability of the person and the difficulty of the test, and the probability of another result is a similar function of the ability of the person and the difficulty of the test; and then he combines the two using the a couple of rules for the probability of a specified combination of events, and makes one o

Debugging Applets

In the Exceptions Trail of the Java Tutorial , the catch Blocks lesson gives the following as an example of a catch block: } catch (IOException e) { System.err.println("Caught IOException: " + e.getMessage()); } This works fine if you are running an app from the command line, or even an applet using appletviewer , but it is absolutely useless if you are testing an applet in an ordinary browser. My applet is supposed to record performance data, and I found it frustrating not knowing whether it had actually written anything to the database without running a separate query on the database. I therefore added a GUI object to the applet to display the message: if(dbDEBUG) { jTADiagnosics = new JTextArea(); jTADiagnosics.setFont(new Font("Arial", Font.PLAIN, 14)); jTADiagnosics.setColumns(60); jTADiagnosics.setRows(2); c.insets = new Insets(0,10,10,10); //12oc,9oc,6oc,3oc padding c.gridx = 0; //aligned with button 2

Functions

When I was using Visual Basic I never really got to grips with functions. I knew how to use them, and liked them, if someone else wrote them. For example the function log(x) returns the logarithm of x, and is often handy to use. But I took the view that all the useful functions had already been written, and I could not see why I should ever need to write one myself. On the other hand, I found simple subroutines very useful, especially for chunks of code which might be called in more than one circumstance. But I never made a conceptual link between a function and a subroutine. In Java, what VB calls a function is called a method, and what VB calls a subroutine is called a void method, so one is led to think about the similarities between the two constructs. My stereotype of a function is a lump of code with a single unambiguous purpose. For example the function log(x) would never be used for anything except to calculate the logarithm of a number. It was only when I started co

Coding for Rasch

This is my first day back with my main project for two months. This is the page I wanted to write after my 24 April post . The question I want to address is what fields do I need to store data for subsequent Rasch analysis? Rasch analysis investigates the interaction between test items and test participants. Core fields would therefore include the test item, the participant, and results of the interaction. Recording the item is pretty easy. If a math student is asked for the product of two and two, the item is 2x2=? Recording the student is a bit harder. It opens up a whole hornets nest of privacy and data protection issues. However, the analysis does not really require demographic details. All we need to record is that an entity addressing Item A of a session was the same entity addressing Item B in the same session. It does not matter that the same person may later complete another session. From a Rasch perspective, it is a new entity. It may be the same pe

Linguistic Rules

I have been silent for six weeks because I have been bogged in theory. At the end of my last blog I reported that I had been urged to revisit the core language lessons. So I went right back to the concepts trail and looked up the Inheritance lesson to better understand the extends key word, and the Interface lesson to better understand the implements key word. Then in the Language Basics trail the Variables lesson refreshed my memory on the static key word, Class Variables (Static Fields), Instance Variables (Non-Static Fields), and Local Variables. The this key word is described in the Classes and Objects trail in a lesson by the same name . After re-reading this lessons I was able to better understand the posts in this thread at the end of which I posted some code, which for me tied it all together, and solved my event listener problem. I went on to have problems with Window Listeners , but they arose because of my obsession with walking before I run. My main proj