目录
# import相关包
import os
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
import statsmodels.api as sm
import statsmodels.formula.api as smf
from scipy.stats import chi2
from sklearn.metrics import roc_curve, auc
# 参数设置
plt.rcParams['font.sans-serif']=['SimHei'] #中文
plt.rcParams['axes.unicode_minus'] = False #负号
filePath = r'E:\CH4'
fileName = r'ST.csv'
一、目的
利用公开的财务报表信息预测上市公司未来ST状态。
二、数据来源和相关说明
1、数据来源
上市公司历史财务数据,及其未来(3年后)的ST状态。
df_raw = pd.read_csv(open(os.path.join(filePath, fileName))) #获取数据
2、数据信息
- 训练集: 1999年,684条样本;
- 测试集: 2000年,746条样本。
df_train = df_raw[df_raw['year'] == 1999] #训练集
print('Trian Data: ', df_train.shape)
df_test = df_raw[df_raw['year'] == 2000] #测试集
print('Test Data: ', df_test.shape)
3、变量信息
(1)自变量
- 应收账款/总资产(ARA):用于衡量盈利质量;
- 对数变换后的资产总计(ASSET):用于反映公司规模;
- 资产周转率(ATO):用于度量资产利用效率;
- 销售收入增长率(GROWTH):,用于反映公司的成长潜力;
- 债务资本比率(LEV):用于反映债务状况;
- 资产收益率(ROA):用于度量盈利能力;
- 最大股东的持股比例(SHARE):用于反映股权结构。
print(df_train.info())
(2)因变量
上市公司在三年后的ST状态:0或1。
# 变量列表
str_cols = []
num_cols = ['ARA', 'ASSET', 'ATO', 'GROWTH', 'LEV', 'ROA', 'SHARE']
x_cols = str_cols + num_cols
y_col = 'ST'
三、描述性分析
1、数据抽样
print('\n[CHECK]\n', df_train.head())
2、数据分布
- 被标记为ST的公司占比很低,仅为5%;
- 自变量中除个别峰度较大,绝大部分