gls回归中的R平方

jfewjypa  于 2023-02-06  发布在  其他
关注(0)|答案(1)|浏览(271)

我想创建一个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平方"但没有任何值的线。

dbf7pr2w

dbf7pr2w1#

下面是一个使用mtcars数据的工作示例:

data(mtcars)
library(nlme)
library(stargazer)
#> 
#> Please cite as:
#>  Hlavac, Marek (2022). stargazer: Well-Formatted Regression and Summary Statistics Tables.
#>  R package version 5.2.3. https://CRAN.R-project.org/package=stargazer
m1 <- gls(qsec ~ cyl + wt, data=mtcars)
m2 <- gls(mpg ~ cyl + wt, data=mtcars)
r2 <- c(cor(fitted(m1), mtcars$qsec)^2, 
        cor(fitted(m2), mtcars$mpg)^2)
stargazer(m1, m2, 
          type="text", 
          omit.stat = c("ll", "AIC", "BIC"),
          add.lines = list(c("R-squared", sprintf("%.2f", r2))))
#> 
#> =========================================
#>                  Dependent variable:     
#>              ----------------------------
#>                   qsec           mpg     
#>                   (1)            (2)     
#> -----------------------------------------
#> cyl            -1.173***      -1.508***  
#>                 (0.197)        (0.415)   
#>                                          
#> wt              1.356***      -3.191***  
#>                 (0.360)        (0.757)   
#>                                          
#> Constant       20.743***      39.686***  
#>                 (0.815)        (1.715)   
#>                                          
#> -----------------------------------------
#> R-squared         0.56          0.83     
#> Observations       32            32      
#> =========================================
#> Note:         *p<0.1; **p<0.05; ***p<0.01

reprex package(v2.0.1)于2023年2月1日创建
add.lines选项需要一个列表,列表中的每个向量都将被附加到表中,每列中有一个不同的元素,所以你需要值的向量是"R平方"的,然后每个R平方值都打印在一个字符串中(这就是sprintf()所做的)。
另外,请注意,我计算的R平方是观测值和拟合值之间的平方相关性,但并没有声称这在统计上是合理的(尽管这是OLS模型中计算R平方的一种方法)。

相关问题