R-ohjelmointi.org

Tilastotieteellistä ohjelmointia R-kielellä

Seemingly unrelated regression (SUR) R:llä

Seemingly unrelated regressions (SUR) on ekonometrinen menetelmä, jossa aineistoon sovitetaan useampia regressiomalleja, joiden virhetermien välillä on korrelaatiota. SUR voidaan käsittää myös klassisessa mielessä paneelidatamenetelmäksi, ja se muistuttaa eräiltä piirteiltään myös structural equation model (SEM) -malleja. R:ssä tällaisen mallin voi sovittaa systemfit-paketin funktioilla. Paketti antaa myös mahdollisuuden testata mm. erilaisia hypoteeseja mallien parametrien estimaattien suhteesta.

Otetaanpa esimerkki systemfit-paketin vinjetistä. Dataan sovitetaan kaksi eri mallia, joissa molemmissa ennustetaan ruoan kulutusta. Mallit määritetään ensin formula-muodossa, minkä jälkeen ne sovitetaan yhtä aikaa funktiolla systemfit():

library("systemfit")
data("Kmenta")
eqDemand <- consump ~ price + income
eqSupply <- consump ~ price + farmPrice + trend
eqSystem <- list(demand = eqDemand, supply = eqSupply)
fitsur <- systemfit(eqSystem, method = "SUR", data=Kmenta )

Mallin tuloksia voi tarkastella tavanomaiseen tapaan summary() -komennolla:

systemfit results 
method: SUR 
 
        N DF     SSR  detRCov   OLS-R2 McElroy-R2
system 40 33 169.741 0.879285 0.683453   0.788722
 
        N DF      SSR     MSE    RMSE       R2   Adj R2
demand 20 17  65.6829 3.86370 1.96563 0.755019 0.726198
supply 20 16 104.0584 6.50365 2.55023 0.611888 0.539117
 
The covariance matrix of the residuals used for estimation
        demand  supply
demand 3.72539 4.13696
supply 4.13696 5.78444
 
The covariance matrix of the residuals
        demand  supply
demand 3.86370 4.92431
supply 4.92431 6.50365
 
The correlations of the residuals
         demand   supply
demand 1.000000 0.982348
supply 0.982348 1.000000
 
 
SUR estimates for 'demand' (equation 1)
Model Formula: consump ~ price + income
 
              Estimate Std. Error  t value   Pr(>|t|)    
(Intercept) 99.3328942  7.5144525 13.21891 2.2597e-10 ***
price       -0.2754857  0.0885091 -3.11251  0.0063324 ** 
income       0.2985505  0.0419454  7.11760 1.7249e-06 ***
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1
 
Residual standard error: 1.96563 on 17 degrees of freedom
Number of observations: 20 Degrees of Freedom: 17 
SSR: 65.682902 MSE: 3.8637 Root MSE: 1.96563 
Multiple R-Squared: 0.755019 Adjusted R-Squared: 0.726198 
 
 
SUR estimates for 'supply' (equation 2)
Model Formula: consump ~ price + farmPrice + trend
 
              Estimate Std. Error t value   Pr(>|t|)    
(Intercept) 61.9661660 11.0807901 5.59222 4.0480e-05 ***
price        0.1468841  0.0944351 1.55540 0.13940780    
farmPrice    0.2140040  0.0398684 5.36776 6.2829e-05 ***
trend        0.3393039  0.0679113 4.99628 0.00013185 ***
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1
 
Residual standard error: 2.550226 on 16 degrees of freedom
Number of observations: 20 Degrees of Freedom: 16 
SSR: 104.05843 MSE: 6.503652 Root MSE: 2.550226 
Multiple R-Squared: 0.611888 Adjusted R-Squared: 0.539117

Mallien parametrien estimaattien eroja voidaan testata tilastollisella testillä (vaikkapa Wald) määrittelemällä ensin testattava kontrasti ja sen jälkeen testaamalla sitä komennolla linearHypothesis(). Kontrastia määriteltäessä tulee verrattavien estimaattien olla määritelty muodossa mallinnimi_estimaatinnimi. Esimerkiksi edellä sovitettujen mallien price-muuttujien estimaatteja voitaisiin verrata toisiinsa (nollahypoteesina on, että eroa ei ole) seuraavasti:

restriction <- "demand_price - supply_price = 0"
linearHypothesis(fitsur, restriction, test = "Chisq")
 
Linear hypothesis test (Chi^2 statistic of a Wald test)
 
Hypothesis:
demand_price - supply_price = 0
 
Model 1: restricted model
Model 2: fitsur
 
  Res.Df Df  Chisq Pr(>Chisq)    
1     34                         
2     33  1 31.712  1.788e-08 ***
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

Tuloksen perusteella estimaatien arvot poikkeavat toisistaan.

Paketin vinjetti tutustuttaa myös muihin malleihin (esim. two-stage least squares), joita paketilla voi sovittaa, joten kannattaa tutustua siihen ennen paketin käyttöä.

Tags: ,