In many cases, there's not really a reason why we use one preposition rather than another. In this case, though, I'd say we use from because it conveys a sense of away, apart, separate (you're keeping the person and the action "apart").
But note that we don't need to use a preposition at all - "She sang a lullaby and stopped the baby crying" is fine (as is "...stopped the baby from crying"). Also note that in related constructions like "She helped the baby to eat", "to" isn't a preposition as such - it's just the "marker" for the infinitive verb form "to eat".
And while we're on the subject, I'll also say that in "She sang the baby to sleep", the preposition "to" seems quite "rational" to me because it reflects "movement" from wakefulness to, towards sleep.
'Since' and 'From'
'Since' talks about one particular point of time till now.
I have been working since 7 am
'From' in most of the cases talks about the starting point and ending point. Said that, the format could be 'from....to/till/until'
The shop is open from 9 in the morning to 6 in the evening
Quite close is 'since' and 'for'
'Since' and 'For'
Okay, as I said, 'since' talks about a particular point. So, you need to mention "since" which date the thing has been happening.
On the other hand, 'for' is used for a total period of time and you don't need to define a starting point.
The best example I can think of is...
I have been waiting for two hours
but...
I have been waiting since 2 o'clock
In the latter example, you need to define the starting point.
Another example:
I have been living in this house for 10 years
I have been living in this house since 2005
So, in your case, you have known him for the past 15 years OR since 2000.
Best Answer
There is no rule.
There are sometimes partial rules; but mostly it is a matter of learning what preposition a particular verb, adjective, or noun takes for its indirect objects. That needs to be learnt just as much as the spelling.
In this case, the iWeb corpus has 82 instances of "shaken by the experience" and 7 of "shaken from the experience". So both are used, but "by" is much more common.