【发布时间】:2017-12-27 08:42:14
【问题描述】:
我正在尝试估计一个标准 tobit 模型,该模型被截断为零。
变量是
因变量:幸福
自变量:
- 城市(芝加哥,纽约),
- 性别(男,女),
- 就业(0=失业,1=就业),
- 工作类型(失业,蓝色,白色),
- 假期(失业,每周 1 天,每周 2 天)
“Worktype”和“Holiday”变量与“Employment”变量交互。
我正在使用censReg 包进行 tobit 回归。
censReg(Happiness ~ City + Gender + Employment:Worktype + Employment:Holiday)
但是summary() 返回以下错误。
Error in printCoefmat(coef(x, logSigma = logSigma), digits = digits) :
'x' must be coefficient matrix/data frame
为了找出原因,我运行了 OLS 回归。
有一些 NA 值,我认为这是因为模型设计和变量设置(某些变量似乎存在奇异性。'Employment' = 0 的人具有 'Worktype' = Unemployed、'Holidays' = Unemployed 的值。这可能是原因?)
lm(Happiness ~ City + Gender + Employment:Worktype + Employment:Holiday)
Coefficients: (2 not defined because of singularities)
Estimate Std. Error t value Pr(>|t|)
(Intercept) 41.750 9.697 4.305 0.0499 *
CityNew York -44.500 11.197 -3.974 0.0579 .
Gender1 2.750 14.812 0.186 0.8698
Employment:WorktypeUnemployed NA NA NA NA
Employment:WorktypeBluecolor 35.000 17.704 1.977 0.1867
Employment:WorktypeWhitecolor 102.750 14.812 6.937 0.0202 *
Employment:Holiday1 day a week -70.000 22.394 -3.126 0.0889 .
Employment:Holiday2 day a week NA NA NA NA
我怎样才能忽略 NA 值并运行 tobit 回归而不出错?
以下是可重现的代码。
Happiness <- c(0, 80, 39, 0, 69, 90, 100, 30)
City <- as.factor(c("New York", "Chicago", "Chicago", "New York", "Chicago",
"Chicago", "New York", "New York"))
Gender <- as.factor(c(0, 1, 0, 1, 1, 1, 0, 1)) # 0 = man, 1 = woman.
Employment <- c(0,1, 0, 0, 1 ,1 , 1 , 1) # 0 = unemployed, 1 = employed.
Worktype <- as.factor(c(0, 2, 0, 0, 1, 1, 2,2))
levels(Worktype) <- c("Unemployed", "Bluecolor", "Whitecolor")
Holiday <- as.factor(c(0, 1, 0, 0, 2, 2, 2, 1))
levels(Holiday) <- c("Unemployed", "1 day a week", "2 day a week")
data <- data.frame(Happiness, City, Gender, Employment, Worktype, Holiday)
reg <- lm(Happiness ~ City + Gender + Employment:Worktype +
Employment:Holiday)
summary(reg)
install.packages("censReg")
library(censReg)
tobitreg <- censReg(Happiness ~ City + Gender + Employment:Worktype +
Employment:Holiday)
summary(tobitreg)
【问题讨论】:
标签: r regression na