Brief question:
Is there a fat-finger distribution? I'm sure that if it exists, then it has a different name.

I don't know how to formulate it as an analytic function. Can you help me either find an existing version of it or start in on formulating it in something cleaner than a giant simulation?

It is the distribution of numbers actually hit when a given number is the intended target, but the buttons are much smaller than the finger so nearby buttons are sometimes the one hit by accident.

The use of a distribution like this is false entries in pushing buttons on a cell phone. If I operated a company where one had to "press 1 now" or something and "you pressed 1, is that right" then they could get a decent approximation of fat-finger probabilities, although 2 in a row fat-fingers could mess it up some. (Hamming distance in fat-fingers? Fat-finger Markov chains?)

I want to use it to try and build error correction into pressing keys. I have a few samples of my own, but not enough variation in finger "fatness" or cell-phone keyboard topology to be robust.

Background and elaboration:
Here is a normal cell phone keypad layout: enter image description here

Imagine that my fingers are much larger than the keys, so that when I go to hit a 5, I am mostly likely to get a 5, but then I am also somewhat likely to get a 2,4,6,or8 (equally likely) and then am less (but not zero) likely to get a 1,3,7,9 (equally likely) and am very unlikely to get a 0.

I can imagine that if I tried to type an infinite number of 5's for a fixed "finger diameter" then I would get a distribution of values. If my finger value is smaller then the distribution changes. If I try to hit a different number then the distribution changes.

In practice, this is going to depend on the layout of keys. If they were in a giant ring and not a 3x3 grid then it would be a different sort of question. In this case, I expect we will only be dealing with 3x3 rectangular grids. I also suspect that the keypad has a digital latch so that only one key press can be detected. There will be at most 7 frequencies for other buttons such as when the "0" is pressed. I'm not sure of a clean way to engage that. Perhaps a factor times normalized squared distance between the target key and the candidate triggered key?

Here is how I would simulate the distribution for when the five is pressed (weights are somewhat arbitrary):

#number of presses
npress <- 1000

#hack this (not quadratic)
myprobs <- c(0.85)
myprobs <- c(myprobs, 0.1275/4, 0.1275/4, 0.1275/4, 0.1275/4)
myprobs <- c(myprobs, 0.019125/4, 0.019125/4, 0.019125/4, 0.019125/4)
myprobs <- c(myprobs,1-sum(myprobs) )

#order of number 
my_button <- c(5,2,4,6,8,1,3,7,9,0)

#declare before loop
y <- numeric()

#sample many button presses
for (i in 1:npress){

     #press the button, store the result 
     y[i] <- sample(my_button,size=1,prob=myprobs)


#hist, show counts
hist((y),freq = T)

#hist, show freq
hist((y),freq = F)

#declare before loop
my_p5 <- numeric()

# compute the probabilties
for (i in 1:length(my_button)){

     my_p5[i] <- length(which(y==my_button[i]))/npress

# show probability values

additional note:
So I read this article:

I guess there is an inverse of the "fat-finger distribution" variation that applies to the last digit of prime numbers. There are digits that are excluded based on the last digit of the prime number.


2 Answers 2


Since we're dealing with discrete numbers, I immediately thought of using a Categorical Distribution as the conditional distribution of each target key.

So, if we take your example of a user's intent to press 5, and let $K$ be the key actually pressed, then we get:

$$P(K=k|5) = p_{k,5}\;\;\mathrm{ where }\;\; p_{k,5} \geq 0 \;\mathrm{ and}\; \sum_{k=0}^9 p_{k,5} = 1$$

We can define such a distribution for each key. This is the empirical part.

Now, let's say that the number actually pressed is $k$, we want to infer the intended key $I$. This is naturally expressed as a Bayesian Inference problem:

$$P(I=i|k) = \frac{P(I=i)P(k|I=i)}{\sum_{i=0}^9 P(I=i)P(k|I=i)}$$

This equation tells you the probability that the user intended to press $i$ given they pressed $k$.

However, you will notice that this depends on $P(I=i)$, which is the prior probability that someone would ever intend to press $i$. I would imagine that this would be conditional on the actual phone number being pressed (of course) but since you will not know this, you will need some way to adjust this prior context .

The bottom-line is that there is no single fat-finger distribution, unless we are talking about the distribution conditional on an intended number. If your error-correcting method is to be useful, it will have to guess the intended number using these conditional distributions. However, this will require some useful prior-context, otherwise I'd expect the inferred key to alwasy be the key actually pressed...not overly useful.


I agree with Bey's approach, ie the conditional probablity for each key to be pressed given the user's intention is highest for the intended key. If it wasn't, equipment manufacturers would rename the key. Some keys are more prone to be mis-pressed that others. Perhaps towards the middle. Even knowing this, because we are inputing numbers, it isn't possible to exploit like correcting words as one number is as valid as the next one. So error correction on single key strokes isn't feasible.

What is feasible is correcting, or perhaps the less ambitious detection of key errors in a given input data type. This is done for an ISBN or a credit card number, say. However, phone numbers do not have check sums. Perhaps the empirical distribution for each keyboard could be used to make the most efficient check of numbers - that being the best use of the added check number(s).

  • $\begingroup$ If I were in control, then I could make button sizes and inter-center distances into the geometric driver of error correction. Perhaps with the same area to work with one could make better correction. With the advent of smart(er) phones one could have dynamically resized keys, and constant touch to help inform intentions. $\endgroup$ Apr 15, 2016 at 16:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.