Parallax is an attempt to project prospective movement onto an orthographic surface. In other words, it attempts to place a perspective vanishing point that moves with the center of the screen.
True projective accuracy is not possible given the differences between orthographic and perspective views. As shown in green in the following image:

Note that the coordinates are relative meaning (0 to 1).
The projection error is zero at the the center of the screen, and increases outward.
It should be apparent from the graph that a setting sinusoidal parallax factor would minimize the projection error. Try arccos
.
The same concept applies to the the vertical offset.
The speed becomes the derivative of the new factor's horizontal component + fudge_factor * the projection error.
As stated in another answer; There is no single perfect solution. Pick the values that appear best.
The distance to the vanishing point is completely arbitrary, and must be normalized prior to its use in arccos()
.
The application of similar triangles and other identities are required for formal geometrical proof, which I feel are unnecessary given the variance of the solutions possible. In this case an example image is worth one proof.