You have to be very careful giving advice. Now, if you're playing against someone who makes an obvious mistake that implies he may not understand a rule, then correcting that is one thing; it's good sportsmanship to explain the correct rule.
But critiquing someone's strategic or tactic decisions, if they haven't specifically asked, is a fine line. First off, I would probably never do it during the game. It just seems like it can cause more problems that way, though I can't give a good argument for why.
Now, if you win the game, you have to be very careful what you say afterwards. I once played an IRL game against someone I didn't know; he won Tournament first (don't remember what he chose). I won Tournament and chose Princess, as it was a board where we were both making lots of money per turn, but there as no other +buy to be had. The +buy won me the game. Afterwards, I commented that he probably would have won if he'd chosen Princess. My intent was to actually complement his overall play, to say "you're clearly a good player, you practically beat me and basically should have won, except for one little thing you would have." But instead it came across as rubbing it in; he already knew how he'd screwed up, and he didn't need his opponent telling him.
If you lose, you probably have more room to work with. Hard to come off as arrogant when you lost, unless you say you felt it was just luck. But either way, it's all in the phrasing. Saying "you should have...." is pretty much always wrong. But I've had games where I've asked my opponent "why did you do ____? I would have thought that ___ would be stronger here, did I miss something?" And that generally is ok, whether you won or lost. The important thing is to not imply that you know better.
If it IS a situation where you're pretty sure you do know better; that you think that you're a stronger player than your opponent, then you should probably start by asking if they are OK with you giving them some advice before doing so.