CPANEL Procedure
Example 11.1 Airline Cost Data: Fixed Effects
The Christenson Associates airline data are a frequently cited data set (Greene 2000). The data measure the costs, prices of inputs, and utilization rates for six airlines from 1970 to 1984. This example analyzes the log transformations of cost (variable C), quantity (variable Q), and price (variable PF), and the untransformed load factor (variable LF). You speculate the following model,
where the are airline effects. The actual model in the original, untransformed variables is highly nonlinear:
The following statements create the data and perform the necessary log transformations. These statements assume that your libref is named mylib, but you can substitute any appropriately defined libref.
data mylib.airline;
input Obs Airline T C Q PF LF;
Year = T + 1969;
lC = log(C);
lQ = log(Q);
lPF = log(PF);
label lC = "Log Transformation of Costs";
label lQ = "Log Transformation of Quantity";
label lPF = "Log Transformation of Price of Fuel";
label LF = "Load Factor (utilization index)";
datalines;
1 1 1 1140640 0.95276 106650 0.53449
2 1 2 1215690 0.98676 110307 0.53233
3 1 3 1309570 1.09198 110574 0.54774
4 1 4 1511530 1.17578 121974 0.54085
5 1 5 1676730 1.16017 196606 0.59117
... more lines ...
The following statements fit a one-way fixed-effects model:
proc cpanel data = mylib.airline;
id Airline Year;
model lC = lQ lPF LF / fixone printfixed;
run;
Output 11.1.1 provides a model and data description. There are six cross sections and 15 time points.
Output 11.1.1: Airline Cost Data, Model Description
| Model Description | |
|---|---|
| Estimation Method | FixOne |
| Variance Estimation | Model Based |
| Data Set | AIRLINE |
| Number of Observations | 90 |
| Number of Cross Sections | 6 |
| Time Series Length | 15 |
The R-square and degrees of freedom can be seen in Output 11.1.2. The R-square statistic nearly 1, indicating a reasonable fit. The error degrees of freedom is derived from 90 observations minus 5 cross sections, minus 4 regressors.
Output 11.1.2: Airline Cost Data, Fit Statistics
| Fit Statistics | |||
|---|---|---|---|
| SSE | 0.2926 | DFE | 81 |
| MSE | 0.0036 | Root MSE | 0.0601 |
| R-Square | 0.9974 | ||
The F test for fixed effects is shown in Output 11.1.3. You easily reject the null hypothesis of poolability. There are significant effects due to airlines, and it would be unreasonable to perform pooled OLS regression that ignores these effects.
Output 11.1.3: Airline Cost Data, Test for Fixed Effects
| F Test for No Fixed Effects | |||
|---|---|---|---|
| Num DF | Den DF | F Value | Pr > F |
| 5 | 81 | 57.74 | <.0001 |
The PRINTFIXED option in the MODEL statement provides estimates of the airline effects (which are not displayed by default). Looking at the parameters, only two airlines (3 and 4) are significantly different from average. Quantity and fuel price have positive effects on cost, but load factors negatively affect costs. Because cost, quantity, and fuel price are log-transformed, the coefficients for quantity and price are interpreted as elasticities of cost. The coefficient for (log) fuel price is 0.417, meaning that you would associate a 10% increase in fuel price with a 4.17% increase in costs.
Output 11.1.4: Airline Cost Data, Parameter Estimates
| Parameter Estimates | ||||||
|---|---|---|---|---|---|---|
| Variable | DF | Estimate | Standard Error | t Value | Pr > |t| | Label |
| Intercept | 1 | 9.713556 | 0.2296 | 42.30 | <.0001 | Intercept |
| lQ | 1 | 0.919293 | 0.0299 | 30.76 | <.0001 | Log Transformation of Quantity |
| lPF | 1 | 0.417492 | 0.0152 | 27.47 | <.0001 | Log Transformation of Price of Fuel |
| LF | 1 | -1.07044 | 0.2017 | -5.31 | <.0001 | Load Factor (utilization index) |
| CS 1 | 1 | -0.00759 | 0.0465 | -0.16 | 0.8707 | Cross-Sectional Effect: 1 |
| CS 2 | 1 | -0.04883 | 0.0390 | -1.25 | 0.2144 | Cross-Sectional Effect: 2 |
| CS 3 | 1 | -0.21651 | 0.0184 | -11.77 | <.0001 | Cross-Sectional Effect: 3 |
| CS 4 | 1 | 0.176971 | 0.0214 | 8.27 | <.0001 | Cross-Sectional Effect: 4 |
| CS 5 | 1 | 0.016475 | 0.0378 | 0.44 | 0.6638 | Cross-Sectional Effect: 5 |
| CS 6 | 1 | 0.079484 | 0.0415 | 1.92 | 0.0588 | Cross-Sectional Effect: 6 |
You suspect that there might be other factors at play, and so you augment your model to include time effects. The following statements fit a two-way model, a model with both airline and time effects:
proc cpanel data = mylib.airline;
id Airline Year;
model lC = lQ lPF LF / fixtwo printfixed;
run;
The F test and parameter estimates for the two-way model are provided in Output 11.1.5.
Output 11.1.5: Airline Cost Data, Two-Way Fixed Effects
| F Test for No Fixed Effects | |||
|---|---|---|---|
| Num DF | Den DF | F Value | Pr > F |
| 19 | 67 | 23.10 | <.0001 |
| Parameter Estimates | ||||||
|---|---|---|---|---|---|---|
| Variable | DF | Estimate | Standard Error | t Value | Pr > |t| | Label |
| Intercept | 1 | 12.66527 | 2.0810 | 6.09 | <.0001 | Intercept |
| lQ | 1 | 0.817264 | 0.0318 | 25.66 | <.0001 | Log Transformation of Quantity |
| lPF | 1 | 0.168732 | 0.1635 | 1.03 | 0.3057 | Log Transformation of Price of Fuel |
| LF | 1 | -0.88267 | 0.2617 | -3.37 | 0.0012 | Load Factor (utilization index) |
| CS 1 | 1 | 0.128306 | 0.0460 | 2.79 | 0.0069 | Cross-Sectional Effect: 1 |
| CS 2 | 1 | 0.065481 | 0.0390 | 1.68 | 0.0975 | Cross-Sectional Effect: 2 |
| CS 3 | 1 | -0.18948 | 0.0156 | -12.14 | <.0001 | Cross-Sectional Effect: 3 |
| CS 4 | 1 | 0.134259 | 0.0183 | 7.33 | <.0001 | Cross-Sectional Effect: 4 |
| CS 5 | 1 | -0.09264 | 0.0373 | -2.48 | 0.0155 | Cross-Sectional Effect: 5 |
| CS 6 | 1 | -0.04593 | 0.0416 | -1.10 | 0.2736 | Cross-Sectional Effect: 6 |
| Time 1970 | 1 | -0.37386 | 0.1919 | -1.95 | 0.0555 | Time Effect: 1970 |
| Time 1971 | 1 | -0.31916 | 0.1861 | -1.72 | 0.0909 | Time Effect: 1971 |
| Time 1972 | 1 | -0.27654 | 0.1833 | -1.51 | 0.1362 | Time Effect: 1972 |
| Time 1973 | 1 | -0.22292 | 0.1730 | -1.29 | 0.2019 | Time Effect: 1973 |
| Time 1974 | 1 | -0.15388 | 0.0864 | -1.78 | 0.0796 | Time Effect: 1974 |
| Time 1975 | 1 | -0.10805 | 0.0449 | -2.41 | 0.0188 | Time Effect: 1975 |
| Time 1976 | 1 | -0.07686 | 0.0319 | -2.41 | 0.0188 | Time Effect: 1976 |
| Time 1977 | 1 | -0.02072 | 0.0204 | -1.01 | 0.3145 | Time Effect: 1977 |
| Time 1978 | 1 | 0.047197 | 0.0291 | 1.62 | 0.1093 | Time Effect: 1978 |
| Time 1979 | 1 | 0.091657 | 0.0811 | 1.13 | 0.2627 | Time Effect: 1979 |
| Time 1980 | 1 | 0.207197 | 0.1491 | 1.39 | 0.1693 | Time Effect: 1980 |
| Time 1981 | 1 | 0.28534 | 0.1756 | 1.62 | 0.1089 | Time Effect: 1981 |
| Time 1982 | 1 | 0.301255 | 0.1660 | 1.81 | 0.0741 | Time Effect: 1982 |
| Time 1983 | 1 | 0.300347 | 0.1536 | 1.96 | 0.0547 | Time Effect: 1983 |
| Time 1984 | 1 | 0.319001 | 0.1475 | 2.16 | 0.0341 | Time Effect: 1984 |
Only a few of the time effects are significant, but there is an overall time trend of increasing costs. The time period of the data spans the OPEC oil embargoes and the dissolution of the Civil Aeronautics Board (CAB). These are two possible explanations for the rising costs.
A surprising result is that the fuel cost is not significant in the two-way model. If the time effects are proxies for the effect of the oil embargoes, then the effect of fuel price might be subsumed by the time effects. If the time dummy variables are proxies for the dissolution of the CAB, then the effect of load factors is not precisely estimated.