Data Generator
by IPWright83
JavaScript
const samples = 2000;
const data = [];
function randn_bm() {
var u = 0, v = 0;
while(u === 0) u = Math.random(); //Converting [0,1) to (0,1)
while(v === 0) v = Math.random();
let num = Math.sqrt( -2.0 * Math.log( u ) ) * Math.cos( 2.0 * Math.PI * v );
num = num / 10.0 + 0.5; // Translate to 0 -> 1
if (num > 1 || num < 0) return randn_bm(); // resample between 0 and 1
return num;
}
for(let i = 0; i < samples; i++) {
const attendance = randn_bm() * 100;
const libraryVisits = randn_bm() * attendance;
const bookLoans = randn_bm() * libraryVisits;
const vle = randn_bm() * bookLoans;
const lectureReplay = randn_bm() * vle;
const year = Math.floor(Math.random() * 4) + 1;
const tier4 = Math.floor(Math.random() * 2) + 1 === 1 ? true : false;
data.push({
attendance,
vle: Math.floor(vle),
bookLoans: Math.floor(bookLoans),
lectureReplay: Math.floor(lectureReplay),
libraryVisits: Math.floor(libraryVisits),
year,
tier4
});
}
const results = data
.map(d => `${d.attendance},${d.vle},${d.bookLoans},${d.lectureReplay},${d.libraryVisits},${d.year},${d.tier4}`)
.join("\n");
console.log(results);
console.log(data);