Рассчитать α и β в пробитной модели в R - PullRequest
0 голосов
/ 24 мая 2019

У меня возникла следующая проблема: я хочу вычислить α и β из следующей пробит-модели в R, которая определяется как:

Вероятность = F (α + β sprd)

где sprd обозначает объясняющую переменную, α и β - константы, F - кумулятивная функция нормального распределения.

Я могу рассчитать вероятности для всего набора данных, коэффициентов (см. Код ниже) и т. Д., Но я не знаю, как получить постоянные α и β.

Цель состоит в том, чтобы определить распространение в Excel, которое соответствует определенной вероятности. Например: какой спред соответствует 50% и т. Д.

Заранее спасибо!

Коэффициенты пробитной модели

probit<- glm(Y ~ X, family=binomial (link="probit"))
summary(probit)

Call:
glm(formula = Y ~ X, family = binomial(link = "probit"))

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.4614  -0.6470  -0.3915  -0.2168   2.5730  

Coefficients:
              Estimate Std. Error z value Pr(>|z|)    
(Intercept) -0.3566755  0.0883634  -4.036 5.43e-05 ***
X           -0.0058377  0.0007064  -8.264  < 2e-16 ***

Ответы [ 2 ]

0 голосов
/ 24 мая 2019

Я видел в вашем удаленном сообщении, что вас не убедил ответ @ RLave. Вот некоторые симуляции, чтобы убедить вас:

# (large) sample size
n <- 10000
# covariate
x <- (1:n)/n
# parameters
alpha <- -1
beta <- 1
# simulated data
set.seed(666)
y <- rbinom(n, 1, prob = pnorm(alpha + beta*x))
# fit the probit model
probit <- glm(y ~ x, family = binomial(link="probit"))
# get estimated parameters - very close to the true parameters -1 and 1
coef(probit)
# (Intercept)           x 
#   -1.004236    1.029523 

Расчетные параметры задаются как coef(probit) или probit$coefficients.

0 голосов
/ 24 мая 2019

На странице help("glm") видно, что объект возвращает значение с именем coefficients.

Объект класса "glm" представляет собой список, содержащий как минимум следующее компоненты:

коэффициенты именованный вектор коэффициентов

Поэтому после вызова glm() этот объект будет list, и вы сможете получить доступ к каждому элементу, используя $name_element.

Воспроизводимый пример (не модель Probit, но она такая же):

counts <- c(18,17,15,20,10,20,25,13,12)
outcome <- gl(3,1,9)
treatment <- gl(3,3)
d.AD <- data.frame(treatment, outcome, counts)

# fit model
glm.D93 <- glm(counts ~ outcome + treatment, family = poisson())

Теперь glm.D93$coefficients напечатает вектор со всеми коэффициентами:

glm.D93$coefficients 

 # (Intercept)      outcome2      outcome3    treatment2    treatment3 
 #3.044522e+00 -4.542553e-01 -2.929871e-01  1.337909e-15  1.421085e-15 

Вы можете назначить это и получить доступ к каждому по отдельности:

coef <- glm.D93$coefficients
coef[1] # your alpha
#(Intercept) 
#   3.044522 
coef[2] # your beta
#  outcome2 
#-0.4542553 
...