2017-07-22 8 views
2

私はNewey-Westテストを実行して、異方性と自己相関の残差を持つ回帰の推定値を評価しています。R:Coeftestによってエラーが発生する

私は "サンドイッチ"と "lmtest"パッケージを使用しています。

私は簡単に他のサイトで見つかった例を再現することができますが、私自身のスクリプトでエラーが発生します。dimnamesで

エラー(CD)< - リスト(as.character(インデックス(x))が、COLNAMES(X )):非アレイに印加 'dimnames'

マイコード:

ffregression <- lm(ex.return ~ fff$Mkt.RF + fff$SMB + fff$HML) 
coeftest(ffregression,vcov=NeweyWest) 

STR(ffregression):

List of 12 
$ coefficients : Named num [1:4] 0.00604 0.72976 0.90351 0.13548 
    ..- attr(*, "names")= chr [1:4] "(Intercept)" "fff$Mkt.RF" "fff$SMB" "fff$HML" 
$ residuals :An ‘xts’ object on Mar 2014/Dec 2016 containing: 
    Data: num [1:34] -0.03637 0.0408 -0.00672 0.04648 -0.02275 ... 
    Indexed by objects of class: [yearmon] TZ: 
    Original class: 'double' 
    xts Attributes: 
NULL 
$ effects  :An ‘xts’ object on Mar 2014/Dec 2016 containing: 
    Data: num [1:34] -0.0606 0.1785 0.1379 0.0204 -0.0262 ... 
    Indexed by objects of class: [yearmon] TZ: 
    Original class: 'double' 
    xts Attributes: 
NULL 
$ rank   : int 4 
$ fitted.values:An ‘xts’ object on Mar 2014/Dec 2016 containing: 
    Data: num [1:34] -0.000725 -0.031716 0.003868 0.051386 -0.047005 ... 
    Indexed by objects of class: [yearmon] TZ: 
    Original class: 'double' 
    xts Attributes: 
NULL 
$ assign  : int [1:4] 0 1 2 3 
$ qr   :List of 5 
    ..$ qr : num [1:34, 1:4] -5.831 0.171 0.171 0.171 0.171 ... 
    .. ..- attr(*, "dimnames")=List of 2 
    .. .. ..$ : chr [1:34] "1" "2" "3" "4" ... 
    .. .. ..$ : chr [1:4] "(Intercept)" "fff$Mkt.RF" "fff$SMB" "fff$HML" 
    .. ..- attr(*, "assign")= int [1:4] 0 1 2 3 
    ..$ qraux: num [1:4] 1.17 1.05 1.14 1.14 
    ..$ pivot: int [1:4] 1 2 3 4 
    ..$ tol : num 1e-07 
    ..$ rank : int 4 
    ..- attr(*, "class")= chr "qr" 
$ df.residual : int 30 
$ xlevels  : Named list() 
$ call   : language lm(formula = ex.return ~ fff$Mkt.RF + fff$SMB + fff$HML) 
$ terms  :Classes 'terms', 'formula' language ex.return ~ fff$Mkt.RF + fff$SMB + fff$HML 
    .. ..- attr(*, "variables")= language list(ex.return, fff$Mkt.RF, fff$SMB, fff$HML) 
    .. ..- attr(*, "factors")= int [1:4, 1:3] 0 1 0 0 0 0 1 0 0 0 ... 
    .. .. ..- attr(*, "dimnames")=List of 2 
    .. .. .. ..$ : chr [1:4] "ex.return" "fff$Mkt.RF" "fff$SMB" "fff$HML" 
    .. .. .. ..$ : chr [1:3] "fff$Mkt.RF" "fff$SMB" "fff$HML" 
    .. ..- attr(*, "term.labels")= chr [1:3] "fff$Mkt.RF" "fff$SMB" "fff$HML" 
    .. ..- attr(*, "order")= int [1:3] 1 1 1 
    .. ..- attr(*, "intercept")= int 1 
    .. ..- attr(*, "response")= int 1 
    .. ..- attr(*, ".Environment")=<environment: R_GlobalEnv> 
    .. ..- attr(*, "predvars")= language list(ex.return, fff$Mkt.RF, fff$SMB, fff$HML) 
    .. ..- attr(*, "dataClasses")= Named chr [1:4] "nmatrix.1" "nmatrix.1" "nmatrix.1" "nmatrix.1" 
    .. .. ..- attr(*, "names")= chr [1:4] "ex.return" "fff$Mkt.RF" "fff$SMB" "fff$HML" 
