Preheat your oven to 350 degrees Fahrenheit. Prepare muffin tins with liners and nonstick spray.
In a small bowl, mix 1/2 cup all-purpose flour, 1/2 cup brown sugar, and 1 teaspoon ground cinnamon. Cut in 4 tablespoons cold butter until crumbly. Stir in 4 tablespoons chopped walnuts.
In another bowl, whisk 2 1/4 cups all-purpose flour, 2 teaspoons baking powder, 1/2 teaspoon baking soda, 1/8 teaspoon salt, 1/2 teaspoon ground cinnamon, and 1/4 teaspoon ground ginger.
In a large bowl, cream together 1 cup granulated sugar, 5 tablespoons softened butter, and 1/3 cup vegetable oil until fluffy.
Beat in 2 eggs, one at a time, until well incorporated.
Stir in 1 cup sour cream until combined.
Combine wet and dry ingredients, stirring until just mixed. The batter should be lumpy.
Spoon half the batter into the muffin tin, filling each cup about one-third full. Top with half the streusel, then add the remaining batter and top with the rest of the streusel.
Bake for about 25 minutes or until a toothpick comes out clean. Cool in the tin for 5 minutes before transferring to a wire rack.