For Those Making Graphs for the API


#1

I love the Level Graph by Piderman (/t/Level-graph/1045/1) and The Wanikani for IOS from Kiko, (/t/WaniKani-for-iOS/1862/1)

But I have one small suggestion, and this goes for anyone else who is making level graphs, is to have the ability to null a level. For instance, there are a lot of people who stopped at level 2 because they weren’t sure it was for them or they had to wait for some cash inflow, and perhaps waited a long time. I myself stopped Wanikani for a while because I wasn’t sure if it was worth going way backwards in learning Kanji. Anyhow, since returning, all my levels are roughly at the same speed except the one level that I stopped on for a while.

If there could be an option to normalize, or ignore such a level, it would more accurately depict a completion time for those of us having stopped WK for a while. I’d love that, because it is slightly discouraging seeing your numbers skewed like that. 


#2

+1. I signed up for Wanikani and left it completely inactive for ~2 months before really using it. 


#3

I was actually thinking about this a couple of days ago. They could change how the average is calculated. For example first calculate the median value of the times spent on each level and then compare all the times with the median level. If the duration is some X (5,8,10+ days) bigger than the median then don’t use that level when calculating the average. 

This isn’t actually a valid representation of data but it would allow for a more accurate prediction of the date when you would be done with wanikani. 
Those times that were removed from the calculation of the average could just be added after the average time is multiplied by the number of levels remaining.

I hope this makes sense since I’m really in a hurry but if I don’t post now I’ll forget about it. 


#4
Satoshi said... I was actually thinking about this a couple of days ago. They could change how the average is calculated. For example first calculate the median value of the times spent on each level and then compare all the times with the median level. If the duration is some X (5,8,10+ days) bigger than the median then don't use that level when calculating the average. 

This isn't actually a valid representation of data but it would allow for a more accurate prediction of the date when you would be done with wanikani. 
Those times that were removed from the calculation of the average could just be added after the average time is multiplied by the number of levels remaining.

I hope this makes sense since I'm really in a hurry but if I don't post now I'll forget about it. 
Satoshi always with the good ideas! I like it and it makes sense to me, but it'd also be good if the user could negate any levels they choose too.

#5

I agree with the intent of this request, but I don’t feel  that the ability to explicitly nullify a level or normalizing the data set as a whole is the way to go about it. Rather, I think the changes would better made by changing the measure of central tendency used to estimate the time till completion to a measure more resistant to outliers.  A Truncated mean or Windsorized mean would be fairly trivial to implement and would be more useful than an Arithmetic mean in this use case. A Trimean would probably be even better, as it would still account for outliers somewhat, but it would take a bit more effort to shoehorn in( still somewhat trivial, though, as the Trimean is only an L-estimator).


#6

Thanks @kanjilover for pointing this thread out to me - awesome suggestions. I implemented a 10% truncated mean for the iOS graph data (which hopefully I’ll bring to the web at some point) based on another user’s request. It’s certainly not perfect, but this method is simple and effective. In cases where you have one outlier level that you spent months on, it doesn’t affect your future level averages at all, which I like.


#7
kiko said... Thanks @kanjilover for pointing this thread out to me - awesome suggestions. I implemented a 10% truncated mean for the iOS graph data (which hopefully I'll bring to the web at some point) based on another user's request. It's certainly not perfect, but this method is simple and effective. In cases where you have one outlier level that you spent months on, it doesn't affect your future level averages at all, which I like.
 Great, Kiko! I can't wait to put my API in your er...website. ^^'