$ model  :'data.frame': 34 obs. of 4 variables: 
    ..$ ex.return :An ‘xts’ object on Mar 2014/Dec 2016 containing: 
    Data: num [1:34, 1] -0.03709 0.00909 -0.00285 0.09786 -0.06975 ... 
- attr(*, "dimnames")=List of 2 
    ..$ : NULL 
    ..$ : chr "RF" 
    Indexed by objects of class: [yearmon] TZ: 
    Original class: 'double' 
    xts Attributes: 
NULL 
    ..$ fff$Mkt.RF:An ‘xts’ object on Mar 2014/Dec 2016 containing: 
    Data: num [1:34, 1] 0.0043 -0.0019 0.0206 0.0261 -0.0204 0.0424 -0.0197 0.0252 0.0255 -0.0006 ... 
- attr(*, "dimnames")=List of 2 
    ..$ : NULL 
    ..$ : chr "Mkt.RF" 
    Indexed by objects of class: [yearmon] TZ: 
    xts Attributes: 
NULL 
    ..$ fff$SMB :An ‘xts’ object on Mar 2014/Dec 2016 containing: 
    Data: num [1:34, 1] -0.0185 -0.0419 -0.0185 0.0301 -0.0422 0.004 -0.038 0.0428 -0.0205 0.0259 ... 
- attr(*, "dimnames")=List of 2 
    ..$ : NULL 
    ..$ : chr "SMB" 
    Indexed by objects of class: [yearmon] TZ: 
    xts Attributes: 
NULL 
    ..$ fff$HML :An ‘xts’ object on Mar 2014/Dec 2016 containing: 
    Data: num [1:34, 1] 0.0503 0.011 -0.0036 -0.0066 -0.0002 -0.0055 -0.0119 -0.0168 -0.0298 0.0212 ... 
- attr(*, "dimnames")=List of 2 
    ..$ : NULL 
    ..$ : chr "HML" 
    Indexed by objects of class: [yearmon] TZ: 
    xts Attributes: 
NULL 
    ..- attr(*, "terms")=Classes 'terms', 'formula' language ex.return ~ fff$Mkt.RF + fff$SMB + fff$HML 
    .. .. ..- attr(*, "variables")= language list(ex.return, fff$Mkt.RF, fff$SMB, fff$HML) 
    .. .. ..- attr(*, "factors")= int [1:4, 1:3] 0 1 0 0 0 0 1 0 0 0 ... 
    .. .. .. ..- attr(*, "dimnames")=List of 2 
    .. .. .. .. ..$ : chr [1:4] "ex.return" "fff$Mkt.RF" "fff$SMB" "fff$HML" 
    .. .. .. .. ..$ : chr [1:3] "fff$Mkt.RF" "fff$SMB" "fff$HML" 
    .. .. ..- attr(*, "term.labels")= chr [1:3] "fff$Mkt.RF" "fff$SMB" "fff$HML" 
    .. .. ..- attr(*, "order")= int [1:3] 1 1 1 
    .. .. ..- attr(*, "intercept")= int 1 
    .. .. ..- attr(*, "response")= int 1 
    .. .. ..- attr(*, ".Environment")=<environment: R_GlobalEnv> 
    .. .. ..- attr(*, "predvars")= language list(ex.return, fff$Mkt.RF, fff$SMB, fff$HML) 
    .. .. ..- attr(*, "dataClasses")= Named chr [1:4] "nmatrix.1" "nmatrix.1" "nmatrix.1" "nmatrix.1" 
    .. .. .. ..- attr(*, "names")= chr [1:4] "ex.return" "fff$Mkt.RF" "fff$SMB" "fff$HML" 
- attr(*, "class")= chr "lm" 

例:

set.seed(04012017) 
n<-34 
correlated_residuals<-arima.sim(list(ar = .9), n) 
y<-correlated_residuals 
x<-1:n 
plot(x,correlated_residuals) 
fit<-lm(y~x) 
abline(fit) 
summary(fit) # standard estimates 
coeftest(fit,vcov=NeweyWest(fit,verbose=T)) 

STR(フィット):

