Oi Claudiano, tudo bem?
A primeira coisa que pensei foi no pacote broom, você conhece?
A função broom::tidy()
recebe como argumento algum resultado de teste estatístico e resulta em uma tabela.
Nesse caso que você apresentou, me parece que o objeto final tem uma classe que o broom não aceita:
broom::tidy(bvp)
Erro: No tidy method for objects of class SemiParBIV
Outra forma de obter esse valor é através de listas… Salvando o resultado do summary em um objeto, você pode verificar que esse resultado é uma lista, e você pode navegar na mesma usando colchetes e cifrão. No exemplo abaixo converti a parte necessária em uma tibble, assim fica mais fácil acessar os valores posteriormente.
Exemplo:
require(GJRM)
#> Carregando pacotes exigidos: GJRM
#> Carregando pacotes exigidos: mgcv
#> Carregando pacotes exigidos: nlme
#> This is mgcv 1.8-34. For overview type 'help("mgcv-package")'.
#>
#> This is GJRM 0.2-3.
#> For overview type 'help("GJRM-package")'.
set.seed(123)
x1 <- sample(1:100, size = 20)
bid1 <- sample(c(5, 10, 20, 30), size = 20, replace = T)
bid2 <- sample(c(5, 10, 20, 30), size = 20, replace = T)
ans1 <- sample(c(1,0), size = 20, replace = T)
ans2 <- sample(c(1,0), size = 20, replace = T)
df <- cbind(x1, bid1, bid2, ans1, ans2)
df <- as.data.frame(df)
treat.eq <- ans1 ~ bid1 + x1
out.eq <- ans2 ~ bid2 + x1
f.list <- list(treat.eq, out.eq)
mr <- c("probit", "probit")
#Regressão e summary
bvp <- gjrm(f.list, data=df, Model="B", margins= mr)
# TERMINA AQUI O CÓDIGO DO CLAUDIANO
# Carregar o pipe
library(magrittr, include.only = "%>%")
# Salvar o resultado do summary em um objeto
lista_summary <- summary(bvp)
# ver a classe desse objeto
class(lista_summary)
#> [1] "summary.SemiParBIV"
# Exemplo para a tabela da Equation 1
tabela_eq_1 <- lista_summary$tableP1 # estamos trabalhando com listas, salvar o que queremos usar em outro objeto para facilitar
tabela_eq_1 %>%
as.data.frame() %>% # transformar em data frame
tibble::rownames_to_column("value") %>% # adicionar o nome das linhas como uma nova coluna
tibble::as_tibble() # agora sim transformar em tibble
#> # A tibble: 3 x 5
#> value Estimate `Std. Error` `z value` `Pr(>|z|)`
#> <chr> <dbl> <dbl> <dbl> <dbl>
#> 1 (Intercept) 0.838 0.798 1.05 0.294
#> 2 bid1 -0.0468 0.0314 -1.49 0.136
#> 3 x1 -0.0107 0.00994 -1.07 0.284
Created on 2021-03-27 by the reprex package (v1.0.0)
Com a tibble ao final, fica mais fácil acessar os valores. Caso você tenha dúvidas nessa parte, responde aqui novamente! Abraços