Posts

Showing posts from 2009

The nub

Sometimes people ask why I do what I do. Why do I write software nobody wants to use? Why do I care about the reliability and validity of psychometric data? Why do I want to make available assessment tools, which are accurate and meaningful, as well as cheap and easy to use? I answer a question with a question. How is it, I say, that scientists such as Newton and Einstein were born at exactly the right time and in exactly the right place for their work to be understood, appreciated, tested, and applied? The answer, I reply to myself, is that Newtons and Einsteins have been born in mud huts throughout the globe, throughout history; and they are still being born. The Newton we read about happened to the lucky one born in the right place at the right time, wealthy enough to receive an education and to study as a vocation, in a society disposed to listen, rather than ignore him, imprison him, or burn him at the stake. Einstein was also a lucky one, born at a time when h

Marketing

I am crap at marketing. In a perfect world, I'd never have to sell anything. I'd just be. But the world is not perfect. And why waste time creating computer software if you can't sell it? One of the reasons I began the quest to learn Java was that the version of my software written in VB6 is sitting on 600 CD's, which now gather dust in my living room. I spent a year writing to, calling and visiting schools, but the revenue generated was barely compensation for the installation time, let alone marketing, let alone development. Out of 221 schools on the target list (essentially primary schools in the metropolitan area of Perth, Western Australia), 61 agreed to a meeting and a trial on at least one computer, and 16 actually paid for a full site license. The official price was $660, but I let some have it for half that, and I always threw in a day's worth of installation and training. I didn't charge for the two or three presale visits, and for

More on Scoring Rates

Following on from my last blog, the table below shows the raw scoring rates on two additional items, H and K. Item H is twice as hard as item I, and is only addressed by Student B. Item K is twice as easy as Item J and is only addressed by Student A. This scenario synthesises one which might be generated by a computer based adaptive arithmetic test , which presents more difficult items to more able students and easier items to less able students. Raw Rates Item H Item I Item J Item K Session Mean Student A 4 8 16 9.33 Student B 4 8 16 9.33 It Mean 4 6 12 16 9.33 From the table, the effect of the adaptive component of the computer based arithmetic test has been similar to that of a very good handicapper in a horse race. By presenting more difficult items to the more able student and easier items to the less able student, it has

A closer look at scoring rates

In my blog of 25 August , I described some iterative transformations on scoring rate data from a computer based arithmetic test . I said I would report the results of further iterations, if I liked them , and from the time that has past it should be obvious to anyone reading this that I didn't. The transformations were based on what I called the scoring rate quotient (SRQ) . Essentially I divided the scoring rate for every item in every test session by the mean of all scoring rates for every item in every test session to produce the SRQ for individual session-item combinations and to calculate the mean SRQ for every session and for every item. To illustrate, imagine two students, A and B, addressing two items, I and J. Imagine in this case that Student B scores at twice the rate of Student A and that Item I is twice as difficult as Item J. The raw scoring rates might look as follows: Raw Rates Item I Item J Session Mean Student A

UK Car Hire - caveat emptor

The Web is a great boon to travellers. Where once you had to sit like a prune on a travel agents chair while they fiddled about for hours on a computer, now you can tailor make your own holiday from your own living room. As well as the vendor sites, there are these web sites, which purport to search for and sort whatever you are looking for. At the top of the list are what purport to be the best bargains, and the unwary might simply click on these and look no further. If you type UK car hire into Google, an array of sites like this one appear high on the list. It invites you to enter dates, a pickup location, and a car type, and then runs a search "of up to 40 companies" for you. A couple of things should be born in mind when interpreting these results. One is that only 4 companies actually have representation at the airport. From memory these are Avis, Budget, Europcar, and Hertz. The others are scattered through West London, take ages to pick you up, and are helli

Acronis True Image Hanging

One of my clients uses Acronis True Image Home for their nightly back-up. I don't know the product well, but I like what I've seen so far - mostly. It seems pretty thorough. The backups run like clockwork every night. And I have successfully recovered a system which caught a nasty virus, such that a reformat was the only cost effective fix. But the other day, the front end application, the management console, would not start. It just froze, with a flash screen reporting that it was checking disk D. Quite why it needs to check Disk D before opening is a mystery, especially because it is not included in the backup and it need never need be read from. On the machine in question D is the manufacturer's "recovery" sector. Quite frankly they are a waste of space, and the word recovery is a complete misnomer - "Factory Reset" sector would be more honest and appropriate. And given that nothing useful is ever written there, it mystifies me that Acronis

Building a financial mini-app

Building a mini-app from scratch using only text files and the command line is a bit like building a piece of furniture from IKEA. I find that after five steps I realise I made a mistake in step 2, and I have to pull everything apart again and start almost from scratch. When I was creating the financial transaction table, I decided to dodge the date conversion issue and make the date field text only. After all it was my intension to read the data back into Excel or Access for a GUI presentation at the end of the day. But when I had imported the data and started to query the tables, I decided I needed to sort by date during processing. So I had to drop the table, with all its data, and create a new one with a real date field. The irony is that, such are the quirks of MS Access, it was much easier exporting to a CSV file with the exact date format, that Apache Derby 10.4.2.0 was looking for, than getting it back. When you export a CSV file Access gives you many choices o

Using Java with Shares

