使用 R 中的 plm 包对 Hedonic 数据进行面板回归
Using the panel regression on Hedonic data using plm package in R
我正在尝试 运行 使用 plm 包对 R 中的不平衡面板进行面板回归。我正在使用 'Hedonic' 数据与 运行 相同。
我试图复制在以下论文中完成的类似内容:http://ftp.uni-bayreuth.de/math/statlib/R/CRAN/doc/vignettes/plm/plmEN.pdf(第 14 页,3.2.5 不平衡面板)。
我的代码看起来像这样:
form = mv ~ crim + zn + indus + chas + nox + rm + age + dis + rad + tax + ptratio + blacks + lstat
ba = plm(form, data = Hedonic)
但是,我在执行时遇到以下错误:
Error in names(y) <- namesy :
'names' attribute [506] must be the same length as the vector [0]
traceback() 产生以下结果:
4: pmodel.response.pFormula(formula, data, model = model, effect = effect,
theta = theta)
3: pmodel.response(formula, data, model = model, effect = effect,
theta = theta)
2: plm.fit(formula, data, model, effect, random.method, random.dfcor,
inst.method)
1: plm(form, data = Hedonic)
我是面板回归的新手,如果有人能帮助我解决这个问题,我将不胜感激。
谢谢。
那篇论文已有 10 年历史了,我不确定 plm
是否像那样工作。最新文档在这里 https://cran.r-project.org/web/packages/plm/vignettes/plm.pdf
你的问题出现是因为,在文档中:
the current version of plm is capable of working with a regular
data.frame without any further transformation, provided that the
individual and time indexes are in the first two columns,
Hedonic
数据集前两列没有个体索引和时间索引。我不确定个人索引和时间索引在数据中的位置,但是如果我为索引指定 townid
,我至少会得到运行的东西:
> p <- plm(mv~crim,data=Hedonic)
Error in names(y) <- namesy :
'names' attribute [506] must be the same length as the vector [0]
> p <- plm(mv~crim,data=Hedonic, index="townid")
> p
Model Formula: mv ~ crim
Coefficients:
crim
-0.0097455
因为当你不指定 id 和 time 索引时,它会尝试使用前两列,而在 Hedonic 中,它为 id 提供了唯一的数字,所以整个模型会崩溃。
如果您查看 help(plm)
中的示例,您可能会注意到所有数据集中的前两列定义了 ID 和时间。
我正在尝试 运行 使用 plm 包对 R 中的不平衡面板进行面板回归。我正在使用 'Hedonic' 数据与 运行 相同。
我试图复制在以下论文中完成的类似内容:http://ftp.uni-bayreuth.de/math/statlib/R/CRAN/doc/vignettes/plm/plmEN.pdf(第 14 页,3.2.5 不平衡面板)。
我的代码看起来像这样:
form = mv ~ crim + zn + indus + chas + nox + rm + age + dis + rad + tax + ptratio + blacks + lstat
ba = plm(form, data = Hedonic)
但是,我在执行时遇到以下错误:
Error in names(y) <- namesy :
'names' attribute [506] must be the same length as the vector [0]
traceback() 产生以下结果:
4: pmodel.response.pFormula(formula, data, model = model, effect = effect,
theta = theta)
3: pmodel.response(formula, data, model = model, effect = effect,
theta = theta)
2: plm.fit(formula, data, model, effect, random.method, random.dfcor,
inst.method)
1: plm(form, data = Hedonic)
我是面板回归的新手,如果有人能帮助我解决这个问题,我将不胜感激。
谢谢。
那篇论文已有 10 年历史了,我不确定 plm
是否像那样工作。最新文档在这里 https://cran.r-project.org/web/packages/plm/vignettes/plm.pdf
你的问题出现是因为,在文档中:
the current version of plm is capable of working with a regular data.frame without any further transformation, provided that the individual and time indexes are in the first two columns,
Hedonic
数据集前两列没有个体索引和时间索引。我不确定个人索引和时间索引在数据中的位置,但是如果我为索引指定 townid
,我至少会得到运行的东西:
> p <- plm(mv~crim,data=Hedonic)
Error in names(y) <- namesy :
'names' attribute [506] must be the same length as the vector [0]
> p <- plm(mv~crim,data=Hedonic, index="townid")
> p
Model Formula: mv ~ crim
Coefficients:
crim
-0.0097455
因为当你不指定 id 和 time 索引时,它会尝试使用前两列,而在 Hedonic 中,它为 id 提供了唯一的数字,所以整个模型会崩溃。
如果您查看 help(plm)
中的示例,您可能会注意到所有数据集中的前两列定义了 ID 和时间。