我想创建一个gls回归,它包括R平方值和观察值,其中的值是"对数似然"等。p值应该低于表中的系数。下面是一个代码示例:'
# import the necessary packages
library(nlme)
library(dplyr)
library(stargazer)
# create a new subset that only includes observations with a value in the "Price.Book.Value" column
dotcom_subset_MBV <- dotcom_subset %>% filter(!is.na(Price.Book.Value))
financial_subset_MBV <- financial_subset %>% filter(!is.na(Price.Book.Value))
covid_subset_MBV <- covid_subset %>% filter(!is.na(Price.Book.Value))
# Hypothesis 2: Fit GLS models
dotcom_model_MBV <- gls(X1.Month.Equity.Premium ~ crisis*Price.Book.Value, data = dotcom_subset_MBV, method = "ML")
financial_model_MBV <- gls(X1.Month.Equity.Premium ~ crisis*Price.Book.Value, data = financial_subset_MBV, method = "ML")
covid_model_MBV <- gls(X1.Month.Equity.Premium ~ crisis*Price.Book.Value, data = covid_subset_MBV, method = "ML")
library(stargazer)
stargazer(dotcom_model_MBV, financial_model_MBV, covid_model_MBV, type = "text",column.labels = c("Dotcom","Financial","Covid"),report=('vc*p'))
上面代码的唯一问题是它显示的是对数似然、赤池信息临界值和贝叶斯信息临界值,而不是R平方值。
我尝试了以下方法:
omit.stat = c("ll", "AIC", "BIC")
它工作了。但是,它还是不能显示R的平方。然后我试着:
add.lines = list(c(paste0("R-squared = ", round(r2_dotcom, 2)
并且它包括称为"R平方"但没有任何值的线。
1条答案
按热度按时间dbf7pr2w1#
下面是一个使用
mtcars
数据的工作示例:由reprex package(v2.0.1)于2023年2月1日创建
add.lines
选项需要一个列表,列表中的每个向量都将被附加到表中,每列中有一个不同的元素,所以你需要值的向量是"R平方"的,然后每个R平方值都打印在一个字符串中(这就是sprintf()
所做的)。另外,请注意,我计算的R平方是观测值和拟合值之间的平方相关性,但并没有声称这在统计上是合理的(尽管这是OLS模型中计算R平方的一种方法)。