GithubHelp home page GithubHelp logo

cutoffs's Introduction

Spam-resistant Crowdsourcing of Accurate Cut-off Scores

As the number of responses to a survey increase, average values become more accurate, with errors and falsifications cancelling out. However, extreme (maximum/minimum) values turn unreliable, as mistakes and trolls become almost certain.

So, how do we solve this when, for instance, polling applicants to determine cut-off scores for university courses? Besides their score and alloted branch, have them also sumbit the branches they were denied. For each branch, at each possible score, tally the reported acceptances ($+1$) and rejections ($-1$).


Idealized graph of the tallied acceptances and rejecttions at each score, for a particular course.
The y-axis represents the tally and the x-axis the exam score. 280 is the cut-off for this particular course.

The key property of the cut-off score is that there are a lot of positive y-values to its right (let their sum be $R$), and a lot of negative y-values to the left (let their sum be $L$). Thus $R-L$ is going to be at its maximum when computed about the cut-off point. This is a very robust property and is not easy to change via the addition of some untrue $\pm1\textsf{'s}$ to either side.

Now let the scores be $x$, and the y-value at a given score be $f(x)$.

When you go from $x_1$ to $x_2$ (ssuming all scores in between have zero y-value), $R$ decreases by $f(x_2)$ and $L$ increases by $f(x_1)$. Thus $R-L$ decreases by $f(x_2)+f(x_1)$.

$R-L$ for the leftmost score is simply the sum of all the others' y-values, and we can use the above formula to easily compute it for all scores.

The Survey

Here's a survey for the institute BITS Pilani, India, which has three campuses โ€“ Pilani, Goa, and Hyderabad, and where admission is via the BITSAT examination. The survey contains three quesions:

  • What is your final moderated BITSAT score?
  • Which campus and branch were you assigned? Skip this question if rejected or waitlisted.
  • In the preference form, which courses did you place ABOVE your allocated one?

The survey is conducted via Google Forms, which lets you export the results as a .csv file. The file may come zipped, in which case unzip it, and run the Python script cutoffs.py in the same directory. I.e., download it to the same folder as the CSV file, open a terminal there, and run python cutoffs.py.

cutoffs's People

Contributors

sidstuff avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.