在R的Probit模型中计算α和β

时间:2019-05-24 10:09:30

标签: r rstudio probability

我面临以下问题:我想从R中的以下概率模型计算α和β,该模型定义为:

概率= F(α+βsprd)

其中sprd表示解释变量,α和β是常数,F是累积正态分布函数。

我可以计算整个数据集,系数(请参见下面的代码)等的概率,但是我不知道如何获得常数α和β。

目的是确定与某个概率相对应的Excel中的价差。例如:哪个点差对应50%等。

先谢谢您!

Probit模型系数

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 :(得分:0)

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 

答案 1 :(得分:0)

我在您删除的帖子中看到,@ 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给出。