
Ajuste modelo beta com resposta ordinal transformada intervalar
betaregscale.Rd
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)
}