def val(self): """ Estimate value functions with b-splines and compare """ new_data = pd.DataFrame({'OverallRank': np.linspace(1, 194, 1000)}) fit_a = self.spline_est(self.policy_a['value'], new_data) fit_b = self.spline_est(self.policy_b['value'], new_data) r.pdf(os.path.join(os.path.dirname(self.out_dir), 'value.pdf')) r.plot(new_data['OverallRank'], fit_a, type='l', xlab='Rank_M', ylab='V(Rank)') r.lines(new_data['OverallRank'], fit_b, col='red') r.points(self.policy_a['value']['OverallRank'], self.policy_a['value']['val'], col='black') r.points(self.policy_b['value']['OverallRank'], self.policy_b['value']['val'], col='red') r.legend('topright', np.array(['No Info', 'Info']), lty=np.array([1, 1]), col=np.array(['black', 'red'])) r('dev.off()') diff = np.array(fit_b) - np.array(fit_a) r.pdf(os.path.join(os.path.dirname(self.out_dir), 'value_diff.pdf')) r.plot(new_data['OverallRank'], diff, type='l', xlab='Rank', ylab='V(Rank|info=1) - V(Rank|info=0)') r.abline(h=0, lty=2) r('dev.off()') diff = (np.array(fit_b) - np.array(fit_a)) / np.array(fit_a) r.pdf(os.path.join(os.path.dirname(self.out_dir), 'value_percent_diff.pdf')) r.plot(new_data['OverallRank'], diff, type='l', xlab='Rank', ylab='(V(Rank|info=1) - V(Rank|info=0)) / V(Rank|info=0)') r.abline(h=0, lty=2) r('dev.off()') data_path = dirname(dirname(__file__)) data_path = join(data_path, 'data', 'lawData.csv') data = pd.read_csv(data_path) new_data = deepcopy(data.loc[data['year'] == 2013, 'OverallRank']) #new_data = np.concatenate(( # new_data, np.zeros(lc.N_SCHOOLS - len(new_data)) #)) new_data = pd.DataFrame({'OverallRank': np.array(new_data)}) fit_a = self.spline_est(self.policy_a['value'], new_data) fit_b = self.spline_est(self.policy_b['value'], new_data) diff = np.sum(np.array(fit_b) - np.array(fit_a)) pdiff = diff / np.sum(fit_a) print(" - Change in Producer Surplus: {0}".format(diff)) print(" - Percent change in Producer Surplus: {0}".format(pdiff)) return diff
def FuncScatterDiagonal(data): R.points(data) R.abline(0, 1)