List of 12 
$ coefficients : Named num [1:2] -0.179 0.148 
    ..- attr(*, "names")= chr [1:2] "(Intercept)" "x" 
$ residuals : Named num [1:34] -0.9529 0.976 0.3025 -0.0486 -1.1214 ... 
    ..- attr(*, "names")= chr [1:34] "1" "2" "3" "4" ... 
$ effects  : Named num [1:34] -14.026 8.449 0.25 -0.085 -1.142 ... 
    ..- attr(*, "names")= chr [1:34] "(Intercept)" "x" "" "" ... 
$ rank   : int 2 
$ fitted.values: Named num [1:34] -0.0314 0.1163 0.264 0.4116 0.5593 ... 
    ..- attr(*, "names")= chr [1:34] "1" "2" "3" "4" ... 
$ assign  : int [1:2] 0 1 
$ qr   :List of 5 
    ..$ qr : num [1:34, 1:2] -5.831 0.171 0.171 0.171 0.171 ... 
    .. ..- attr(*, "dimnames")=List of 2 
    .. .. ..$ : chr [1:34] "1" "2" "3" "4" ... 
    .. .. ..$ : chr [1:2] "(Intercept)" "x" 
    .. ..- attr(*, "assign")= int [1:2] 0 1 
    ..$ qraux: num [1:2] 1.17 1.23 
    ..$ pivot: int [1:2] 1 2 
    ..$ tol : num 1e-07 
    ..$ rank : int 2 
    ..- attr(*, "class")= chr "qr" 
$ df.residual : int 32 
$ xlevels  : Named list() 
$ call   : language lm(formula = y ~ x) 
$ terms  :Classes 'terms', 'formula' language y ~ x 
    .. ..- attr(*, "variables")= language list(y, x) 
    .. ..- attr(*, "factors")= int [1:2, 1] 0 1 
    .. .. ..- attr(*, "dimnames")=List of 2 
    .. .. .. ..$ : chr [1:2] "y" "x" 
    .. .. .. ..$ : chr "x" 
    .. ..- attr(*, "term.labels")= chr "x" 
    .. ..- attr(*, "order")= int 1 
    .. ..- attr(*, "intercept")= int 1 
    .. ..- attr(*, "response")= int 1 
    .. ..- attr(*, ".Environment")=<environment: R_GlobalEnv> 
    .. ..- attr(*, "predvars")= language list(y, x) 
    .. ..- attr(*, "dataClasses")= Named chr [1:2] "numeric" "numeric" 
    .. .. ..- attr(*, "names")= chr [1:2] "y" "x" 
$ model  :'data.frame': 34 obs. of 2 variables: 
    ..$ y: num [1:34] -0.984 1.092 0.566 0.363 -0.562 ... 
    ..$ x: int [1:34] 1 2 3 4 5 6 7 8 9 10 ... 
    ..- attr(*, "terms")=Classes 'terms', 'formula' language y ~ x 
    .. .. ..- attr(*, "variables")= language list(y, x) 
    .. .. ..- attr(*, "factors")= int [1:2, 1] 0 1 
    .. .. .. ..- attr(*, "dimnames")=List of 2 
    .. .. .. .. ..$ : chr [1:2] "y" "x" 
    .. .. .. .. ..$ : chr "x" 
    .. .. ..- attr(*, "term.labels")= chr "x" 
    .. .. ..- attr(*, "order")= int 1 
    .. .. ..- attr(*, "intercept")= int 1 
    .. .. ..- attr(*, "response")= int 1 
    .. .. ..- attr(*, ".Environment")=<environment: R_GlobalEnv> 
    .. .. ..- attr(*, "predvars")= language list(y, x) 
    .. .. ..- attr(*, "dataClasses")= Named chr [1:2] "numeric" "numeric" 
    .. .. .. ..- attr(*, "names")= chr [1:2] "y" "x" 
- attr(*, "class")= chr "lm" 

答えて

1

Rは、あなたのデータは非配列から来ているので、それがdimnamesを割り当てることができないことを不平を言っているようです。代わりに1つのxtsオブジェクトのみをデータに使用してください。

fff$ex.return <- ex.return 
ffregression <- lm(ex.return ~ Mkt.RF + SMB + HML, data = fff) 
coeftest(ffregression,vcov=NeweyWest) 
+0

これは問題でした、ありがとうPaul! – user169340

関連する問題