數(shù)據(jù)分析2020年全國各省高考成績分布情況(2020年各省高考成績分段表)
開始
我突然想到,想看看高考成績的分布情況。如果把各省市的分?jǐn)?shù)劃分為0-100分會怎樣?簡單來說,得分最高的人獲得100分,得分最低的人獲得100分。如果得0分,只需計(jì)算每個(gè)分?jǐn)?shù)范圍內(nèi)的人數(shù)即可。
順便說一句,你可以通過這個(gè)數(shù)據(jù)看到各省市一條線的劃分比例,以及其他相關(guān)數(shù)據(jù)。
看起來比較簡單,不妨嘗試一下
數(shù)據(jù)收集
我上網(wǎng)查了一下,現(xiàn)在每年參加高考的人數(shù)都超過1000萬,河南超過100萬。數(shù)據(jù)來源:新浪教育https://edu.sina.cn/zt_d/gkbm
本表數(shù)據(jù)為全國各省市(除香港、澳門、臺灣地區(qū))的統(tǒng)計(jì)數(shù)據(jù)。各省市公布成績后,會公布自己的分值表,統(tǒng)計(jì)各省市的得分人數(shù)。我們用這個(gè)數(shù)據(jù)按照慣例,由于我還沒有太多精力去收集數(shù)據(jù),所以我找到了網(wǎng)站高考100-一分一節(jié)表,里面提供了每項(xiàng)的一分一節(jié)表excel版本的省份和城市。稍微檢查了一下,數(shù)據(jù)應(yīng)該是對的。我暫時(shí)以這個(gè)數(shù)據(jù)為標(biāo)準(zhǔn)。
數(shù)據(jù)太多了。我暫時(shí)只做35萬以上的省市。只有11個(gè)省市,加上北京、上海的數(shù)據(jù),-河南-河北-廣東-廣西-湖南-湖北-江西-貴州-安徽-四川-山東-北京-上海
其中,北京、上海不分科。山東省選擇一項(xiàng)考試進(jìn)行考核,因此共有23張數(shù)據(jù)表。以后我會盡力上傳數(shù)據(jù)。
數(shù)據(jù)整理
如上所述,北京、上海、山東的學(xué)科劃分比較特殊。我們將根據(jù)藝術(shù)和科學(xué)來計(jì)算它。每個(gè)省份都會給出最高分及以上的數(shù)據(jù),然后給出100分及以下的數(shù)據(jù),但并不是每個(gè)省份都有100分以下的分?jǐn)?shù),所以需要特殊考慮。
不同高考政策與分類
山東高考政策細(xì)節(jié)尚不清楚,但似乎考生在6個(gè)輔修科目中選3個(gè)。從這張圖了解山東高考改革的重點(diǎn)。在這里找到
我們就不分科了,只看山東的整體成績。
不同統(tǒng)計(jì)方式
北京人口較少。400分以下每10個(gè)分段給出人數(shù)。為了方便起見,我們默認(rèn)每個(gè)分?jǐn)?shù)的平均人數(shù)。例如,390-399段有813人。我們考慮每個(gè)細(xì)分市場總共有81.3人,所以我們暫時(shí)這樣處理。
不同省市將最高分表示為最高分及以上,但最低分則區(qū)別對待。這里就不做評價(jià)了。比如很多省市綜合起來總分不到100分,有的只有100分。分?jǐn)?shù),100分以下的分?jǐn)?shù)不予給出。這里最后的處理中,我們把0分的人全部刪除,只統(tǒng)計(jì)1-100分的人。反正不影響整條曲線。
最后我們整理了數(shù)據(jù)表。每張Sheet代表一個(gè)省市的文科科目,最上面一行數(shù)據(jù)對應(yīng)總分、人數(shù)、累計(jì)人數(shù)。
數(shù)據(jù)處理
數(shù)據(jù)處理思路
為方便起見,這是在Python中完成的。使用的是pandas讀取的excel文件。我們統(tǒng)計(jì)所有數(shù)據(jù)的目標(biāo)是將分?jǐn)?shù)轉(zhuǎn)換為0-100分。然后
變換后的分?jǐn)?shù)=\frac{當(dāng)前分?jǐn)?shù)-最低分?jǐn)?shù)}{最高分?jǐn)?shù)-最低分?jǐn)?shù)}\times100
各省份得分調(diào)整為[0,100]。這里使用了四舍五入的方法,導(dǎo)致計(jì)算過程中的實(shí)際數(shù)據(jù)有重疊。例如,將兩個(gè)相鄰分?jǐn)?shù)中的一個(gè)四舍五入,另一個(gè)向上舍入,以統(tǒng)一分?jǐn)?shù)。結(jié)果,數(shù)據(jù)充滿噪音。只需使用一維中值濾波來平滑數(shù)據(jù)即可。
以河南文科為例,我們直接繪制歸一化分?jǐn)?shù),經(jīng)過中值濾波后進(jìn)行比較。(圖為測試時(shí)歸一化為500點(diǎn)的圖像,不影響理解)
各省市分?jǐn)?shù)分布
我們之前已經(jīng)把數(shù)據(jù)整理好了,接下來就去做。
#整理數(shù)據(jù),將各省市的分?jǐn)?shù)歸一化為100分后的分配比例#簡介pandasimportpandasaspdimportmatplotlibimportmatplotlib.pyplotaspltimportscipy.signalasss#設(shè)置中文字體plt.rcParams[字體。sans-serif]=[SimHei]#用于正常顯示中文標(biāo)簽plt.rcParams[axes.unicode_minus]=False#用于正常顯示負(fù)號#設(shè)置圖像大小和分辨率plt.rcParams[figure.figsize]=(8.0,4.0)#設(shè)置figure_size大小plt.rcParams[image.interpolation]=最近#設(shè)置插值樣式plt.rcParams[savefig.dpi]=300#圖片像素plt.rcParams[figure.dpi]=300#分辨率#將分?jǐn)?shù)統(tǒng)一為[0,]區(qū)間MAX_SCORE=100MIN_SCORE=0data_file=Data/data.xlsxres_file=Data/res-+str(MAX_SCORE-MIN_SCORE)+.xlsx#讀取excel,獲取所有表單名稱excel_info=pd.ExcelFile(data_file)all_data={}all_data_ratio={}#獲取表格中的每個(gè)數(shù)據(jù)文件,并將數(shù)據(jù)標(biāo)準(zhǔn)化為0-500forindexinrange(len(excel_info.sheet_names)):#讀取每個(gè)表格cur_sheetname=excel_info.sheet_names[index]df_sheet=pd.read_excel(data_file,sheet_name=cur_sheetname)#獲取總分以及各表中對應(yīng)分?jǐn)?shù)的人數(shù)Scores=df_sheet[df_sheet.columns.values[0]]nums=df_sheet[df_sheet.columns.values[1]]#數(shù)據(jù)對應(yīng)每個(gè)分?jǐn)?shù)的人數(shù)表ROWS=MAX_SCORE-MIN_SCORE+1trans_scores_nums=[0]*ROWSrows=len(scores)cur_max_score=Scores[0]cur_min_score=Scores[rows-1]cur_index=0;forsinScores:#計(jì)算變換后的舍入分?jǐn)?shù)trans_score=(int)(round((s-cur_min_score)/(cur_max_score-cur_min_score)*(MAX_SCORE-MIN_SCORE)))#計(jì)算分?jǐn)?shù)中對應(yīng)分?jǐn)?shù)的人數(shù)添加到位置trans_scores_nums[trans_score-1]+=nums[cur_index];cur_index+=1#對數(shù)據(jù)稍微處理一下,做簡單的平滑,去掉得分最低的數(shù)據(jù)except0data=[0]*(ROWS-1)foriinrange(ROWS-1):except0data[i]=trans_scores_nums[i+1];#中值濾波去除噪聲smooth_trans=ss.medfilt(except0data,7)#將數(shù)據(jù)轉(zhuǎn)換為比率,更通用的屬性sum=0smooth_trans_ratio=[0]*(ROWS-1)foriinrange(ROWS-1):sum+=smooth_trans[i]foriinrange(ROWS-1):smooth_trans_ratio[i]=smooth_trans[i]/sumall_data[cur_sheetname]=smooth_transall_data_ratio[cur_sheetname]=smooth_trans_ratio打?。ㄕ谶M(jìn)行{0}/{1},表名:{2}.format(index+1,len(excel_info.sheet_names),cur_sheetname))#plt.plot(smooth_trans2)#write_data=pd.Dataframe(all_data)#write_data.to_excel(res_file,sheet_name=res)write_data_ratio=pd.Dataframe(all_data_ratio)write_data_ratio.to_excel(res_file,sheet_name=ratio)print(Completed,Storagefile:{0}.format(res_file))在這個(gè)程序中,我們主要提取數(shù)據(jù),將其計(jì)算為100-點(diǎn)刻度,然后重新存入excel表中。人數(shù)替換為各省、市的人數(shù)比例。也方便查看后續(xù)數(shù)據(jù)(因?yàn)楦杏Xplt繪制的圖像不好看,所以這里使用MATLAB進(jìn)行圖像繪制過程)
%繪制原始數(shù)據(jù)并計(jì)算平均值和中位數(shù)%讀取excel數(shù)據(jù),獲取名稱和列名data_file=Data/res-100.xlsx;res_ratio=xlsread(data_file,1,B2:X501);res_name={河南文科、河南文科、北京、上海、河北文科、河北文科、山東、廣東文科、廣東文科、湖北文科、湖北文科、湖南文科、湖南文科、四川文科、四川文科、安徽文科、安徽理科、廣西文科、廣西理科、貴州文科、貴州理科、江西文科、江西理科};圖()保持[行,列]=大小(res_ratio);平均值=零(列,1);媒體=零(列,1);fori=1:cols%繪制百分比率圖表plot(res_ratio(:i)*100);%計(jì)算平均中值media_l=0.5;媒體查找FLG=0;對于j=1:行avg(i)=avg(i)+j*res_ratio(j,i);%超過統(tǒng)計(jì)比例一半的數(shù)字為中值,找到后不再更新if(media_find_flg==0)if(media_l0)media_l=media_l-res_ratio(j,i);否則媒體(i)=j;媒體查找FLG=1;結(jié)束結(jié)束結(jié)束結(jié)束圖例(res_name);%createxlabelxlabel({標(biāo)準(zhǔn)化為100分后的分?jǐn)?shù)});%創(chuàng)建titletitle({歸一化各省市分?jǐn)?shù)分布比例});%創(chuàng)建ylabelylabel({單位成績分配比例});最后,我們得到了這樣的一張照片。細(xì)節(jié)較多,數(shù)據(jù)有噪聲,但數(shù)據(jù)整體趨勢大致清晰。噪音較大的黃線是來自北京的,暫時(shí)不做過多分析。
各省市分?jǐn)?shù)平均值與中值
我們這里計(jì)算的平均值是每個(gè)分段的人數(shù)乘以該分段的比例得到的最終結(jié)果。然后,簡單地去違反中值,找到中間比率所在的區(qū)間即可。我還沒有瀏覽過代碼。如果進(jìn)行多個(gè)過程,如果能得到結(jié)果就太好了。
數(shù)據(jù)簡單分析
上一章我們給了一張圖。matlab繪制的圖片顏色比較接近。建議下載原圖觀看。給出分布圖。我們分別繪制數(shù)據(jù)中最特殊的線條。
最右的黃色,最左的紫色,最左的紫色,廣西文科最高,淺藍(lán)色,貴州文科最一般,淺紫色,湖北理科雙峰,藍(lán)色江西文科.事實(shí)上,這些形狀都有獨(dú)特的含義。理論曲線是直線分布,但由于各種原因,我們主要關(guān)注實(shí)際曲線。-向右,數(shù)據(jù)整體較大-向左,整體數(shù)據(jù)較小-最高表示數(shù)據(jù)較為集中,-最低表示數(shù)據(jù)分布均勻-雙峰表示數(shù)據(jù)嚴(yán)重碎片化(我編的)。
總體來看,各省市的峰值分?jǐn)?shù)(眾數(shù))也分為兩部分。部分省市峰值在40分左右,主要有河南文科、河北文科、湖北文科、廣西文科、廣西文科。其余理科分?jǐn)?shù)的眾數(shù)集中在60分多一點(diǎn)。
emmm,僅此而已。再多的分析也沒有多大用處。畢竟北京NB
剩下的就是高考本科錄取率之類的數(shù)據(jù),但是各個(gè)省份的本科分?jǐn)?shù)線確實(shí)不一樣。
我給出的數(shù)據(jù)是我在各地高考的成績(批次線)。您可以在本頁面查看2020年各省份高考批次線。一般省市分為1、2???。除了北京、上海、河北之外,山東、廣東等地以后也會想辦法去做。我想他們不會這么做。
高考大省與高考小省
我們以高考大省河南、河北為例,再對比一下上海和北京。我們來看一下數(shù)據(jù)。其實(shí)我們應(yīng)該在這里尋找數(shù)據(jù)軸上最明顯的特征線。具體數(shù)據(jù)我們可以自己分析。
但我們暫時(shí)只看這些數(shù)據(jù)。
這些是之前給出的所有數(shù)據(jù),我們將它們繪制出來
北京的表現(xiàn)明顯好于河北。河南和上海的數(shù)據(jù)其實(shí)是一致的。即使在整個(gè)曲線圖中,它們也被認(rèn)為是相對中間的。
總結(jié)
我搞了好久,也沒用。我的手很癢,我做了很多事情。我做得越多,我做得就越多。后續(xù)還有很多工作要做。
根據(jù)本文數(shù)據(jù),北京的成績優(yōu)于全國各省市??赡苁怯?xùn)練方法不同造成的。
其實(shí)這個(gè)分?jǐn)?shù)分布并不一定是訓(xùn)練造成的,部分是因?yàn)楦鱾€(gè)省份的考試條件不同造成的,所以數(shù)據(jù)僅供參考,北京NB
備注
我將所有數(shù)據(jù)存儲在Github上
https://github.com/Schen1024/GaoKao
如果你有興趣,可以拿數(shù)據(jù)來分析一下。最后一點(diǎn)稍后會完成。
PS:這是我第一次在知乎上發(fā)文章。背景確實(shí)很難描述。markdown功能沒啥用。
相關(guān)資訊
- 河南中考考試科目和分?jǐn)?shù)(河南中考考試科目順序時(shí)間)
- 平度一中中考分?jǐn)?shù)線(平度一中中考錄取分?jǐn)?shù)線2023年)
- 2021年陜西高考分?jǐn)?shù)線會降嗎(近三年陜西高考錄取分?jǐn)?shù)線降了)
- 珠海中考錄取分?jǐn)?shù)線2023年(珠海中考錄取分?jǐn)?shù)線2023年公布)
- 安徽安慶中考各科滿分多少分(安徽安慶中考總分多少)
- 湖南單招錄取分?jǐn)?shù)線 一般多少分(湖南單招錄取分?jǐn)?shù)線 一般多少分能上)
- 淮北市中考錄取分?jǐn)?shù)線2023(淮北市中考錄取分?jǐn)?shù)線)
- 熱門專業(yè)經(jīng)濟(jì)金融類錄取分?jǐn)?shù)線(熱門專業(yè)經(jīng)濟(jì)金融類錄取分?jǐn)?shù)線是多少)