# Oscar data -- "winner" as time-dependent covariate --------------------------------------------------------- # FULL DATA for Winners versus nominated ds=read.table("WinNomR.txt",header=T); summary(ds) # extract info just on nominees (and create 1 new record for each) did.not.win = ds[is.na(ds$age.1st.win),]; did.not.win$winner = 0 did.not.win$age.from = did.not.win$age.1st.nom did.not.win$age.to = did.not.win$age.last did.not.win[1:5,] # extract info just on winners (and create 2 new records for each) # [just 1 record if won on first nomination ] won=ds[!is.na(ds$age.1st.win),] ; won.1st.record = won[won$age.1st.win > won$age.1st.nom,] won.1st.record$winner = 0 won.1st.record$age.from = won.1st.record$age.1st.nom won.1st.record$age.to = won.1st.record$age.1st.win won.1st.record$dead = 0 won.1st.record[1:5,] won.2nd.record = won won.2nd.record$winner = 1 won.2nd.record$age.from = won.2nd.record$age.1st.win won.2nd.record$age.to = won.2nd.record$age.last won.2nd.record[1:5,] # join the records ds.split.records = rbind(won.1st.record, won.2nd.record, did.not.win); ds.split.records = ds.split.records[order(ds.split.records$identity),]; ds.split.records[1:15,] # clean up remove("won.1st.record", "won.2nd.record", "won", "did.not.win" ); ls(); require(survival) # using Surv(start.time, stop.time, event.idicator) format... # 2 (#680 and # 729) died the same age at which they were nominated, so # add 1/10th of a year to last age, so age.to > age.from t.dep.model = coxph(Surv(age.from,age.to + 0.1,dead) ~ winner, data = ds.split.records ); summary(t.dep.model); # add 2 other (both fixed) variates male + year.born + ############## model with winner as FIXED variate ds$w=!is.na(ds$age.1st.win) t.indep.model = coxph(Surv(age.last,dead) ~ male + year.born + w, data = ds ) summary(t.indep.model)