A synonym is a name for an object to make it recognisable on another way. Where is that necessary for ? you will be thinking perhaps. Well, I will give you an example of how a synonym is used.
The user 'test' create a table 'persons' on the database. test is the owner of this table and he is able to find it by the name persons. On the database however it is registerd as test.persons. All objects owned by test fill have the prefix test. A user with al its objects is called a schema. If another user on the database wan't to access the table persons he will not find it by just using persons. If he has the rights he can access it by test.persons. What also is possible is to make a synonym for the table. The other username is test2. Test can make a synonym test2.persons for the table persons. If that synonym excists test2 will be able to access the persons table by just using persons as table name.
There is lots behind this principle on oracle all having to do with access rights and the way you make the objects available to other users.
there are possibly two reasons why you cannot analyze the synonym.
A SYNONYM ist something like a pointer or a link.
The syntax of the ANALYZE-command ist
ANALYZE [ TABLE | INDEX | CLUSTER ].
There is no ANALYZE SYNONYM, and I think, the SYNONYM does not give the command through to the original table.
You must analyze the physical table (the original table).