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,

StartLayout 1st Row  log left-parenthesis sans-serif upper C Subscript i t Baseline right-parenthesis equals alpha plus beta 1 log left-parenthesis sans-serif upper Q Subscript i t Baseline right-parenthesis plus beta 2 log left-parenthesis sans-serif upper P sans-serif upper F Subscript i t Baseline right-parenthesis plus beta 3 sans-serif upper L sans-serif upper F Subscript i t Baseline plus nu Subscript i Baseline plus epsilon Subscript i t EndLayout

where the nu Subscript i are airline effects. The actual model in the original, untransformed variables is highly nonlinear:

StartLayout 1st Row  sans-serif upper C Subscript i t Baseline equals exp left-parenthesis alpha plus beta 3 sans-serif upper L sans-serif upper F Subscript i t Baseline plus nu Subscript i Baseline plus epsilon Subscript i t Baseline right-parenthesis sans-serif upper Q Subscript i t Superscript beta 1 Baseline sans-serif upper P sans-serif upper F Subscript i t Superscript beta 2 EndLayout

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

The CPANEL Procedure
One-Way Fixed Effects (FixOne)
Dependent Variable: lC (Log Transformation of Costs)

Model Description
Estimation MethodFixOne
Variance EstimationModel Based
Data SetAIRLINE
Number of Observations90
Number of Cross Sections6
Time Series Length15


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
SSE0.2926DFE81
MSE0.0036Root MSE0.0601
R-Square0.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 DFDen DFF ValuePr > F
58157.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
VariableDFEstimateStandard
Error
t ValuePr > |t|Label
Intercept19.7135560.229642.30<.0001Intercept
lQ10.9192930.029930.76<.0001Log Transformation of Quantity
lPF10.4174920.015227.47<.0001Log Transformation of Price of Fuel
LF1-1.070440.2017-5.31<.0001Load Factor (utilization index)
CS 11-0.007590.0465-0.160.8707Cross-Sectional Effect: 1
CS 21-0.048830.0390-1.250.2144Cross-Sectional Effect: 2
CS 31-0.216510.0184-11.77<.0001Cross-Sectional Effect: 3
CS 410.1769710.02148.27<.0001Cross-Sectional Effect: 4
CS 510.0164750.03780.440.6638Cross-Sectional Effect: 5
CS 610.0794840.04151.920.0588Cross-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

The CPANEL Procedure
Two-Way Fixed Effects (FixTwo)
Dependent Variable: lC (Log Transformation of Costs)

F Test for No Fixed Effects
Num DFDen DFF ValuePr > F
196723.10<.0001

Parameter Estimates
VariableDFEstimateStandard
Error
t ValuePr > |t|Label
Intercept112.665272.08106.09<.0001Intercept
lQ10.8172640.031825.66<.0001Log Transformation of Quantity
lPF10.1687320.16351.030.3057Log Transformation of Price of Fuel
LF1-0.882670.2617-3.370.0012Load Factor (utilization index)
CS 110.1283060.04602.790.0069Cross-Sectional Effect: 1
CS 210.0654810.03901.680.0975Cross-Sectional Effect: 2
CS 31-0.189480.0156-12.14<.0001Cross-Sectional Effect: 3
CS 410.1342590.01837.33<.0001Cross-Sectional Effect: 4
CS 51-0.092640.0373-2.480.0155Cross-Sectional Effect: 5
CS 61-0.045930.0416-1.100.2736Cross-Sectional Effect: 6
Time 19701-0.373860.1919-1.950.0555Time Effect: 1970
Time 19711-0.319160.1861-1.720.0909Time Effect: 1971
Time 19721-0.276540.1833-1.510.1362Time Effect: 1972
Time 19731-0.222920.1730-1.290.2019Time Effect: 1973
Time 19741-0.153880.0864-1.780.0796Time Effect: 1974
Time 19751-0.108050.0449-2.410.0188Time Effect: 1975
Time 19761-0.076860.0319-2.410.0188Time Effect: 1976
Time 19771-0.020720.0204-1.010.3145Time Effect: 1977
Time 197810.0471970.02911.620.1093Time Effect: 1978
Time 197910.0916570.08111.130.2627Time Effect: 1979
Time 198010.2071970.14911.390.1693Time Effect: 1980
Time 198110.285340.17561.620.1089Time Effect: 1981
Time 198210.3012550.16601.810.0741Time Effect: 1982
Time 198310.3003470.15361.960.0547Time Effect: 1983
Time 198410.3190010.14752.160.0341Time 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.

Last updated: July 09, 2026