我试图运行plm
来查看正面,负面和中性类别对股票价格的影响。
DATE <- c("1","2","3","4","5","6","7","1","2","3","4","5","6","7")
COMP <- c("A", "A", "A", "A", "A", "A", "A", "B", "B", "B", "B", "B", "B", "B")
RET <- c(-2.0,1.1,3,1.4,-0.2, 0.6, 0.1, -0.21, -1.2, 0.9, 0.3, -0.1,0.3,-0.12)
CLASS <- c("positive", "negative", "neutral", "positive", "positive", "negative", "neutral", "positive", "negative", "negative", "positive", "neutral", "neutral", "neutral")
df <- data.frame(DATE, COMP, RET, CLASS, stringsAsFactors=F)
df
# DATE COMP RET CLASS
# 1 1 A -2.00 positive
# 2 2 A 1.10 negative
# 3 3 A 3.00 neutral
# 4 4 A 1.40 positive
# 5 5 A -0.20 positive
# 6 6 A 0.60 negative
# 7 7 A 0.10 neutral
# 8 1 B -0.21 positive
# 9 2 B -1.20 negative
# 10 3 B 0.90 negative
# 11 4 B 0.30 positive
# 12 5 B -0.10 neutral
# 13 6 B 0.30 neutral
# 14 7 B -0.12 neutral
如果我运行模型,则输出仅显示两个估计(中性和肯定)。我如何看待课堂负面评价?我认为这与假人有关。但是,对于否定类,至少不应该有一行“拦截”吗?
mymodel <- plm(RET ~ CLASS, data=df,
index = c("DATE", "COMP"),
model="within",
effect="time")
summary(mymodel)
# Oneway (time) effect Within Model
# Call:
# plm(formula = RET ~ CLASS, data = df, effect = "time", model = "within",
# index = c("DATE", "COMP"))
# Balanced Panel: n=7, T=2, N=14
# Residuals :
# Min. 1st Qu. Median 3rd Qu. Max.
# -2.1500 -0.4620 -0.0791 0.7540 1.9300
# Coefficients :
# Estimate Std. Error t-value Pr(>|t|)
# CLASSneutral 0.35818 0.81581 0.4390 0.670
# CLASSpositive -0.56418 0.81581 -0.6916 0.505
# Total Sum of Squares: 16.79
# Residual Sum of Squares: 14.694
# R-Squared : 0.12486
# Adj. R-Squared : 0.089183
# F-statistic: 0.713347 on 2 and 10 DF, p-value: 0.5133
谢谢!
最佳答案
与大多数具有分类协变量的模型一样,第一级用作参考级。在这种情况下,“负”类别用作参考类别,因为默认情况下R会按字母顺序对因子的级别进行排序。当拥有分类数据时,就无法真正弄清特定于人的均值和参考类别的均值。它们合并为拦截项。那么CLASSneutral
的系数不是neutral
类的影响,而是neutral
和negative
的影响之间的差异。 CLASSpositive
相同-positive
和negative
的效果不同。由于该模型默认情况下使用单独的效果,因此每个人都有自己的截距,我假设这就是为什么他们没有在摘要上打印它。
这不是plm
唯一的。标准lm
也会发生相同的情况。