So I’ve prepared 4 examples to show. 1 non-adaptive case and 3 adaptive cases. First here is the density plot for the 4 cases (the non-adaptive is in the top left corner)
img <- readPNG("Density plots.png")
grid.raster(img)
You can see that the non-adaptive density plot has a slight mini peak to the left as I mentioned.
Now I will plot some item and player plots for each case.
The first row of item plots are the item urn sizes over time for 4 items (172, 363, 849 and 1083). The second row of item plots are the item_urn_pv / item_urn_size over time
img <- readPNG("setting1_item.png")
grid.raster(img)
The first row of player plots are the item urn sizes over time for 4 players (2425, 8283, 26918 and 36618). The second row of player plots are the player_urn_pv / player_urn_size over time. The third row is the expected probability of a correct response over time.
img <- readPNG("setting1_player.png")
grid.raster(img)
img <- readPNG("setting2_item.png")
grid.raster(img)
img <- readPNG("setting2_player.png")
grid.raster(img)
img <- readPNG("setting3_item.png")
grid.raster(img)
img <- readPNG("setting3_player.png")
grid.raster(img)
Start size was 40 and the size increased by 1 after 3 counts. The I have 2 variables that control the speed at which the rate of urn size increase. As you can see from the plots the urn size curves slowly flatten out.
Additionally, In this non-linear function I decreae player urns by 20 when they dont player for 30 days, and then for each extra day I decrease the urn by addional 1.2. So if a player doesnt play for 35 days then I decrease their urn by 26.
img <- readPNG("setting4_item.png")
grid.raster(img)
img <- readPNG("setting4_player.png")
grid.raster(img)
rmses = read.csv("Rules Data")
rmses[1:4, 1] <- c("Non-adaptive", "Linear-1", "Linear-1", "Non-Linear")
rmses[, c(1,20)]
## X rmse
## 1 Non-adaptive 0.1912064
## 2 Linear-1 0.1306888
## 3 Linear-1 0.1429879
## 4 Non-Linear 0.1218089
We can see that in this case the non-linear function actually produced the best RMSE and quite low one compared to the non-adaptive function. This is promising as this is just a random setting I picked.
I think the plan for me now is to play around with the linear function and see what is the best setting for that and then move on to the non-linear function.