Well their explanation is laughable. Even if they had mixed it up with an Iranian fighter jet (a third its size btw) it was within it's own territorial waters. So what exactly was the Vincennes trying to do? Initiate war?
It was more "bad US intelligence" and poor human performance (from both the US and Iran) than anything.
Bad Intel - The US Navy was told by the US Intel community that the F-14's had been newly equipped with Air to Ground weapons (they hadn't) and that, following the US Navies sinking of an Iranian ship a few months earlier, the Iranians were after revenge (they weren't).
Poor Human Performance - Huge failures of personal skill aboard the USS Vincennes to mis-identify the Airbus (via radar/IFF - not visually so "size" means very little as a blip on a screen) & the much lesser failure of the aircrew on the Airbus to listen to 121.5Mhz, which is the international emergency frequency every aircraft in the world MUST listen to, which was broadcasting dozens of warning messages to them. Every VHF aircraft radio has this emergency frequency specifically "hard-coded" into it so messages bypass everything else and can't be missed, meaning it has to be manually bypassed by the crew with a switch selection (most aircraft have at least 2-3 radios all with this function and all would need to be bypassed).
So the combination of the two lead to a perfect storm of Human Factors in which both groups (the US more than the Airbus crew) made the situation worse. Reagan also did send his regrets a few days later once the details were made clear but it still took a decade before a formal apology was made, no-idea why it took so long.