定序回归模型

什么是定序回归

定序回归的因变量是定序变量,数据类型是顺序数据。比如不满意,一般,满意;不合格,合格,优秀等。

模型构建

假设因变量是评分,先由单变量回归说起,则普通的线性回归模型为:
s c o r e = β 0 + β 1 × x 1 + ϵ \mathrm{score}=\beta_0+\beta_1\times x_1+\epsilon score=β0+β1×x1+ϵ
若上式中score不是连续变量,而是分类变量(例如取值为1,2,3,4)。这样等式两边的数据类型不统一,直接进行回归是没有意义的。我们考虑引入连续变量Z, 先让Z进行普通线性回归。
Z = β 0 + β 1 × x 1 + ϵ . Z=\beta_0+\beta_1\times x_1+\epsilon. Z=β0+β1×x1+ϵ.
并定义Z和score之间存在下面的关系:
s c o r e = { 1 , if Z ≤ c 1 ; 2 , if c 1 < Z ≤ c 2 ; 3 , if c 2 < Z ≤ c 3 ; 4 , if c 3 < Z . \mathrm{score}=\begin{cases} 1, \quad \text{if} \quad Z\leq c_1;\\ 2, \quad \text{if} \quad c_1<Z\leq c_2;\\ 3, \quad \text{if} \quad c_2< Z\leq c_3;\\ 4, \quad \text{if} \quad c_3< Z.\\ \end{cases} score= 1,ifZc1;2,ifc1<Zc2;3,ifc2<Zc3;4,ifc3<Z.
进一步可得:
1 ≤ k < 4 1\leq k<4 1k<4时,
Pr ⁡ ( s c o r e ≤ k ) = Pr ⁡ ( Z ≤ c k ) = Pr ⁡ ( β 0 + β 1 × x 1 + ϵ ≤ c k ) = F ϵ ( α k − β 1 × x 1 ) ; \begin{aligned} \Pr(\mathrm{score}\leq k)&=\Pr(Z\leq c_k)\\ &=\Pr(\beta_0+\beta_1\times x_1+\epsilon\leq c_k)\\ &=F_\epsilon(\alpha_k-\beta_1\times x_1); \end{aligned} Pr(scorek)=Pr(Zck)=Pr(β0+β1×x1+ϵck)=Fϵ(αkβ1×x1);
k = 4 k=4 k=4时,
Pr ⁡ ( s c o r e = 4 ) = 1 − Pr ⁡ ( s c o r e ≤ 3 ) , \Pr(\mathrm{score}=4)=1-\Pr(\mathrm{score}\leq 3), Pr(score=4)=1Pr(score3),
其中, α k = c k − β 0 \alpha_k=c_k-\beta_0 αk=ckβ0, F ϵ ( ⋅ ) F_\epsilon(\cdot) Fϵ()表示 ϵ \epsilon ϵ的分布函数。

通过不同连接函数对 F ϵ ( ⋅ ) F_\epsilon(\cdot) Fϵ()进行建模可以得到不同形式的回归模型。

若用正态分布的分布函数 Φ ( ⋅ ) \Phi(\cdot) Φ()表示 F ϵ ( ⋅ ) F_\epsilon(\cdot) Fϵ(), 可得到定序回归的Probit模型:
Pr ⁡ ( s c o r e ≤ k ) = Φ ( α k − β 1 × x 1 ) . \Pr(\mathrm{score}\leq k)=\Phi(\alpha_k-\beta_1\times x_1). Pr(scorek)=Φ(αkβ1×x1).
进一步,有
Φ − 1 { Pr ⁡ ( s c o r e ≤ k ) } = α k − β 1 × x 1 . \Phi^{-1}\{\Pr(\mathrm{score}\leq k)\}=\alpha_k-\beta_1\times x_1. Φ1{Pr(scorek)}=αkβ1×x1.
上式左边可以通过计算得到,右边即为线性表达式。需要注意的是,与OLS相比,截距项 α k \alpha_k αk是有k个。

若用Logist连接函数来表示表示 F ϵ ( ⋅ ) F_\epsilon(\cdot) Fϵ(), 可得到定序回归的Logist模型:
Pr ⁡ ( s c o r e ≤ k ) = exp ⁡ ( α k − β 1 × x 1 ) 1 + exp ⁡ ( α k − β 1 × x 1 ) . \Pr(\mathrm{score}\leq k)=\frac{\exp(\alpha_k-\beta_1\times x_1)}{1+\exp(\alpha_k-\beta_1\times x_1)}. Pr(scorek)=1+exp(αkβ1×x1)exp(αkβ1×x1).
进一步,有
l o g i t { Pr ⁡ ( s c o r e ≤ k ) } = log ⁡ ( Pr ⁡ ( s c o r e ≤ k ) 1 − Pr ⁡ ( s c o r e ≤ k ) ) = α k − β 1 × x 1 . \mathrm{logit}\{\Pr(\mathrm{score}\leq k)\}=\log\left(\frac{\Pr(\mathrm{score}\leq k)}{1-\Pr(\mathrm{score}\leq k)}\right)=\alpha_k-\beta_1\times x_1. logit{Pr(scorek)}=log(1Pr(scorek)Pr(scorek))=αkβ1×x1.

随后可以利用极大似然估计,得到参数 α ^ 1 , α ^ 2 , . . . , α ^ 4 , β ^ 1 \hat{\alpha}_1,\hat{\alpha}_2,...,\hat{\alpha}_4,\hat{\beta}_1 α^1,α^2,...,α^4,β^1.
α ^ 1 , α ^ 2 , . . . , α ^ 4 , β ^ 1 = arg max ⁡ α 1 , . . , α 4 , β 1 ∏ i = 1 n p ( x i ; α 1 , . . , α 4 , β 1 ) , \hat{\alpha}_1,\hat{\alpha}_2,...,\hat{\alpha}_4,\hat{\beta}_1=\argmax_{\alpha_1,..,\alpha_4,\beta_1}\prod_{i=1}^n p(x_i;\alpha_1,..,\alpha_4,\beta_1), α^1,α^2,...,α^4,β^1=α1,..,α4,β1argmaxi=1np(xi;α1,..,α4,β1),
其中
p ( x i ; α 1 , . . , α 4 , β 1 ) = { F ϵ ( α 1 − β 1 × x 1 ) , if s c o r e i = 1 ; F ϵ ( α k − β 1 × x 1 ) − F ϵ ( α k − 1 − β 1 × x 1 ) , if s c o r e i = k , 1 < k < 4 ; 1 − F ϵ ( α 3 − β 1 × x 1 ) , if s c o r e i = 4. p(x_i;\alpha_1,..,\alpha_4,\beta_1)=\begin{cases} F_\epsilon(\alpha_1-\beta_1\times x_1),\quad \text{if}\quad \mathrm{score}_i=1;\\ F_\epsilon(\alpha_k-\beta_1\times x_1)-F_\epsilon(\alpha_{k-1}-\beta_1\times x_1),\quad \text{if}\quad \mathrm{score}_i=k, 1<k<4;\\ 1-F_\epsilon(\alpha_3-\beta_1\times x_1),\quad \text{if}\quad \mathrm{score}_i=4. \end{cases} p(xi;α1,..,α4,β1)= Fϵ(α1β1×x1),ifscorei=1;Fϵ(αkβ1×x1)Fϵ(αk1β1×x1),ifscorei=k,1<k<4;1Fϵ(α3β1×x1),ifscorei=4.

R语言实现

library(MASS)
set.seed(1535)
df=data.frame(
  score=factor(sample(x=c(1,2,3),size=100,replace = TRUE,prob = c(0.3,0.3,0.4))),
  x1=rnorm(n=100,mean=0.1,sd=1),
  x2=rnorm(n=100,mean=-0.1,sd=1.5)
  )
head(df)
# score         x1         x2
# 1     3 -0.8999129  0.7749112
# 2     2  0.9048189  2.1696023
# 3     3  1.2148977 -1.7717242
# 4     1 -0.6594323 -0.8592811
# 5     3 -0.9922733  1.3890127
# 6     1 -1.1719010 -0.7299038
model=polr(score~.,data=df,Hess = TRUE,method = c('logistic'))
summary(model)
# 
# 
# Call:
#   polr(formula = score ~ ., data = df, Hess = TRUE, method = c("logistic"))
# 
# Coefficients:
#   Value Std. Error t value
# x1  0.2323     0.1999  1.1621
# x2 -0.0738     0.1310 -0.5633
# 
# Intercepts:
#   Value   Std. Error t value
# 1|2 -1.0663  0.2398    -4.4465
# 2|3  0.4586  0.2174     2.1094
# 
# Residual Deviance: 214.361 
# AIC: 222.361 


Python语言实现

python的mord模块中的LogisticIT()LogisticAT()可以实现相同的效果。
https://pythonhosted.org/mord/

### 有序逻辑回归分析在信用卡风险评估中的应用 #### 义与特性 有序逻辑回归(Ordinal Logistic Regression),又称顺序Logit模型或多类别Logistic回归,适用于因变量为有序类别的场景。这类模型扩展了标准的二元逻辑回归,能够处理多于两个级别的响应变量,并假这些级别存在自然排序关系。 #### 应用背景 在金融领域特别是信用卡业务中,客户的信用等级通常被划分为几个离散且有次序的状态,比如良好、一般、较差等。因此,利用有序逻辑回归可以更精确地捕捉到这种层次化的特征,从而帮助金融机构更好地理解哪些因素会影响持卡人的违约可能性以及程度[^1]。 #### 模型优势 相比于其他类型的分类方法,如无序多项式logit或者probit模型,有序逻辑回归具备以下优点: - **参数估计效率更高**:由于考虑到了类别间的内在秩序结构,在相同条件下往往可以获得更加有效的统计推断; - **解释力更强**:可以直接解读各个自变量对于提升/降低某一特水平的风险有多大作用; #### 实施过程 当应用于实际项目时,实施有序逻辑回归主要包括以下几个方面的工作: - 数据预处理阶段要特别注意确保目标变量确实属于有序性质,并对其进行适当编码; - 特征工程环节需深入挖掘那些可能影响信贷质量的关键指标,例如日均消费次数、单笔最高支出额等因素都可能是重要的输入项; - 建模过程中应当遵循一的理论基础和技术规范,包括但不限于检验比例几率假设(Proportional Odds Assumption)、调整过拟合等问题; ```python from sklearn.linear_model import LogisticRegression import pandas as pd # 加载数据集 data = pd.read_csv('credit_risk_data.csv') # 预处理... X, y = data[['feature_1', 'feature_2']], data['ordered_target'] # 创建并训练有序逻辑回归模型 model = LogisticRegression(multi_class='ovr') model.fit(X, y) # 输出模型性能评价指标或其他操作... ``` #### 结果解析 最终建立起来的有序逻辑回归模型不仅有助于识别高危群体,还可以量化各因子的重要性及其对不同档次间迁移的影响方向和强度。这对于制个性化的营销策略和服务方案有着重要意义。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值