广义有序logit代码备忘

*------------------------------------------------------------
* 1. 导入数据并进行基本查看
*------------------------------------------------------------

* 从 Excel 文件导入正式分析数据,第一行作为变量名,并清空内存
import excel using "C:\Users\24722\Desktop\工作中\4 毕业论文\正式数据\城市+农村2.xls", firstrow clear

* 查看数据中变量的名称、类型和标签
describe

* 查看主要变量的描述性统计(均值、标准差、最小值、最大值)
summarize

* 对部分分类变量进行单变量频数统计,检查变量分布和编码情况
tab1 AGE GENDER WORK INTERNET EDUCATION DISEASE


*------------------------------------------------------------
* 2. 年龄变量处理(生成虚拟变量,低龄为参照组)
*------------------------------------------------------------

* 将年龄分组变量 AGE 转换为虚拟变量
tab AGE, gen(AGE_)

* 删除低龄组虚拟变量,作为参照组,避免多重共线性
drop AGE_1

* 为中龄和高龄虚拟变量添加标签
label variable AGE_2 "中龄 vs 低龄"
label variable AGE_3 "高龄 vs 低龄"


*------------------------------------------------------------
* 3. 性别变量重编码(女性=1,男性=0)
*------------------------------------------------------------

* 将原始性别变量重编码为二元变量 FEMALE
recode GENDER (2=1 "女性") (1=0 "男性"), gen(FEMALE)

* 为性别虚拟变量添加标签
label variable FEMALE "女性 vs 男性"


*------------------------------------------------------------
* 4. 工作状态变量重编码(工作=1,未工作=0)
*------------------------------------------------------------

* 将工作状态变量重编码为是否工作
recode WORK (3=1 "工作") (1=0 "未工作"), gen(WORKING)

* 为工作状态变量添加标签
label variable WORKING "工作 vs 未工作"


*------------------------------------------------------------
* 5. 网络使用、教育水平和健康状况变量处理
*------------------------------------------------------------

* 网络使用变量(假设已是0/1编码),仅添加标签
label variable INTERNET "使用网络 vs 不使用"

* 将教育水平变量重编码为高学历/低学历
recode EDUCATION (2=1 "高学历") (1=0 "低学历"), gen(HIGH_EDU)

* 为教育水平变量添加标签
label variable HIGH_EDU "高学历 vs 低学历"

* 为慢性病变量添加标签
label variable DISEASE "慢性病 vs 健康"


*------------------------------------------------------------
* 6. 检查变量重编码是否正确(查看前10个观测值)
*------------------------------------------------------------

* 核对年龄、性别、工作和教育变量的原始值与新生成变量
list AGE AGE_2 AGE_3 GENDER FEMALE WORK WORKING EDUCATION HIGH_EDU in 1/10, clean


*------------------------------------------------------------
* 7. 广义有序 Logit 回归模型
*    因变量:主观幸福感(SWB15)
*------------------------------------------------------------

* 使用广义有序 logit 模型分析社会参与对主观幸福感的影响
* autofit 选项用于自动检验并放松比例优势假设
* lrforce 选项用于采用似然比检验,提高稳健性
gologit2 SWB15 CHUANMEN MAJIANG TIAOWU SHETUAN XUEXI ///
         AGE_2 AGE_3 FEMALE WORKING INTERNET HIGH_EDU DISEASE, ///
         autofit lrforce


*------------------------------------------------------------
* 8. 回归结果输出(论文用表格)
*------------------------------------------------------------

* 仅保留核心解释变量的回归结果
esttab, keep(CHUANMEN MAJIANG TIAOWU SHETUAN XUEXI ///
             AGE_2 AGE_3 FEMALE WORKING INTERNET HIGH_EDU DISEASE)

* 输出优势比(OR)、95%置信区间,并使用变量标签
esttab, eform ci label

 有序logit代码备忘

import excel using "C:\Users\24722\Desktop\工作中\4 毕业论文\正式数据\城市+农村2.xls", firstrow clear
describe
summarize
tab1 AGE GENDER WORK INTERNET EDUCATION DISEASE

* 年龄:生成虚拟变量(低龄为参照组)
tab AGE, gen(AGE_)
drop AGE_1
label variable AGE_2 "中龄 vs 低龄"
label variable AGE_3 "高龄 vs 低龄"

* 性别:女性=1,男性=0(参照组)
recode GENDER (2=1 "女性") (1=0 "男性"), gen(FEMALE)
label variable FEMALE "女性 vs 男性"

* 工作:工作=1,未工作=0(参照组)
recode WORK (3=1 "工作") (1=0 "未工作"), gen(WORKING)
label variable WORKING "工作 vs 未工作"

* 网络(假设已是0/1编码)
label variable INTERNET "使用网络 vs 不使用"

* 教育:高学历=1,低学历=0(参照组)
recode EDUCATION (2=1 "高学历") (1=0 "低学历"), gen(HIGH_EDU)
label variable HIGH_EDU "高学历 vs 低学历"

* 慢性病(假设已是0/1编码)
label variable DISEASE "慢性病 vs 健康"

* 简单核对生成变量
list AGE AGE_2 AGE_3 GENDER FEMALE WORK WORKING EDUCATION HIGH_EDU in 1/10, clean

* =========================
* 有序logit模型(替换 gologit2)
* =========================
ologit SWB15 CHUANMEN MAJIANG TIAOWU SHETUAN XUEXI AGE_2 AGE_3 FEMALE WORKING INTERNET HIGH_EDU DISEASE

* 输出:只保留核心解释变量(系数形式)
esttab, keep(CHUANMEN MAJIANG TIAOWU SHETUAN XUEXI AGE_2 AGE_3 FEMALE WORKING INTERNET HIGH_EDU DISEASE) label

* 输出:优势比 OR + 95%CI(论文更常用)
esttab, keep(CHUANMEN MAJIANG TIAOWU SHETUAN XUEXI AGE_2 AGE_3 FEMALE WORKING INTERNET HIGH_EDU DISEASE) 
esttab, eform ci label

 

posted @ 2025-12-24 11:35  Victooor_swd  阅读(6)  评论(0)    收藏  举报