options ps=54 ls=76; data q4_2002; infile 'A:\q4_2002.out'; input city1 $ city2 $ ave_fare distance passengers mktldr $ /* Airline with highest market share */ ldrshare ldrfare pricelow $ /* Airline with lowest price */ lowshare lowfare; x=ranuni(1234); if ldrshare ne .; if ldrfare ne .; if lowshare ne .; if lowfare ne .; run; proc sort; by x; run; data q4_2002; set q4_2002; if _n_ <= 50; keep city1 city2 ave_fare distance passengers ldrshare; run; proc reg; model ave_fare=distance passengers ldrshare; run; proc iml; use q4_2002; read all into xy; y=xy(|,1|); x123=xy(|,2:4|); x0=j(50,1,1); x=x0||x123; xx=x`*x; xy=x`*y; xxi=inv(xx); betahat=xxi*xy; p=x*xxi*x`; yhat=p*y; i50=i(50); j50=j(50,50,1/50); ss_mod=y`*p*y; ss_reg=y`*(p-j50)*y; ss_res=y`*(i50-p)*y; ms_reg=ss_reg/3; ms_res=ss_res/(50-4); f_0=ms_reg/ms_res; pval=1-probf(f_0,3,46); print ms_reg ms_res f_0 pval; stop iml;