Skip to contents

Função core que ajusta um modelo beta ordinal para resposta intervalar usando a função optim do pacote stats, retornando uma tabela com estatísticas sumarizadas do ajuste, tanto para dispesão fixa como variável.

Usage

betaregscale(
  formula,
  dados,
  link = "logit",
  link_phi = "logit",
  acumulada = TRUE,
  ncuts = 100,
  type = "m",
  lim = 0.5,
  repar = "2",
  method = "BFGS",
  num_hessiana = TRUE
)

Arguments

formula

Fórmula para expressar a relação das preditoras X1, X2, Xn relacionadas com os betas e também Z1, Z2, ..., Zn para aquelas relacionadas com phi, se houver. Ela deve ser referenciada em Y. Ex. formula = y ~ X1 + X2 ou formula = y ~ X1 + X2 | Z1 ou formula = y ~ X1 + X2 | Z1 + Z2, etc. Como a variável resposta é intervalar ela deverá ser passada como left e right no objeto dados. Veja os detalhes para mais informação.

dados

Um conjunto de dados que contém a variável dependente e as variáveis independentes especificadas na fórmula. Ele dever conter o limite inferior (left) e o limite superior (right) da variável resposta intervalar Y.

link

Nome da função de ligação a ser usada para as preditoras X1, X2, ..., Xn. Pode ser uma das seguintes: "logit", "probit", "cauchit", "cloglog" ou "identity". O padrão é "logit".

link_phi

Nome da função de ligação a ser usada para as preditoras Z1, Z2, ..., Zn relacionadas com phi. Pode ser uma das seguintes: "log", "sqrt e "identity". O padrão é "log".

acumulada

Se TRUE, retorna a verossimilhança pela pbeta, dbeta caso contrário.

ncuts

Número de cortes para a variável ordinal. O padrão é 100.

type

Tipo de intervalo. "m" = meio; "l" = esquerda e "r" = direita.

lim

Região de incerteza da medida. Padrão 0.5.

repar

Tipo de reparametrização sendo 0, 1 ou 2. Padrão 2.

method

Método a ser usado. Veja detalhes em optim

num_hessiana

Se TRUE, calcula a matriz Hessian numericamente com o pacote numDeriv. Se FALSE, calcula com o padrão da optim.

Value

Retorna uma lista contendo o resultado da otimização e uma tabela com estatísticas sumarizadas do ajuste.

Examples

if (FALSE) {
n <- 100
dados <- data.frame(x1 = rnorm(n), x2 = rnorm(n),
                    z1 = runif(n), z2 = runif(n))
fx <- ~ x1 + x2
fz <- ~ z1
dados_simulados <- betaregscale_simula_dados_z(
formula_x = fx,
formula_z = fz,
dados = dados,
betas = c(0.2, -0.5, 0.3),
zetas = c(1, 1.2),
link = "logit",
link_phi = "logit",
ncuts = 100)
fit1 <- betaregscale(y ~ x1 + x2,
dados = dados_simulados,
link = "logit",
link_phi = "logit",
num_hessiana = TRUE)
print(fit1)

fit2 <- betaregscale(y ~ x1 + x2 | z1,
dados = dados_simulados,
link = "logit",
link_phi = "logit",
num_hessiana = TRUE)
print(fit2)
}