从用户角度网站应该具备的条件,谷歌网站推广费用,三台移动网站建设,怎么在网站后面制作官网俩个字文章目录前言一、背景Ⅰ数据来源Ⅱ 数据背景Ⅲ 分析目的二、数据探索性分析Ⅰ 数据类型Ⅱ 描述性统计Ⅲ 数据预处理1.缺失值处理1#xff09;删除缺失值2#xff09;均值/中值填充2.异常值处理3.重复值处理三、数据分析Ⅰ空气质量排名Ⅱ 全国空气质量1.全国空气质量等级统计2…
文章目录前言一、背景Ⅰ数据来源Ⅱ 数据背景Ⅲ 分析目的二、数据探索性分析Ⅰ 数据类型Ⅱ 描述性统计Ⅲ 数据预处理1.缺失值处理1删除缺失值2均值/中值填充2.异常值处理3.重复值处理三、数据分析Ⅰ空气质量排名Ⅱ 全国空气质量1.全国空气质量等级统计2.全国空气指数分布Ⅲ 推断验证1.全国空气质量指数网传为722.沿海城市是否空气质量更好3.空气质量受什么影响Ⅳ 预测空气质量指数四、总结前言
近年来空气质量问题日益严峻备受关注。对收集的有关空气质量指数相关的数据进行一个简单的分析。
一、背景
Ⅰ数据来源
数据来源于网络数据下载提取码lrm8
Ⅱ 数据背景
该数据集是指2015年某些城市数据, 包含全国主要城市的相关数据及空气质量指数其包含326个样本以及12个特征, 这10个特征分别为: 城市空气质量指数降雨量城市生产总值温度经度纬度海拔高度人口密度是否沿海绿化覆盖率焚烧量10000t.
Ⅲ 分析目的 二、数据探索性分析
Ⅰ 数据类型
data.info() city特征为字符型, AQI、PopulationDensity、Coastal为64位整型, 其余为64位浮点型, 且均无缺失值.只有Precipitation缺少少量的数据。
Ⅱ 描述性统计 AQI平均水平;75.8,最高为296最低为12。中位数与平均数相差不大只存在少量极值呈现右偏趋势。
Ⅲ 数据预处理
1.缺失值处理
1删除缺失值
print(data.Precipitation.skew()) #skew求偏态系数
sns.distplot(data.Precipitation.dropna()) #dropna()删掉缺失的数据displot不能处理缺失的数据 2均值/中值填充
data.fillna({Precipitation:data[Precipitation].median()},inplaceTrue)
2.异常值处理
利用Boxplot查看异常值
plt.figure(figsize(15,4))
plt.xticks(rotation45,fontsize15)
sns.boxplot(datadata) 三个特征值存在明显的异常值利用箱体图进行处理
tdata.copy()
for k in t:if pd.api.types.is_numeric_dtype(t[k]):o t[k].describe()IQR o[75%] - o[25%]lower o[25%] - 1.5 * IQRupper o[75%] 1.5 * IQRt[k][t[k] lower] lowert[k][t[k] lower] upper
plt.figure(figsize(15,4))
plt.xticks(rotation45,fontsize15)
sns.boxplot(datat)
这里存在一点问题第一次可以成功运行第二次就不可以了。求大神指教
3.重复值处理
#发现重复值
print(data.duplicated().sum())
#查看哪些记录出现了重复值
data[data.duplicated()] 存在两条重复值由于数量小可以直接删除。data.drop_duplicates(inplaceTrue)
三、数据分析
Ⅰ空气质量排名
plt.subplot(231)
#空气最好前五/最差五个的城市
bestdata[[City,AQI]].sort_values(by[AQI])
print(best.head(5))
plt.xticks(rotation45)
plt.title(空气质量最好排名)
sns.barplot(xCity,yAQI,databest.head(5))
plt.subplot(233)
lowdata[[City,AQI]].sort_values(by[AQI],ascendingFalse)
print(best.head(5))
plt.xticks(rotation45)
plt.title(空气质量最差排名)
sns.barplot(xCity,yAQI,datalow.head(5)) 最好的为韶关南平梅州基隆三明 最差的为北京朝阳保定锦州焦作
Ⅱ 全国空气质量
1.全国空气质量等级统计
def value_to_level(AQI):if AQI0 and AQI50:return 一级elif AQI51 and AQI100:return 二级elif AQI101 and AQI150:return 三级elif AQI151 and AQI200:return 四级elif AQI201 and AQI300:return 五级else:return 六级
leveldata[AQI].apply(value_to_level)
print(level.value_counts())
sns.countplot(xlevel,order[一级,二级,三级,四级,五级,六级]) 一二级空气质量等级最多大部分城市的空气质量还是不错的但是有18个属于四五级的城市需要重点改造。
2.全国空气指数分布
sns.scatterplot(xLongitude,yLatitude,hueAQI,paletteplt.cm.RdYlGn_r,datadata) 大概可以看出南方好于北方西方好于东方
Ⅲ 推断验证
1.全国空气质量指数网传为72
简单分析 data[AQI].mean() 计算出来为75.334。但是不能下网传不对的结论。如果数据是全国所有城市那就可以下结论因此从全国城市中进行抽样使用抽样的均值来估计总体均值。
中心极限定理在适当的条件下大量相互独立随机变量的均值经适当标准化后依分布收敛于正态分布。每次从这些总体中随机抽取 n 个抽样一共抽 m 次。 然后把这 m 组抽样分别求出平均值 这些平均值的分布接近正态分布。设从均值为μ、方差为有限的任意一个总体中抽取样本量为n的样本当n充分大时样本均值的抽样分布近似服从均值为μ、方差为的正态分布。 中心极限定理告诉我们当样本量足够大时样本均值的分布慢慢变成正态分布
#定义总体数据
totalnp.random.normal(loc30,scale80,size10000)
#创建均值数据
meannp.zeros(1000)
for i in range(len(mean)):mean[i]np.random.choice(total,size64,replaceFalse).mean()
print(样本均值,mean.mean())
print(样本标准差,mean.std())
print(偏度,pd.Series(mean).skew())
sns.distplot(mean) 置信区间 根据正态分布特性进行概率上的统计。标准正态分布数据分布比例如下图 一般正态分布数据分布比例如下图
#定义标准差
scale50
#定义数据
xnp.random.normal(0,scale,size100000)
#定义标准差的倍数倍数从1到3
for times in range(1,4):yx[(x-times*scale)(xtimes*scale)]print(f{times}倍标准差)print(f{len(y)*100/len(x)}%)
运行结果1倍标准差68.13%2倍标准差95.445%3倍标准差99.719% 通常我们以二倍标准差作为评定依据则以均值为中心正负二倍标准差构成的区间就是置信区间而二倍标准差区间包含95%的数据因此此时的置信区间为95%。换言之总体的均值有95%的可能在置信区间内。
假设检验–t检验统计量服从t分布当自由度样本容量-1逐渐增大时t分布近似于正态分布
from scipy import stats
rstats.ttest_1samp(data[AQI],72)
print(t值,r.statistic)
print(p值,r.pvalue)
计算结果t值 1.393763441074581 p值 0.16435019471704654。P值大于0.05故在显著度为0.05检验下无法拒绝原假设。
#计算全国平均空气质量指数均值
nlen(data)
dfn-1
leftstats.t.ppf(0.025,dfdf)
rightstats.t.ppf(0.975,dfdf)
print(left,right)
meandata[AQI].mean()
stddata[AQI].std()
meanleft*(std/np.sqrt(n)),meanright*(std/np.sqrt(n))
计算结果-1.9673585853224684 1.967358585322468 (70.6277615675309, 80.0409690826239) 结论全国空气质量指数所在区间大概在70.63-80.04之间置信度为95%
2.沿海城市是否空气质量更好
plt.subplot(131)
#沿海\内陆城市数量
display(data[Coastal].value_counts())
plt.title(沿海、内陆城市数量)
sns.countplot(xCoastal,datadata)
plt.subplot(133)
#临海城市和内陆城市散点分布
plt.title(临海城市和内陆城市散点分布)
sns.swarmplot(xCoastal,yAQI,datadata) #分别计算均值
display(data.groupby(Coastal)[AQI].mean())
#sns.barplot(xCoastal,yAQI,datadata)
sns.violinplot(xCoastal,yAQI,datadata,innerNone)
sns.swarmplot(xCoastal,yAQI,colorr,datadata) 大致可得出结论沿海城市空气质量普遍好于内陆城市
两样本t检验验证
coastaldata[data[Coastal]1][AQI]
inlanddata[data[Coastal]0][AQI]
#进行方差齐性检验为后续的两样本t检验服务
print(stats.levene(coastal,inland))
stats.ttest_ind(coastal,inland,equal_varTrue)
计算结果LeveneResult(statistic0.08825036641952543, pvalue0.7666054880248168) Ttest_indResult(statistic-2.7303827520948905, pvalue0.006675422541012958) 有99%的概率可以认为沿海空气质量比内陆好
3.空气质量受什么影响
AQI与人口密度绿化覆盖率影响
sns.pairplot(data[[AQI,PopulationDensity,GreenCoverageRate]]) plt.figure(figsize(15,8))
sns.heatmap(data.corr(),cmapplt.cm.RdYlGn,annotTrue,fmt.2f) 结论空气质量主要受降水量和纬度影响。与降水量呈正比纬度呈反比。ps存在一个可疑相关系数沿海空气质量好但却只有-0.15。有需求可进行具体分析。
Ⅳ 预测空气质量指数
线性回归预测
#对空气质量进行预测
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
Xdata.drop([City,AQI],axis1)
ydata[AQI]
X_train,X_test,y_train,y_testtrain_test_split(X,y,test_size0.25,random_state0)
lrLinearRegression()
lr.fit(X_train,y_train)
y_hatlr.predict(X_test)
print(lr.score(X_train,y_train))
print(lr.score(X_test,y_test))
plt.figure(figsize(15,6))
plt.plot(y_test.values,-r,label真实值,markero)
plt.plot(y_hat,-g,label预测值,markerD)
plt.legend()
plt.title(线性回归预测结果,fontsize20) 但线性回归的拟合性不是很好因为在高维空间中并没有呈现线性关系
随机森林预测
from sklearn.ensemble import RandomForestRegressor
rfRandomForestRegressor(n_estimators500,random_state0)
rf.fit(X_train,y_train)
y_hatrf.predict(X_test)
print(rf.score(X_train,y_train))
print(rf.score(X_test,y_test))
plt.figure(figsize(15,6))
plt.plot(y_test.values,-r,label真实值,markero)
plt.plot(y_hat,-g,label预测值,markerD)
plt.legend()
plt.title(随机森林预测结果,fontsize20) 四、总结
空气总体质量南部好于北部西部好于东部沿海好于内地。 降雨量与纬度对空气质量影响较大存在一个可以相关系数即沿海。 我国城市平均质量指数在70.63到80.04之间概率高达95%。 通过历史数据可以进行预测。 虽然我国整体空气质量较好但是一级的也不是最多的且四五级占的比例也不低因此需要加快整治步伐同时大力宣传提升国民的环保意识。