Užívateľský manuál

Táto stránka je aktuálne v procese tvorby. Ďakujeme za trpezlivosť!

Vo výrobe

Heteroskedasticita

Je to nekonštantnosť rozptylu náhodných porúch, a teda aj rezíduí. S týmto javom sa stretávame vtedy, keď dochádza k veľkým zmenám v hodnotách vysvetľujúcich premenných, ale aj v prípade, ak bola vynechaná podstatná premenná modelu. Opačný jav, konštantnosť rozptylu náhodných porúch, a teda aj rezíduí, sa nazýva homoskedasticita. Na testovanie homoskedasticity sa najčastejšie používa Goldfeldov-Quandtov test (ďalej už len: GQ test). Z iných testov spomeňme: Breuschov-Paganov, Bartlettov, Parkov, Gleicherov, Whiteov, Koenkerov test. Na príklade si ukážeme testovanie homoskedasticity pomocou prvých troch spomenutých testov v R-ku a ďalšie z nich budeme testovať v Gretli.

Postup GQ test

  1. Usporiadame hodnoty vysvetľujúcej premennej X vzostupne.
  2. Vynecháme prostredných M pozorovaní.
  3. Zostatok rozdelíme do dvoch skupín po pozorovaní (nepárne zaokrúhlime nadol).
  4. Pre každú skupinu odhadneme parametre modelu JMNŠ a vypočítame rezíduá. Označíme S1 a S2 súčet štvorcov rezíduí v dolnej a hornej skupine.
  5. Vypočítame GQ test podľa vzorca.

Formulujeme tieto hypotézy:

  1. H0: homoskedasticita
  2. H1: heteroskedasticita

Odstraňovanie heteroskedasticity

  • Pomocu transformácie modelu (dát)

Transformácie

  1. σ2 sú známe, pričom neplatí:

σ21= σ2=….= σ2n
yt = b0+b1Xt1+….+bkXtk+ut
yt/ σ2 = b0.1/ σ2+b1.Xt1/ σ2+….+bk.Xtk /σ2+ut/ σ2

  • v maticovom vyjadrení modelu: y = Xb + ub^ = (X’X)-1 X’Y
  • transformácia: Wy = WXb + Wub^ = (X’W”WX)-1 X’W‘Wy
  1. σ2 sú neznáme, ale možno ich odhadnúť z výberu.
  2. H1: σ2 = c.X2th…… zodpovedá Goldfeld-Quandtov-mu testu


Yt/Xht=b0.1/Xth+b1.Xt1/Xth+….bk.Xtk/Xth+ut/Xth
cov(ut*)=cov(u/Xth)=(1/X2th).cov(u)=eXS2th/X2th=e -> homoskedasticita

Spätná transformácia dát b^ = (b’b)-1 X’y je výdatná a už neobsahuje heteroskedasticitu.

Niekedy sa odstránenie nepodarí po prvom kroku, ale až po niekoľkých krokoch.

Príklad

Vzorový príklad s metódami na testovanie prítomnosti heteroskedasticity a jej odstranenie:


#NACITANIE DAT
Yt <- c(6.1, 7.3, 9.6, 10.2, 10.1, 11.3, 12.2, 12.5, 13.2)
Pt <- c(103, 102, 100, 94, 98, 97, 98, 97, 96)
It <- c(110, 114, 130, 135, 141, 152, 160, 165, 170)

#príprava matíc
mat=cbind(Yt,Pt,It)
model<-(Yt ~ Pt + It)
regresia<-lm(model)

#Goldfield-Quandt Test
gqtest(regresia, order.by = Pt, fraction=1, data = mat)

#Breusch-Pagan Test
bptest(regresia)

#Bartlett test
data<-list(Yt,Pt,It)
bartlett.test(data)
Yt1<-1

for (i in 1:9)
{
  Yt1[i]<-(Yt[i]/It[i])
}

Xt1<-1

for (i in 1:9)
{
  Xt1[i]<-(Pt[i]/It[i])
}
mat1 = cbind(Yt1, Xt1, It)
model1<-(Yt1 ~ Xt1 + It)
regresia1<-lm(model1)
gqtest(regresia1, order.by = It, fraction=2, data = mat1)

