我面临以下问题:我想从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 ***
答案 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
给出。