By weight, cream cheese is 54% water, 34% fat, 6% protein, and 3% sugar. If you substitute anything for it, it will need to come close to those parameters. Marscapone is a very good substitute for cream cheese, though here it is more expensive. It is slightly richer and less salty than cream cheese. You could probably come close by using butter and milk, plus a bit of salt, in proportions that make the water and fat content come out right. Here, whole milk is 88% water and 3.25% fat, skim milk is 91% water, and butter is 18% water and 81% fat. Canned evaporated milk (nonfat) is 79% water.
If it were me, I probably would not use sour cream as it often needs to be neutralized with baking soda in order to taste good in baked goods, while cream cheese does not. I suspect that it also has more of a dulling effect on the chocolate flavor than cream cheese does. If you were going to try that route, you could stir some baking soda directly into the sour cream and then allow it time to react, so that it doesn’t overleaven the batter. Not sure of the exact amount needed, but it could probably be estimated from looking at the sour cream butter cake and the downy yellow cake in the Cake Bible.
Post back if you want more help with the calculations.