In SharePoint 2010 you can apply the retention policy to a content
type, to a list or document library or to a folder.
Source
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 ?
EDIT
try this then
there is a Retention policy class at MSDN article
for example
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"];
if (Policy.CanHavePolicy(ctype))
{
PolicyCatalog pc = new PolicyCatalog(site);
var policy = (from p in pc.PolicyList.OfType<Policy>() where p.Name == "expireme" select p).First();
Policy.CreatePolicy(ctype, policy);
Policy.ProcessChanges(site);
}
}
}