版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第7章
基礎(chǔ)案例案例介紹周最小最大交易日獲取股票價(jià)格指數(shù)周收益率計(jì)算案例介紹第7章
計(jì)算上證A股指數(shù)(代碼:000002)2017年的周收益率。周收益率=(周最大交易日收盤(pán)指數(shù)?周最小交易日收盤(pán)指數(shù))/周最小交易日收盤(pán)指數(shù)本案例使用了交易日歷表和指數(shù)日交易數(shù)據(jù)表MarkettypeClddtDaywkState12017-01-032O12017-01-043O12017-01-054O12017-01-065O12017-01-091O12017-01-102O12017-01-113O12017-01-124O12017-01-135O……………………IndexcdIdxtrd01Idxtrd050000022017-01-033283.450000022017-01-043307.450000022017-01-053314.390000022017-01-063302.790000022017-01-093320.530000022017-01-103310.490000022017-01-113284.370000022017-01-123266.040000022017-01-133259.27………………周最小和最大交易日獲取第7章
由于我們獲取的數(shù)據(jù)為日行情交易數(shù)據(jù),無(wú)法直接計(jì)算周收益率,需要對(duì)交易日歷數(shù)據(jù)進(jìn)行處理,即找出每周的最大交易日和最小交易日。從交易日歷表的星期(Daywk)字段可以看出,當(dāng)前星期值比下一個(gè)星期值大,其對(duì)應(yīng)的交易日即為本周的最大交易日,下一個(gè)星期值對(duì)應(yīng)的交易日即為下周的最小交易日。算法如下:輸入:交易日歷數(shù)據(jù)表date。輸出:周最小交易日和最大交易日列表list1和list2。Step1:定義空的列表list1和list2,將交易日歷表中的首個(gè)交易日添加到list1中。Step2:從第2個(gè)交易日開(kāi)始至倒數(shù)第2個(gè)交易日,如果其星期值大于下一個(gè)交易日的星期值,
則將其交易日添加到list2中,下一個(gè)交易日添加到list1中。Step3:將最后的交易日添加到list2中。周最小和最大交易日獲取第7章
importpandasaspdx=pd.read_excel('TRD_Cale.xlsx')list1=['2017-01-03']list2=[]fortinrange(1,len(x)-1):p=x.iloc[t-1,[2]][0]q=x.iloc[t,[2]][0]ifq<p:list1.append(x.iloc[t,[1]][0])list2.append(x.iloc[t-1,[1]][0])list2.append('2017-12-29')周收益率計(jì)算第7章
獲得每周的最小交易日列表list1和最大交易日列表list2后,可以通過(guò)循環(huán)的方式,依次取最大交易日和最小交易日對(duì)應(yīng)的收盤(pán)指數(shù),利用前面介紹的公式計(jì)算即可獲得周收益率指標(biāo)數(shù)據(jù)。data=pd.read_excel('IDX_Idxtrd.xlsx')importnumpyasnpr=np.zeros(len(list1))foriinrange(len(list1)):p1=data.loc[data['Idxtrd01'].values==list1[i],'Idxtrd05'].valuesp2=data.loc[data['Idxtrd01'].values==list2[i],'Idxtrd05'].valuesr[i]=(p2-p1)/p1第0周的最大交易日2017年1月6日對(duì)應(yīng)的收盤(pán)指數(shù)3302.76,減去第0周最小交易日2017年1月3日對(duì)應(yīng)的收盤(pán)指數(shù)3283.45,再除以第0周最小交易日2017年1月3日對(duì)應(yīng)的收盤(pán)指數(shù)3283.45,就可以得到周收益率指標(biāo)數(shù)據(jù)為:0.00589015。周收益率計(jì)算第7章
importpandasaspdA=pd.read_excel('IDX_Idxtrd.xlsx')A['Idxtrd01']=pd.to_datetime(A.iloc[:,1])A['month']=A['Idxtrd01'].dt.monthA['week']=A['Idxtrd01'].dt.isocalendar().weekA_w=A.iloc[:,[2,4]]A_m=A.iloc[:,[2,3]]p1=A_w.groupby(['week'])['Idxtrd05'].first().valuesp2=A_w.groupby(['week'])['Idxtrd05'].last().valuesw_r=(p2-p1)/p1可參考第3章中的時(shí)間元素提取和分組統(tǒng)計(jì)方法進(jìn)行計(jì)算,其方法更加簡(jiǎn)潔,但是結(jié)果可能存在一些差異。第7章
基礎(chǔ)案例案例介紹指標(biāo)計(jì)算案例介紹第7章
找出“計(jì)算機(jī)、通信和其他電子設(shè)備制造業(yè)”所有上市公司2015年~2017年連續(xù)3年凈利潤(rùn)增長(zhǎng)率都在40%以上的公司。當(dāng)期凈利潤(rùn)增長(zhǎng)率=(當(dāng)期凈利潤(rùn)?上期凈利潤(rùn))/上期凈利潤(rùn)。本案例使用的數(shù)據(jù)表包括:計(jì)算機(jī)、通信和其他電子設(shè)備制造業(yè)公司利潤(rùn)表和股票行業(yè)基本信息表StkcdAccperB0020001010000162014-12-3152623527.860000162015-12-31-12568193150000162016-12-3195673028.030000162017-12-3150570251560000202014-12-317687620.270000202015-12-31-4200845.61………………StkcdStknmeNnindnmae000016深康佳A計(jì)算機(jī)、通信和其他電子設(shè)備制造業(yè)000020深華發(fā)A計(jì)算機(jī)、通信和其他電子設(shè)備制造業(yè)000021深科技計(jì)算機(jī)、通信和其他電子設(shè)備制造業(yè)000045深紡織A計(jì)算機(jī)、通信和其他電子設(shè)備制造業(yè)000050深天馬A計(jì)算機(jī)、通信和其他電子設(shè)備制造業(yè)000063中興通訊計(jì)算機(jī)、通信和其他電子設(shè)備制造業(yè)000066中國(guó)長(zhǎng)城計(jì)算機(jī)、通信和其他電子設(shè)備制造業(yè)000068華控賽格計(jì)算機(jī)、通信和其他電子設(shè)備制造業(yè)………………指標(biāo)計(jì)算第7章
上市公司凈利潤(rùn)增長(zhǎng)率指標(biāo)計(jì)算的基本思路如下:首先需要選擇滿足2014年~2017年都存在利潤(rùn)數(shù)據(jù)的上市公司,不滿足條件的刪除。其方法是將data2.xlsx中的Stkcd列轉(zhuǎn)化為序列,采用值統(tǒng)計(jì)函數(shù)value_counts()即可實(shí)現(xiàn)篩選。其次對(duì)滿足條件的股票代碼,采用循環(huán)的方式,依次取得4年的凈利潤(rùn)數(shù)據(jù),將其轉(zhuǎn)化為Numpy數(shù)據(jù)組的形式,假設(shè)記為d,則3年的凈利潤(rùn)增長(zhǎng)率=(d[1:]-d[0:-1])/d[0:-1]。最后將結(jié)果整理為數(shù)據(jù)框的形式展現(xiàn)出來(lái)。指標(biāo)計(jì)算第7章
#1.數(shù)據(jù)準(zhǔn)備importpandasaspddt=pd.read_excel('data2.xlsx')code=dt['Stkcd'].value_counts()code=list(code[code==4].index)info=pd.read_excel('info.xlsx')S=pd.Series(info.iloc[:,1].values,index=info.iloc[:,0].values)#2.預(yù)定義列表,用于存放各年的凈利潤(rùn)增長(zhǎng)率,并賦值計(jì)算list1=[]list2=[]list3=[]list4=[]fortinrange(len(code)):d=dt.iloc[dt.iloc[:,0].values==code[t],2].values
r=(d[1:]-d[0:-1])/d[0:-1]iflen(r[r>0.4])==3:list1.append(S[code[t]])list2.append(r[0])list3.append(r[1])list4.append(r[2])#3.結(jié)果轉(zhuǎn)換為數(shù)據(jù)框D={'2015':list2,'2016':list3,'2017':list4}D=pd.DataFrame(D,index=list1)第7章
基礎(chǔ)案例案例介紹繪圖數(shù)據(jù)計(jì)算繪圖及圖形保存案例介紹第7章
本案例主要介紹股票日收盤(pán)價(jià)格、成交量的走勢(shì)圖以及月交易量分布餅圖的繪制技能,并進(jìn)一步介紹了子圖的繪制方法。股票代碼交易日期收盤(pán)價(jià)交易量6000002017-01-0316.3162371256000002017-01-0416.33296587346000002017-01-0516.3264376466000002017-01-0616.18171955986000002017-01-0916.2149087456000002017-01-1016.1979967566000002017-01-1116.169193332……………………(1)繪制股票代碼600000日期為2017年1月3日—2017年1月20日的收盤(pán)價(jià)格走勢(shì)圖。(2)繪制股票代碼600000日期為2017年1月3日—2017年1月24日的交易量柱狀圖。(3)計(jì)算股票代碼600000,2017年1月—11月的交易量,并繪制其餅圖。(4)將以上的價(jià)格走勢(shì)圖、柱狀圖、餅圖在同一個(gè)figure上以子圖的形式繪制出來(lái)。任務(wù)如下:繪圖數(shù)據(jù)計(jì)算第7章
importpandasaspdimportnumpyasnpimportmatplotlib.pyplotaspltdata=pd.read_excel('trd.xlsx')dt=data.loc[data['股票代碼']==600000,['交易日期','收盤(pán)價(jià)','交易量']]I1=dt['交易日期'].values>='2017-01-03'I2=dt['交易日期'].values<='2017-01-20'dta=dt.iloc[I1&I2,:]y1=dta['收盤(pán)價(jià)']x1=range(len(y1))I3=dt['交易日期'].values>='2017-01-03'I4=dt['交易日期'].values<='2017-01-24'dta=dt.iloc[I3&I4,:]y2=dta['交易量']x2=range(len(y2))D=np.zeros((11))list1=list()forminrange(11):m=m+1ifm<10:m1='2017-0'+str(m)+'-01'm2='2017-0'+str(m)+'-31'mon='0'+str(m)else:m1='2017-'+str(m)+'-01'm2='2017-'+str(m)+'-31'mon=str(m)I1=dt['交易日期'].values>=m1I2=dt['交易日期'].values<=m2D[m-1]=dt.iloc[I1&I2,[2]].sum()[0]list1.append(mon)繪圖及圖形保存第7章
1.股票價(jià)格走勢(shì)圖繪制plt.figure(1)plt.plot(x1,y1)plt.xlabel(u'日期',fontproperties='SimHei')plt.ylabel(u'收盤(pán)價(jià)',fontproperties='SimHei')plt.title(u'收盤(pán)價(jià)走勢(shì)圖',fontproperties='SimHei')plt.savefig('1')繪圖及圖形保存第7章
2.交易量分布柱狀圖plt.figure(2)plt.bar(x2,y2)plt.xlabel(u'日期',fontproperties='SimHei')plt.ylabel(u'交易量',fontproperties='SimHei')plt.title(u'交易量趨勢(shì)圖',fontproperties='SimHei')plt.savefig('2')繪圖及圖形保存第7章
3.月交易量分布餅圖plt.figure(3)plt.pie(D,labels=list1,autopct='%1.2f%%')#保留小數(shù)點(diǎn)后兩位plt.title(u'月交易量分布圖',fontproperties='SimHei')plt.savefig('3')繪圖及圖形保存第7章
4.收盤(pán)價(jià)走勢(shì)圖、交易量分布圖和月交易量餅圖組成的3×1子圖plt.figure(4)plt.figure(figsize=(14,6))plt.subplot(1,3,1)plt.plot(x1,y1)plt.xlabel(u'日期',fontproperties='SimHei')plt.ylabel(u'收盤(pán)價(jià)',fontproperties='SimHei')plt.title(u'收盤(pán)價(jià)走勢(shì)圖',fontproperties='SimHei')plt.subplot(1,3,2)plt.bar(x2,y2)plt.xlabel(u'日期',fontproperties='SimHei')plt.ylabel(u'交易量',fontproperties='SimHei')plt.title(u'交易量趨勢(shì)圖',fontproperties='SimHei')plt.subplot(1,3,3)plt.pie(D,labels=list1,autopct='%1.2f%%')#保留小數(shù)點(diǎn)后兩位plt.title(u'月交易量分布圖',fontproperties='SimHei')plt.savefig('4')第7章
基礎(chǔ)案例案例介紹圖像繪制案例介紹第7章
今有中小板股票002001~002020共20個(gè),以及2016年5月1日—2016年8月1日的交易數(shù)據(jù)StkcdTrddtClsprc0020012016-05-0320.990020012016-05-0420.420020012016-05-0520.490020012016-05-0618.70020012016-05-0918.670020012016-05-1019.07………………其中字段依次表示股票代碼、交易日期、收盤(pán)價(jià)。任務(wù)如下:(1)計(jì)算每只股票10日移動(dòng)平均收盤(pán)價(jià)格數(shù)據(jù)。(2)繪制每只股票收盤(pán)價(jià)走勢(shì)圖和移動(dòng)平均收盤(pán)價(jià)走勢(shì)圖,并用子圖的形式表示出來(lái)。案例介紹第7章
說(shuō)明:每個(gè)figure按照2×2劃分,即每個(gè)figure繪制4只股票的收盤(pán)價(jià)走勢(shì)圖和移動(dòng)平均價(jià)格走勢(shì)圖,20只股票則需要5個(gè)figure,使用循環(huán)的方式實(shí)現(xiàn)。提示:可以考慮使用Python中的取余運(yùn)算來(lái)實(shí)現(xiàn),取余符號(hào)為%,例如:0%4=01%4=12%4=23%4=34%4=05%4=16%4=27%4=38%4=09%4=1……凡是取余為0的時(shí)候都需要?jiǎng)?chuàng)建一個(gè)figure,在這個(gè)figure中繪制4個(gè)子圖。圖形繪制第7章
importpandasaspdimportnumpyasnpimportmatplotlib.pyplotasplttrd=pd.read_excel('trd.xlsx')#獲取股票代碼,并轉(zhuǎn)化為列表的形式c=trd['Stkcd'].value_counts()code=list(c.index)#動(dòng)態(tài)計(jì)算需要q個(gè)figure,#其中每個(gè)figure繪制4個(gè)子圖,每個(gè)子圖代表一個(gè)股票#初始值設(shè)置q=0q=0#循環(huán)對(duì)每一個(gè)股票繪制其圖形foriinrange(20):
#第i個(gè)股票的收盤(pán)價(jià)記為p,并計(jì)算其移動(dòng)平均價(jià)
#構(gòu)造繪圖的橫軸和縱軸坐標(biāo)值
p=trd.loc[trd['Stkcd'].values==code[i],'Clsprc']
avg_p=p.rolling(10).mean()
x1=np.arange(0,len(p))
y1=p.values
y2=avg_p[9:]
x2=np.arange(9,len(p))
#如果i與4整除,代表需要重新建一個(gè)figure(每個(gè)figure有4個(gè)子圖)
ifi%4==0:
q=q+1
plt.figure(q)
plt.figure(figsize=(8,6))
plt.subplot(2,2,i%4+1)
plt.tight_layout()#用于設(shè)置圖像外部邊緣自動(dòng)調(diào)整
plt.plot(x1,y1)
plt.plot(x2,y2)
plt.savefig(str(q))圖形繪制第7章
第7章
基礎(chǔ)案例案例介紹指標(biāo)計(jì)算模型求解案例介紹第7章
滬深300指數(shù)作為中國(guó)股票價(jià)格指數(shù)的代表,也是中國(guó)股指期貨的標(biāo)的指數(shù),對(duì)其走勢(shì)預(yù)測(cè)具有積極的現(xiàn)實(shí)意義與應(yīng)用價(jià)值。今有滬深300指數(shù)2014年的交易數(shù)據(jù)。IndexcdIdxtrd01Idxtrd02Idxtrd03Idxtrd04Idxtrd05Idxtrd060003002014-01-022323.432325.992310.652321.98451942.90003002014-01-032311.972314.842280.892290.78597826.50003002014-01-062286.372286.372229.332238.646630040003002014-01-072222.312246.792218.6522384375310003002014-01-082240.642262.582228.422241.91513488.50003002014-01-092236.972258.892220.82222.22559870.40003002014-01-102216.522224.492200.222204.85541692.90003002014-01-1322072222.072183.62193.68501227.70003002014-01-142192.842214.122179.912212.85540499.50003002014-01-152210.022215.92193.82208.94489624……………………………………字段依次表示指數(shù)代碼、交易日期、開(kāi)盤(pán)價(jià)、最高價(jià)、最低價(jià)、收盤(pán)價(jià)、成交量。案例介紹第7章
計(jì)算如下指標(biāo):A1(收盤(pán)價(jià)/均價(jià)):收盤(pán)價(jià)/過(guò)去10個(gè)交易日的移動(dòng)平均收盤(pán)價(jià)。A2(現(xiàn)量/均量):成交量/過(guò)去10個(gè)交易日的移動(dòng)平均成交量。A3(收益率):(當(dāng)日收盤(pán)價(jià)?前日收盤(pán)價(jià))/前日收盤(pán)價(jià)。A4(最高價(jià)/均價(jià)):最高價(jià)/過(guò)去10個(gè)交易日的移動(dòng)均平均收盤(pán)價(jià)。A5(最低價(jià)/均價(jià)):最低價(jià)/過(guò)去10個(gè)交易日的移動(dòng)平均收盤(pán)價(jià)。A6(極差):最高價(jià)?最低價(jià)(衡量波動(dòng)性)。A7(瞬時(shí)收益):收盤(pán)價(jià)?開(kāi)盤(pán)價(jià)。Y(決策變量):后交易日收盤(pán)價(jià)?當(dāng)前交易日收盤(pán)價(jià),如果大于0,記為1;如果小于等于0,記為?1。同時(shí)對(duì)指標(biāo)A1~A7做標(biāo)準(zhǔn)化處理:(當(dāng)前值?均值)/標(biāo)準(zhǔn)差,最終得到以下標(biāo)準(zhǔn)的數(shù)據(jù)結(jié)構(gòu)形式。IDA1A2A3A4A5A6A7Y123……取后30行數(shù)據(jù)作為測(cè)試樣本,剩下的數(shù)據(jù)作為訓(xùn)練樣本,分別利用神經(jīng)網(wǎng)絡(luò)、支持向量機(jī)、邏輯回歸模型進(jìn)行訓(xùn)練及測(cè)試,獲得對(duì)應(yīng)模型的準(zhǔn)確率和預(yù)測(cè)準(zhǔn)確率。指標(biāo)計(jì)算第7章
1.計(jì)算特征指標(biāo)X,即A1~A7importpandasaspdtd=pd.read_excel('index300.xlsx')A1=td['Idxtrd05']/td['Idxtrd05'].rolling(10).mean()A2=td['Idxtrd06']/td['Idxtrd06'].rolling(10).mean()A3=td['Idxtrd08']A4=td['Idxtrd03']/td['Idxtrd05'].rolling(10).mean()A5=td['Idxtrd04']/td['Idxtrd05'].rolling(10).mean()A6=td['Idxtrd03']-td['Idxtrd04']A7=td['Idxtrd05']-td['Idxtrd02']X={'A1':A1,'A2':A2,'A3':A3,'A4':A4,'A5':A5,'A6':A6,
'A7':A7}X=pd.DataFrame(X)X=X.iloc[9:-1,]#注意X從第10行數(shù)據(jù)開(kāi)始,至倒數(shù)第1行指標(biāo)計(jì)算第7章
2.計(jì)算決策變量Y#錯(cuò)位相減,獲得指數(shù)的漲跌額,即收盤(pán)指數(shù)序列中的第2個(gè)元素至最后一個(gè)元素對(duì)應(yīng)減去第1個(gè)元素至倒數(shù)第1個(gè)元素Y=td['Idxtrd05'].values[1:]-td['Idxtrd05'].values[:-1]#Y與X的下一個(gè)交易日對(duì)應(yīng),故Y的值從第11行數(shù)據(jù)開(kāi)始#由于錯(cuò)位相減是從第2行開(kāi)始的,故指標(biāo)從第10行開(kāi)始取Y=Y[9:]#走勢(shì)標(biāo)識(shí)設(shè)置Y[Y>0]=1Y[Y<=0]=-1#對(duì)應(yīng)的Y值Y=Y.reshape(len(Y),1)模型求解第7章
1.訓(xùn)練樣本與測(cè)試樣本的劃分x_train=X.iloc[:len(X)-30,:]Y_train=Y[:len(Y)-30]x_test=X.iloc[len(X)-30:,:]Y_test=Y[len(Y)-30:]2.模型訓(xùn)練與求解#支持向量機(jī)模型fromsklearnimportsvmclf=svm.SVC(kernel='rbf')clf.fit(x_train,Y_train)rv1=clf.score(x_train,Y_train);R=clf.predict(x_test)R=R.reshape(len(R),1)Z=R-Y_testRs1=len(Z[Z==0])/len(Z)第7章
基礎(chǔ)案例案例介紹案例分析及計(jì)算案例介紹第7章
以申萬(wàn)行業(yè)分類(lèi)表中“計(jì)算機(jī)”行業(yè)所有上市公司2015年的盈利能力指標(biāo)數(shù)據(jù)為基礎(chǔ)字段名稱指標(biāo)名稱說(shuō)明F050502B凈資產(chǎn)收益率B凈利潤(rùn)/股東權(quán)益平均余額(X1)F050102B資產(chǎn)報(bào)酬率B(利潤(rùn)總額+財(cái)務(wù)費(fèi)用)/平均資產(chǎn)總額(X2)F050202B總資產(chǎn)凈利潤(rùn)率B凈利潤(rùn)/總資產(chǎn)平均余額(X3)F051201B投入資本回報(bào)率(凈利潤(rùn)+財(cái)務(wù)費(fèi)用)/(資產(chǎn)總計(jì)?流動(dòng)負(fù)債+應(yīng)付票據(jù)+短期借款+一年內(nèi)到期的非流動(dòng)負(fù)債)(X4)F051501B營(yíng)業(yè)凈利率凈利潤(rùn)/營(yíng)業(yè)收入(X5)F053301B營(yíng)業(yè)毛利率(營(yíng)業(yè)收入?營(yíng)業(yè)成本)/營(yíng)業(yè)收入(X6)F051401B營(yíng)業(yè)利潤(rùn)率營(yíng)業(yè)利潤(rùn)/營(yíng)業(yè)收入(X7)F052101B成本費(fèi)用利潤(rùn)率(利潤(rùn)總額)/(營(yíng)業(yè)成本+銷(xiāo)售費(fèi)用+管理費(fèi)用+財(cái)務(wù)費(fèi)用)(X8)采用K-均值聚類(lèi)算法,將上市公司分為5類(lèi),并計(jì)算每類(lèi)公司當(dāng)年的總利潤(rùn)平均增長(zhǎng)率每類(lèi)公司當(dāng)年的總利潤(rùn)平均增長(zhǎng)率=(該類(lèi)公司當(dāng)年的總利潤(rùn)平均值-該類(lèi)公司上年的總利潤(rùn)平均值)/該類(lèi)公司上年的總利潤(rùn)平均值。每類(lèi)公司當(dāng)年的總利潤(rùn)平均值=(該類(lèi)別中所有公司當(dāng)年利潤(rùn)之和)/該類(lèi)別的公司數(shù)量案例分析及計(jì)算第7章
1.獲取2015年所有公司股票的財(cái)務(wù)指標(biāo)數(shù)據(jù)importpandasaspdimportnumpyasnpdata=pd.read_excel('財(cái)務(wù)指標(biāo)數(shù)據(jù).xlsx')data2=data.iloc[:,[0,2,3,4,5,6,7,8,9]]案例分析及計(jì)算第7章
2.對(duì)財(cái)務(wù)指標(biāo)數(shù)據(jù)進(jìn)行清洗#去掉小于0的指標(biāo)值和nan值data2=data2[data2>0]data2=data2.dropna()3.對(duì)財(cái)務(wù)指標(biāo)數(shù)據(jù)進(jìn)行異常值處理#數(shù)據(jù)轉(zhuǎn)化為Numpy數(shù)組的形式,同時(shí)每個(gè)大于其均值8倍的指標(biāo)視為異常值,并刪掉data2=data2.valuesforiinrange(1,9):data2=data2[data2[:,i]<8*np.mean(data2[:,i]),:]案例分析及計(jì)算第7章
4.選擇“計(jì)算機(jī)”行業(yè)所有上市公司的數(shù)據(jù)(本步驟可以通過(guò)內(nèi)連接關(guān)聯(lián)獲取)從預(yù)處理過(guò)的財(cái)務(wù)指標(biāo)數(shù)據(jù)中選擇申萬(wàn)行業(yè)分類(lèi)表中“計(jì)算機(jī)”行業(yè)所有上市公司的數(shù)據(jù)。其處理過(guò)程分兩步。(1)獲取申萬(wàn)行業(yè)分類(lèi)表中“計(jì)算機(jī)”行業(yè)所有上市公司的股票代碼。
dta=pd.read_excel('申萬(wàn)行業(yè)分類(lèi).xlsx')
#申萬(wàn)行業(yè)分類(lèi)表中“計(jì)算機(jī)”行業(yè)所有上市公司股票代碼
stkcd=dta.loc[dta['行業(yè)名稱'].values=='計(jì)算機(jī)','股票代碼'].values案例分析及計(jì)算第7章
4.選擇“計(jì)算機(jī)”行業(yè)所有上市公司的數(shù)據(jù)執(zhí)行算法如下:Step1:獲取預(yù)處理過(guò)的財(cái)務(wù)指標(biāo)數(shù)據(jù)data2中的所有代碼,s=data2[:,0]。Step2:s循環(huán)地與申萬(wàn)行業(yè)分類(lèi)表中“計(jì)算機(jī)”行業(yè)所有上市公司股票代碼stkcd做存在性判斷。Step3:得到滿足判斷條件的邏輯數(shù)組I,以I作為邏輯索引,取data2表中的元素即可。s=data2[:,0]I=s==stkcd[0]foriinrange(1,len(stkcd)):I1=s==stkcd[i]I=I|I1ddata=data2[I,:]#申萬(wàn)行業(yè)分類(lèi)表中“計(jì)算機(jī)”行業(yè)所有上市公司股票代碼對(duì)應(yīng)的財(cái)務(wù)數(shù)據(jù)#提取申萬(wàn)行業(yè)分類(lèi)表中“計(jì)算機(jī)”行業(yè)所有上市公司股票碼對(duì)應(yīng)的財(cái)務(wù)指標(biāo)數(shù)據(jù)X,用來(lái)做主成分分析。X=ddata[:,1:](2)從預(yù)處理過(guò)的財(cái)務(wù)指標(biāo)數(shù)據(jù)中選擇滿足條件的數(shù)據(jù)。案例分析及計(jì)算第7章
5.對(duì)指標(biāo)數(shù)據(jù)X做標(biāo)準(zhǔn)化處理#這里采用極差法進(jìn)行標(biāo)準(zhǔn)化。fromsklearn.preprocessingimportMinMaxScalerscaler=MinMaxScaler()scaler.fit(X)X=scaler.transform(X)6.對(duì)標(biāo)準(zhǔn)化后的X做主成分分析fromsklearn.decompositionimportPCApca=PCA(n_components=0.95)#累計(jì)貢獻(xiàn)率為95%Y=pca.fit_transform(X)#提取的主成分tzxl=ponents_#返回特征向量gxl=pca.explained_variance_ratio_#返回主成分方差百分比(貢獻(xiàn)率)#對(duì)主成分Y做標(biāo)準(zhǔn)化處理(極差法)scaler=MinMaxScaler()scaler.fit(Y)Y=scaler.transform(Y)案例分析及計(jì)算第7章
Y1=0.3583×X1+0.3777×X2+0.4025×X3+0.4337×X4+0.375×X5+0.2696×X6+0.3205×X7+0.2508×X8Y2=0.3593×X1+0.1897×X2+0.1434×X4+0.4053×X4?0.3458×X5?0.658×X6?0.2331×X7?0.2076×X8Y3=0.0673×X1+0.0213×X2?0.0006×X3+0.32×X4?0.3328×X5+0.6801×X6?0.4713×X7?0.3118×X8Y1-綜合盈利能力因子;Y2-產(chǎn)品競(jìng)爭(zhēng)力因子;Y3-管理能力因子案例分析及計(jì)算第7章
7.K-均值聚類(lèi)分析fromsklearn.clusterimportKMeansmodel=KMeans(n_clusters=5,random_state=0,max_iter=1000)model.fit(Y)c=model.labels_#類(lèi)標(biāo)簽center=model.cluster_centers_#聚類(lèi)中心center=pd.DataFrame(center)center.columns=['Y1','Y2','Y3']案例分析及計(jì)算第7章
7.K-均值聚類(lèi)分析Fs=pd.Series(c,index=ddata[:,0])Fs=Fs.sort_values()co=pd.read_excel('公司基本信息表.xlsx')co1=pd.Series(co['Stknme'].values,index=co['Stkcd'].values)foriinrange(5):
q=co1[Fs[Fs==i].index]
q=pd.DataFrame(q)
q.to_excel('c'+str(i)+'.xlsx')類(lèi)別股票代碼0科遠(yuǎn)股份、合眾思?jí)?、易?lián)眾、初靈信息、數(shù)碼科技、御銀股份、長(zhǎng)亮科技、新國(guó)都、安碩信息、匯金股份、北信源、創(chuàng)業(yè)軟件、華平股份、久其軟件、華力創(chuàng)通、銀之杰、方直科技、美亞柏科、榕基軟件、東方通、英飛拓、新北洋、旋極信息、中威電子、科大訊飛、迪威迅、威創(chuàng)股份、新開(kāi)普、立思辰、任子行、輝煌科技、天璣科技、遠(yuǎn)光軟件1運(yùn)達(dá)科技、朗瑪信息、華銘智能、東方國(guó)信、捷成股份、兆日科技、二三四五、康拓紅外、聯(lián)絡(luò)互動(dòng)、思維列控、拓爾思、東方網(wǎng)力、世紀(jì)瑞爾2深科技、中科金財(cái)、太極股份、常山北明、浩豐科技、潤(rùn)和軟件、航天長(zhǎng)峰、高偉達(dá)、證通電子、川大智勝、寶信軟件、南天信息、皖通科技、金財(cái)互聯(lián)、四方精創(chuàng)、神州泰岳、萬(wàn)達(dá)信息、云賽智聯(lián)、索菱股份、飛利信、方正科技、京天利、同有科技、漢鼎宇佑、創(chuàng)意信息、達(dá)實(shí)智能、數(shù)字政通、達(dá)華智能、千方科技、紫光股份、漢邦高科、易華錄、石基信息、榮之聯(lián)、中遠(yuǎn)???、天源迪科、華勝天成、海蘭信、朗科科技、東軟集團(tuán)、榮科科技、同方股份、賽為智能、南威軟件、*ST中安3博彥科技、中科創(chuàng)達(dá)、久遠(yuǎn)銀海、金橋信息、華東電腦、華宇軟件、藍(lán)盾股份、浙大網(wǎng)新、浪潮軟件、真視通、捷順科技、航天信息、金證股份、銀信科技、浪潮信息、信息發(fā)展、飛天誠(chéng)信、佳都科技、聚龍股份、衛(wèi)士通、信雅達(dá)、神州信息、廣電運(yùn)通、浩云科技、新大陸、中科曙光、東華軟件、神思電子、衛(wèi)寧健康、恒華科技、漢得信息4贏時(shí)勝、廣聯(lián)達(dá)、超圖軟件、用友網(wǎng)絡(luò)、恒生電子、綠盟科技、四維圖新、啟明星辰案例分析及計(jì)算第7章
8.計(jì)算每類(lèi)公司2015年總利潤(rùn)平均值增長(zhǎng)率rd=pd.read_excel('利潤(rùn)數(shù)據(jù).xlsx')r_c=[]#預(yù)定義每個(gè)類(lèi)別總利潤(rùn)平均增長(zhǎng)率forninrange(5):#獲得第n類(lèi)股票代碼列表cn=list(Fs[Fs==n].index)#預(yù)定義第n類(lèi)股票2014年和2015年的總利潤(rùn)值r1_n=0r2_n=0#循環(huán)地對(duì)第n類(lèi)中的每個(gè)股票進(jìn)行計(jì)算fortincn:#第n類(lèi)股票中第t只股票I1=rd['Accper'].values=='2014-12-31'I2=rd['Accper'].values=='2015-12-31'I3=rd['Stkcd'].values==tindex1=I1&I3index2=I2&I3
#第n類(lèi)股票中第t只股票2014年的利潤(rùn)值r1=rd.loc[index1,'B002000101'].values#第n類(lèi)股票中第t只股票2015年的利潤(rùn)值r2=rd.loc[index2,'B002000101'].valuesiflen(r1)>0:r1_n=r1_n+r1iflen(r2)>0:r2_n=r2_n+r2#第n類(lèi)股票2015年的總利潤(rùn)平均值p2=r2_n/len(cn)#第n類(lèi)股票2014年的總利潤(rùn)平均值p1=r1_n/len(cn)#將總利潤(rùn)平均增長(zhǎng)率添加到r_c中r_c.append((p2-p1)/p1)#將每個(gè)類(lèi)別的總利潤(rùn)平均增長(zhǎng)率添加到聚類(lèi)中心后面列r_c=np.array(r_c)dt=np.hstack((center.values,r_c))dtt=pd.DataFrame(dt)dtt.columns=['Y1','Y2','Y3','r_c']案例分析及計(jì)算第7章
8.計(jì)算每類(lèi)公司2015年總利潤(rùn)平均值增長(zhǎng)率中r_c列為各類(lèi)公司的總利潤(rùn)平均增長(zhǎng)率。從圖7-21中可以看出,第2類(lèi)(index為1)上市公司的綜合盈利能力最強(qiáng),而且其產(chǎn)品競(jìng)爭(zhēng)力和管理能力也相對(duì)較好,最終結(jié)果也可以看出,當(dāng)年的總利潤(rùn)平均增長(zhǎng)率也最高第7章
基礎(chǔ)案例問(wèn)題描述數(shù)據(jù)預(yù)處理關(guān)聯(lián)規(guī)則挖掘問(wèn)題描述第7章
為了探討國(guó)際上主要股票價(jià)格指數(shù)之間的漲跌關(guān)聯(lián)情況,選取12個(gè)主要國(guó)家或者地區(qū)中具有代表性的股票價(jià)格指數(shù)交易數(shù)據(jù),數(shù)據(jù)表包括國(guó)際股票價(jià)格指數(shù)基本信息表和國(guó)際股票價(jià)格指數(shù)日交易數(shù)據(jù)表。IndexcdIdxnmeDJI美國(guó)道瓊斯工業(yè)指數(shù)FCHI法國(guó)CAC40指數(shù)FTSE英國(guó)富時(shí)100指數(shù)GDAXI德國(guó)DAX指數(shù)HSI中國(guó)香港恒生指數(shù)KS11韓國(guó)KOSPI指數(shù)MCIX俄羅斯Micex指數(shù)N225日本日經(jīng)225SENSEX印度孟買(mǎi)30指數(shù)STI富時(shí)新加坡海峽時(shí)報(bào)指數(shù)TWII中國(guó)臺(tái)灣加權(quán)指數(shù)000300中國(guó)滬深300指數(shù)IndexcdTrddtOpnidxHighidxLowidxClsidxDJI2010-01-0410430.6910604.9710430.6910583.96DJI2010-01-0510584.5610584.5610522.5210572.02DJI2010-01-0610564.7210594.9910546.5510573.68DJI2010-01-0710571.1110612.3710505.2110606.86DJI2010-01-0810606.410619.410554.3310618.19DJI2010-01-1110620.3110676.2310591.5910663.99DJI2010-01-1210662.8610663.0810568.8410627.26………………………………其中字段依次為指數(shù)代碼、交易日期、開(kāi)盤(pán)指數(shù)、最高指數(shù)、最低指數(shù)、收盤(pán)指數(shù)。數(shù)據(jù)區(qū)間從2010年1月至2019年8月。問(wèn)題:在一國(guó)或地區(qū)由于受某事件的影響造成其主要股票價(jià)格指數(shù)下跌幅度較大時(shí),另一國(guó)或地區(qū)的主要股票價(jià)格指數(shù)在同期是否也會(huì)有較大幅度的下跌?注意,這里下跌幅度較大定義為:跌幅大于等于0.5%。數(shù)據(jù)預(yù)處理第7章
(1)計(jì)算各指數(shù)的跌幅指標(biāo)數(shù)據(jù),其中跌幅計(jì)算公式為:
(當(dāng)日收盤(pán)指數(shù)?上日收盤(pán)指數(shù))/上日收盤(pán)指數(shù)為了便于關(guān)聯(lián)規(guī)則挖掘,我們將跌幅指標(biāo)數(shù)據(jù)轉(zhuǎn)化為0、1布爾值,即跌幅大于等于0.5%記為1,否則為0。圖中第一行代表了中國(guó)滬深300指數(shù)的跌幅數(shù)據(jù),其中2010年1月5日的值為0,表示跌幅沒(méi)有超過(guò)0.5%,而2010年1月6日的值為1,表示當(dāng)日跌幅超過(guò)了0.5%。數(shù)據(jù)預(yù)處理第7章
(2)各指數(shù)交易日期做一致化處理。事實(shí)上,不同國(guó)家或地區(qū)的交易日期并不完全相同,為了便于挖掘有意義的關(guān)聯(lián)規(guī)則,需要在所有指數(shù)交易日均相同的情況下進(jìn)行挖掘。這里以中國(guó)滬深300指數(shù)交易日為篩選基準(zhǔn)。顯示12個(gè)國(guó)際指數(shù),20
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023凈身出戶離婚協(xié)議書(shū)
- 償還借款協(xié)議書(shū)范本
- 額部腫塊病因介紹
- 公司轉(zhuǎn)讓個(gè)人股份協(xié)議
- 中考政治第一部分知識(shí)闖關(guān)能力提升第二課時(shí)調(diào)節(jié)情緒學(xué)習(xí)壓力明辨是非復(fù)習(xí)課獲
- 2015中國(guó)在線音樂(lè)行業(yè)研究報(bào)告
- (2024)赤泥綜合利用生產(chǎn)建設(shè)項(xiàng)目可行性研究報(bào)告(一)
- 2023年辦公照明項(xiàng)目籌資方案
- 【電信終端產(chǎn)業(yè)協(xié)會(huì)】2024年終端智能化分級(jí)研究報(bào)告
- 國(guó)際物流題庫(kù)(含參考答案)
- 小學(xué)數(shù)學(xué)試卷模板
- 全國(guó)運(yùn)動(dòng)員代表資格協(xié)議書(shū)
- 小學(xué)消防安全檢查記錄表【模板】
- 制氫操作規(guī)程6篇
- 關(guān)于友情的英語(yǔ)ppt
- 2023全國(guó)日語(yǔ)高考答題卡word版
- 初中數(shù)學(xué)浙教版七年級(jí)上冊(cè)第3章實(shí)數(shù)3.4實(shí)數(shù)的運(yùn)算 全國(guó)一等獎(jiǎng)
- GB/T 8488-2001耐酸磚
- GB/T 4213-2008氣動(dòng)調(diào)節(jié)閥
- GB/T 23703.2-2010知識(shí)管理第2部分:術(shù)語(yǔ)
- GB/T 17587.3-2017滾珠絲杠副第3部分:驗(yàn)收條件和驗(yàn)收檢驗(yàn)
評(píng)論
0/150
提交評(píng)論