In Generation II, being Shiny is determined by a Pokémon's IVs. If a Pokémon's Speed, Defense, and Special IVs are all 10, and its Attack IV is 2, 3, 6, 7, 10, 11, 14 or 15, it will be Shiny. Because of this, a Shiny Pokémon traded to a Generation I game and then traded back to Generation II will retain its Shininess, and a Pokémon obtained in Generation I whose IVs meet the requirements for Shininess will also become Shiny when traded to Generation II.
Since the HP IV is calculated from the other four IVs, a Shiny Pokémon's HP IV will always be either 0 or 8. Shiny Pokémon are generally above average in terms of IVs, but only slightly.”
This means the stats determine shininess, but only in R/B/Y/G/S/C.
In other generations, Shinies and Normal Pokemon have the same chance of having good stats.
Now, for shadow Pokémon. I don’t know if you are talking about GO or the other games they are in, so I’ll include both.
A Shadow Pokémon, when encountered, is generated in the same way that a wild Pokémon is generated in the Generation III games, with its personality value and individual values generated together and no effort values. Shadow Pokémon don't have a set Nature or a set gender, but once encountered, the personality value, Nature and IVs are saved to the memory for the Shadow Monitor to be able to keep track of their exact status and location. This means that once a Shadow Pokémon is encountered for the first time, its Nature, IVs and gender will remain the same for the rest of the game, even if the player fails to capture it or is forced to re-battle it later.”
This implies that being shadow does not decrease or increase stats.
In Pokémon GO, they have a 20% increase to attack power but a 20% decrease to their defense
Source:Experience and https://www.google.com/amp/s/pokemongohub.net/post/guide/shadow-pokemon-guide/amp/
Hope this helps!