#VLASTNA FUNKCIA
Het = function (mat, x, m,rem)
{
  nr = nrow(mat)
  nc = ncol(mat)
  mat1 = mat
  matt=mat
  mat1 = mat1[order(mat1[,x+1]),]  
  if (nr%%2==1){
    if (m%%2==1){
      k=m
    }  
    else{
      k=m+1
    }
  } 
  else {
    if (m%%2==1){
      k=m+1
    }  
    else{
      k=m
    }
  }
  l=0
  l=(nr-k)/2
  mt1 = mat1[1:l,1:nc] 
  cat(mt1,"\n")
  mt2 = mat1[(l+k+1):nr,1:nc]
  cat(mt2,"\n")
  y1=mt1[1:l,1]
  cat(y1,"\n")
  y2=mt2[1:l,1]
  cat(y2,"\n")
  reg = function (Yt, mm)
  {
    regr = lm (Yt~mm)
    nr = nrow(mm)
    nc = ncol(mm)
    y = c()
    b = c()
    for (i in 1:(nc+1))
    {
      b[i]=regr$coef[i]
    }    
    for (i in 1:nr)
    {
      ypom = 0;
      for (j in 2:(nc+1))
      {
        ypom = ypom + b[j]*mm[i,(j-1)]
      }
      y[i]=b[1]+ypom
    }
    y   
  }
  yt1 = reg(y1,mt1[1:l,2:nc])
  yt2 = reg(y2,mt2[1:l,2:nc])
  sum1 = 0
  sum2 = 0
  et1=c()
  et2=c()
  for (i in 1:l){
    et1[i]=y1[i]-yt1[i]
    et1[i]=et1[i]*et1[i]
    sum1 =sum1 + et1[i]
  }
  for (i in 1:l){
    et2[i]=y2[i]-yt2[i]
    et2[i]=et2[i]*et2[i]
    sum2 = sum2 + et2[i]
  }
  if (sum1>sum2){
    Fv=sum1/sum2
  }
  else {
    Fv=sum2/sum1
  }
  sv = l-(nc-1)-1
  Ftab = qf(0.95,sv,sv)
  if (Fv>Ftab){
    H1='true'
    cat(
      " =======================================","\n",
      " Results:","\n\n",
      "---------------------------------------","\n",
      " F stats. calculated: ",Fv,"\n",
      " F stats. tabulated: ",Ftab,"\n",
      " Presence of heteroscedasticity","\n",
      "=======================================","\n\n"
    )
  }
  else {
    H1='false'
    cat(
      " =======================================","\n",
      " Results:","\n\n",
      "---------------------------------------","\n",
      " F stats. calculated: ",Fv,"\n",
      " F stats. tabulated: ",Ftab,"\n",
      " The absence of heteroskedasticity","\n",
      "=======================================","\n\n"
    )
  }
  
  if (H1=='true' & rem=='true'){
    cat(
      " +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+","\n",
      " Removing heteroscedasticity","\n",
      "+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+","\n\n"
    )
    xx=matt[1:nr,x+1]
    for (i in 1:nc){
      if (i==x+1){
        for (j in 1:nr){
          matt[j,i]=1/xx[j]
        }
      }
      else{
        for (j in 1:nr){
          matt[j,i]=matt[j,i]/xx[j]
        }
      }
    }   
    Het(matt,1,1,'false')  
  }
  if (rem=='true'){
    cat(
      " =======================================","\n",
      " New values:","\n\n",
      "---------------------------------------","\n",
      "yt=c("
    )
    for (j in 1:nr){
      if(j
  

Máme dané premenné: Yt, Xt, Pt. Na dátach modelu otestujte homoskedasticitu, v prípade prítomnosti heteroskedasticity sa pokúste o jej odstránenie. Predpokladajte, že heteroskedasticitu spôsobuje premenná Pt.

Riešenie

Príprava programu a dát

  1. K úspešnému vyriešeniu potrebujete mať v R naimportované potrebné knižnice.
    Ako pridám knižnice?

    library(sem)
    library(zoo)
    library(lmtest)library(xlsReadWrite) (zadávame, ak používame načítanie dát z Excelu)
    xls.getshlib() (zadávame, ak používame načítanie dát z Excelu)
  2. Načítanie dát.
  3. Zo vstupných údajov urobíte maticu.
  4. mat=cbind(Yt,Xt,Pt)
  5. Zadefinujete model.
  6. model<-(Yt ~ Xt + Pt)
  7. Regeresia- výpočet b0, b1, b2.
  8. regresia<-lm(model)


Testovanie homoskedasticity


Na otestovanie homoskedasticity môžeme v R použiť jeden z nasledujúcich spôsobov:

  • Goldfield-Quandt Test
  • Breusch-Pagan Test
  • Bartlett Test
  • Vlastná funkcia
Zdroje:
Marček, D., Marček, M., Pančíková, L.: Ekonometria a soft computing. Žilina: EDIS, 2008 ISBN 978-80-8070-746-0
Marček, D. : Ekonometria: Základy. Postupy. Aplikačné príklady. Žilina: EDIS 1999 ISBN 80-7100-557-6

🔍