全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
10602 5
2020-08-21
如题,请问stata如何剔除股票简称中包含st,*st的股票呀,以及如何剔除异常值呢,比如特别大或者特别小的值。
二维码

扫码加我 拉你入群

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

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

全部回复
2020-8-21 18:13:34
剔除st可以看下面帖子
https://bbs.pinggu.org/thread-4958258-1-1.html
二维码

扫码加我 拉你入群

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

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

2020-8-21 18:20:40
蓝色 发表于 2020-8-21 18:13
剔除st可以看下面帖子
https://bbs.pinggu.org/thread-4958258-1-1.html
可以麻烦详细解答一下吗,我点不了链接。
二维码

扫码加我 拉你入群

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

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

2020-8-21 18:21:52
蓝色 发表于 2020-8-21 18:13
剔除st可以看下面帖子
https://bbs.pinggu.org/thread-4958258-1-1.html
可以麻烦详细解答一下吗,我点不了链接。
二维码

扫码加我 拉你入群

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

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

2024-6-14 23:02:16
zigzag369 发表于 2020-8-21 18:21
可以麻烦详细解答一下吗,我点不了链接。
drop if strmatch(证券简称,"*ST*")
二维码

扫码加我 拉你入群

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

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

2024-6-14 23:03:12
在Stata中处理数据时,剔除特定条件的数据(例如股票名称中含有"ST", "*ST")和异常值通常需要分两步进行:

### 1. 剔除含有 "ST" 或 "*ST" 的股票

假设你的股票简称字段名为 `stock_name`。你可以使用以下命令来删除包含 "ST" 或 "*ST" 的观测值:

```stata
drop if strpos(stock_name, "ST") > 0 | strpos(stock_name, "*ST") > 0
```

这里,`strpos()` 函数用于查找子字符串在母字符串中的位置。如果返回的值大于零,则表示该股票名称中含有 "ST" 或 "*ST"。

### 2. 剔除异常值

处理异常值通常涉及统计分析和领域知识来确定什么样的数值可以被认为是“异常”。常见的方法是使用箱线图(IQR)规则或Z-分数来识别离群点。这里以IQR为例:

首先,你需要计算数据的四分位数和IQR。

```stata
summarize your_variable, detail
```

然后定义上下限,通常为Q1 - 1.5 * IQR 和 Q3 + 1.5 * IQR,并使用这些值来删除异常值:

假设你的变量名为 `your_variable`:

```stata
egen tempq1 = pctile(your_variable), p(25)
egen tempq3 = pctile(your_variable), p(75)

generate IQR = tempq3 - tempq1
generate lower_bound = tempq1 - 1.5 * IQR
generate upper_bound = tempq3 + 1.5 * IQR

drop if your_variable < lower_bound | your_variable > upper_bound

drop tempq1 tempq3 IQR lower_bound upper_bound // 清理临时变量
```

这样,你就可以有效地剔除包含特定文本的观测值和数值异常的观测值了。在实际操作中,请确保先进行数据备份,以防止意外丢失重要信息。

### 小贴士

- 在删除数据之前,最好将原始数据保存一份副本。
- 使用描述性统计(如 `summarize`)来检查变量的基本特征,有助于确定异常值的阈值。

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



二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群