In SharePoint 2010 you can apply the retention policy to a content
type, to a list or document library or to a folder.
by reading that I don't think you can apply it to site collection, did you tried any procedure manually that you want to do using coding or script ?
try this then
there is a Retention policy class at MSDN article
public static void AddPolicyToContentType()
using(SPSite site = new SPSite("http://basesmcdev2/sites/tester1"))
using(SPWeb web = site.OpenWeb())
SPList list = web.Lists["tester2"];
SPContentType ctype = list.ContentTypes["Document"];
PolicyCatalog pc = new PolicyCatalog(site);
var policy = (from p in pc.PolicyList.OfType<Policy>() where p.Name == "expireme" select p).First();