I have this weird belief that spending too long looking at a share portfolio is morally wrong, because it's only money. But then I get this guilt thing about a lack of due diligence. My compromise is to spend the weekdays on my main project, which is developing interactive assessment software, and a part of the weekend looking at and thinking about shares. My traditional tools for this are Microsoft Access and Excel. And while the market was diving, and I was only buying shares, that worked fine. All I had to do was to track what I had bought, what I had paid for it, and what it is worth now. But now the market is rising again, and a handful of shares have risen by silly proportions, I feel I need to sell small amounts of them, at least to recuperate the original investment cost. But I am doing quite nicely with baby bonuses and other means tested benefits, and I don't want to blow my income out of the water. So I need a quick but accurate means of tracking the cumulati

GUI for thinking

Whatever bad things some people say about Microsoft, in the olden days they brought to market a raft of products, which were accessible, easy to use, and useful. MS Access is an example. It may have limitations as a commercial database engine, but as a sketch pad, a tool for collecting one's thought's, it is, in my opinion, hard to beat. My current task is to design a set of iterations through scoring rate data to render the scoring rate as an objective measure of student ability and item difficulty. The raw data is set out in a single table, as shown in my last blog . On this I have written two queries: SELECT [HAItemB].[sessidx], Avg([HAItemB].[rate]) AS AvgOfrate FROM HAItemB GROUP BY [HAItemB].[sessidx]; and SELECT HAItemB.item, Avg(HAItemB.rate) AS AvgOfrate FROM HAItemB GROUP BY HAItemB.item ORDER BY HAItemB.item; These queries calculate the average raw scoring rate for each session and each item. The item query looks like this: Item AvgOfrate

Transforming text file data

I have now transformed the raw data from my VB Application - Active Math so that it looks like this: 7/28/2000 12:41:55 PM11 3+3 1 27 7/28/2000 12:41:55 PM11 2+2 1 27 7/28/2000 12:41:55 PM11 1+1 1 35 7/28/2000 12:41:55 PM11 4+4 1 32 7/28/2000 12:41:55 PM11 5+3 1 8 I'll refrain from posting the code, but the important links were first the Character Streams lesson, especially the example from the lower half of the page entitled Line-Oriented I/O. Also from the same thread was the lesson entitled Scanning . This has nothing to do with flat bed scanners, and in VB would probably be called parsing. From this lesson I followed the link to the scanner class in the API and reversed up to the parent package (java.util) and then back down to the StringTokenizer class . Useful forum threads were this one , which gave me the idea of using

Where next?

My blog will become more blog like again for a while now, and more about learning Java, because I haven't a clue where I am going next. Already I have rebuilt the bare bones of an application, once created in VB6, and posted it as an applet on a web page . I have also revisited some raw theory , which had been floating around in the back of my mind for years. I am now satisfied that I know what I want to estimate, and I know in theory how I want to estimate it. But translating that into practice will be a bit harder. I have a pile of data collected years ago from the VB app. The data was never used at the time and was invisible to the user. The code to collect it was tacked on as an afterthought, "just in case" I ever got around to using it. I had an idea what data I needed to collect, but I had no idea how I would process it, so the data layout was designed purely for ease of collection - i.e. with a minimum of code and in a format which took up a minimal amoun

The Scoring Rate Quotient (SRQ)

Rasch expressed the expected reading rate in a reading test in relation to expected reading rate in a reference test as follows: ε i = λ vi / λ v1 where λ vi is the reading rate of the generic or typical student v in the reading test in question, and λ v1 is the reading rate of the generic or typical student v in the reference test. That translates fine into an estimation methodology, if you have very large data set, where all students address all tests, and the tests themselves are substantial enough for averaging to happen within them. You simply average the results to get your ratio. It doesn't work so well if you are interested in estimating the difficulty of individual test items, and especially not if you are working with data from a modern computer based test, where the items themselves are generated randomly within difficulty levels, and where the difficulty levels are set by student performance. If such a test is working prope

Rasch theoretical analysis of timed reading tests

If the probability of an event occurring in a very short interval of time is θ , the probability that the event occurs a times in n intervals may be estimated by the Poisson distribution: p{a|n} ≈ n θ a e - n θ /a! (10) Suppose n intervals may be aggregated into a time period of interest. For a telephone exchange, this might be a period of peak demand. For a reading test it might be five or ten minutes, however long the test lasts. Now imagine another time period used to define frequency of events λ . Rasch ( op. cit. page 34) uses a 10 second interval, I prefer a minute, most physicists use a second, but as mentioned in the previous blog, it make no difference to the essence of the argument. Note, however, in just a few lines we have referred to three distinct time intervals. First there is the very short time interval, used to define θ, and during which the event will only ever occur once. Rasch ( op. cit. page 35

Scores versus scoring rates

Image
The next chapter in the Rasch book addresses reading rates. This is traditionally one of my favourite chapters and I once published a paper based on it . I like scoring rates because I believe intuitively that they yield a more reliable estimate of ability than raw scores. Many years ago I presented a somewhat inane paper at a fortunately sparsely attended WAIER forum . I have long been looking to find a more substantive argument, and I believe I am getting quite close. My inspiration comes from this web page . Let's imagine two students sitting a test comprising a single dichotomous item. Imagine the ability of the first student (Student A) in relation to the difficulty of the item is such that the probability of a correct answer is 55%. Imagine the ability of the second student (Student B) in relation to the difficulty of the item is such that the probability of a correct answer is 45%. What is the probability that these students will be properly ranked b