r:waldtest:"solve.default(vc[ovar,ovar]):'a'is 0-diml" [英] R: Waldtest: "Error in solve.default(vc[ovar, ovar]) : 'a' is 0-diml"

查看:47
本文介绍了r:waldtest:"solve.default(vc[ovar,ovar]):'a'is 0-diml"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果我的问题已经有了答案,我很抱歉问了我的问题。到目前为止,我找不到一个。

我目前正在对债券的财务数据做回归。我回归的目的是确定两个债券投资组合的收益率是否有显着差异。 我控制4个变量(V1到V4)以控制其他风险来源。

回归公式如下:

("高投资组合"一次回归,"低投资组合"一次回归)

𝑌ield(p)=∝(p)+ 𝛽1(p)*V1+𝛽2(p)*V2+𝛽3(p)*V3(p)+𝛽4(p)*V4(p)  

这将在R中生成以下代码:

   Regression_High <- lm(T_Portfolio ~ T_Slope +T_Credit+T_Ratingscore+ T_Duration)


 (construct variables for Low-Portfolio)


   Regression_Low <- lm(T_Portfolio ~ T_Slope +T_Credit+T_Ratingscore+ T_Duration)

现在的想法是比较这两个截距,以确定这两个投资组合是否显示不同的收益率。

出于这个原因,我想使用Wald检验来确定截取的联合重要性:检验统计量是渐近x²分布的 有2个自由度。

library(aod)
library(lmtest)
Vcov=vcov(Regression_High,Regression_Low)

1. waldtest(Regression_High, Regression_Low, vcov=Vcov,test="Chisq",name=NULL)

2. waldtest(Regression_High, Regression_Low, test="Chisq")

我的两次尝试都产生以下错误消息:

Error in solve.default(vc[ovar, ovar]) : 'a' is 0-diml

有谁知道如何正确进行Waldtest,或者我的错误在哪里?

如有任何意见或建议,我们将不胜感激。

向您致以亲切的问候

Simon

可复制示例:

#loading packages
library(plm)
library(aod)
library(lmtest)

#Data "High-Portfolio"
y=rnorm(10)
v1=rnorm(10)
v2=rnorm(10)
v3=rnorm(10)
v4=rnorm(10)

#Regression 1

lm1<-lm(y~v1+v2+v3+v4)

#Data "Low-Portfolio"
y=rnorm(10)
v1=rnorm(10)
v2=rnorm(10)
v3=rnorm(10)
v4=rnorm(10)

#Regression 2 

lm2<-lm(y~v1+v2+v3+v4)

#Waldtest
library(aod)
library(lmtest)
Vcov=vcov(lm1,lm2)

#Attempt 1
waldtest(lm1,lm2, vcov=Vcov,test="Chisq",name=NULL)

#Attempt 2
waldtest(lm1, lm2, test="Chisq")

推荐答案

据我所知,waldtest在同一对象上采用两个不同的模型(而不是两个不同对象上的两个模型)。您需要在两个模型中使用不同的变量才能使其运行。 在solve(vc[ovar, ovar])处抛出错误,并告诉您vc[ovar, ovar]没有任何维度。这就是ovar的来源

ovar <- which(!(names(coef0(fm1)) %in% names(coef0(fm0))))

fm1fm0是您的两个模型,它们具有相同的变量。

这篇关于r:waldtest:&quot;solve.default(vc[ovar,ovar]):&#39;a&#39;is 0-diml&quot;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