楼主: risherC
11508 7

[回归分析求助] 多个被解释变量与同一个解释变量分别做线性回归 [推广有奖]

  • 0关注
  • 0粉丝

高中生

85%

还不是VIP/贵宾

-

威望
0
论坛币
20 个
通用积分
2.0000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
327 点
帖子
11
精华
0
在线时间
62 小时
注册时间
2018-5-2
最后登录
2022-4-20

楼主
risherC 学生认证  发表于 2020-4-26 16:08:20 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
如题,求助stata中有没有什么命令可以完成:用同一个解释变量跟多个被解释变量做线性回归并把所有模型的相关系数和t值依次给出?几百个被解释变量,一个一个回归效率较低,想了解下有没有更好的解决方案?谢谢大家!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:解释变量 线性回归 求助stata Stata 相关系数

沙发
黃河泉 在职认证  发表于 2020-4-26 17:05:54
1. 这似乎是很简单的事,但由于你并未附上代表性资料,导致大家不知如何回答!2. 你若要问程序,永远附上相关资料 (请不要用截图);若附上资料,永远用 dataex 印出资料。
•        先 ssc install dataex (并见说明),将原始 Stata 资料中具有”代表性”的一部分资料列出,以供有意回答者实验之用,并能提供具体操作指令。
•        请参考说明 https://bbs.pinggu.org/thread-5048204-1-1.html

藤椅
risherC 学生认证  发表于 2020-4-26 19:20:25
黃河泉 发表于 2020-4-26 17:05
1. 这似乎是很简单的事,但由于你并未附上代表性资料,导致大家不知如何回答!2. 你若要问程序,永远附上相 ...
感谢您的回复!不好意思,是我疏忽了这一点。我先整理好相关数据,随后放出来供大家实验,再次感谢您的提醒~

板凳
risherC 学生认证  发表于 2020-4-26 19:56:26
抱歉,stata的dataex一直安装不成功,我把excel数据放附件给大家实验。
模型是Y=β1+β2*X1,需要把108个Y分别放入前述方程中回归,得到相应的系数和t值。求助大家:有没有命令可以完成这108次回归之后依次给出回归结果?
感谢各位关注的好心人,第一次在论坛发帖没什么经验,给大家回答问题造成不便很不好意思,下次发帖前我多看看发帖须知[em04]

报纸
Lagrangen 发表于 2020-7-31 19:46:19 来自手机
risherC 发表于 2020-4-26 19:56
抱歉,stata的dataex一直安装不成功,我把excel数据放附件给大家实验。
模型是Y=β1+β2*X1,需要把108个Y分 ...
楼主找到解决办法了吗?小白同问……

地板
On_Air 学生认证  发表于 2021-11-4 15:52:00
请问有解决方案吗?

7
On_Air 学生认证  发表于 2021-11-4 16:06:06
*---------设置Y,设置220次
gen Y1=y1
gen Y2=y2

*---------假设220个Y
mat b = J(220,1,0) //* 系数矩阵
mat se = J(220,1,0) //* 标准误矩阵
mat p = J(220,1,0) //* P值矩阵

*循环220次
forvalues i=1/220{
        reghdfe  y`i' X control, absorb(证券代码 year )  vce(cluster 证券代码   )  //可以
        
         
*将回归结果赋值到对应矩阵的对应位置
         mat b[`i',1] = _b[X]
         mat se[`i',1] = _se[X]

*计算P值并赋值于矩阵
        mat p[`i',1] = 2*ttail(e(df_r), abs(_b[X]/_se[X]))
}
*矩阵转化为向量
svmat b, names(coef)
svmat se, names(se)
svmat p, names(pvalue)
*删除空值并添加标签
drop if pvalue1 == .
label var pvalue1 p值
label var coef1 估计系数
keep coef1 se1 pvalue1

8
赵安豆 发表于 2024-5-8 10:49:51
在Stata中,可以使用`margins`命令结合`foreach`循环来实现这个任务。首先,确保你的数据已经正确设定并排序。然后,你可以使用以下代码模板:

```stata
* 假设解释变量为x,被解释变量分别为y1, y2, ..., yn
* 先定义一个包含所有被解释变量的变量列表
local yvars "y1 y2 ... yn"

foreach var of local yvars {
    reg `var' x
    margins, over(x)
    display "变量`var': 协方差系数 = `r(slope)', t值 = `r(t)'
}
```

这段代码会依次对每个被解释变量进行线性回归,并显示每个模型的斜率(即相关系数)和t值。不过,这个方法仍然需要为每个变量运行一次回归。如果你有大量的变量,这可能还是有些慢。目前Stata中没有内置功能可以一次性得到所有结果。

另外,你还可以考虑使用Stata的 Mata 或其他编程语言(如Python、R等)来编写更高效的解决方案。但请注意,这将需要更多的编程知识。

此文本由CAIE学术大模型生成,添加下方二维码,优先体验功能试用



您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-19 13:34