Python&SPSS完成空气质量状况的指数(AQI)分析

本文详细描述了一次课程作业,使用Python和SPSS对空气质量指数(AQI)进行预测,通过数据预处理、变量处理(如风向、星期和天气)、多重共线性分析,创建包含温度差的新变量,最终建立并比较了不同模型。关键发现包括AQI受雾、霾、晴天和温差影响,以及风向对空气质量的影响较小。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

记一次课程作业,利用所给数据,以AQI指数(空气质量状况指数)为因变量,其他指标为解释变量,建立线性回归分析模型,并形成分析报告。


题目要求

空气质量指数(air quality index,AQI是定量描述空气质量状况的指 数。为了更好地了解和人们身体健康息息相关的天气状况,本书模拟生成500条某地区天气数据,一行样本对应一天的天气。因变量为空气质量指 数:数值型变量。解释变量包括:星期:分类变量,包括星期一、星期二 等;最低气温:文本型变量,比如—5℃;最高气温:文本型变量,比如5℃;天气:分类变量,包括晴天、多云~睛、阴~多云、阴~小雨等,其 中“~”表示转,比如“晴~多云”表示晴转多云;风向:分类变量,包括 东风、西风、南风、北风、东南风、东北风、西南风、西北风等;风力:数 值型变量,1~5级。

以AQI为因变量,其他指标为解释变量,建立线性回归分析模型,并形成分析报告。

原始数据

第1章习题1
https://pan.baidu.com/s/1EKJyXBFGrNlsdqSjUE0LCA
提取码:yno6

注:SPSS以及python打开如果中文显示有问题,可以改一下后缀啥的txt,csv互换试试。

星期,最高,最低,天气,风向,风力,AQI
星期六,29,20,~雷阵雨,无持续,1,145
星期二,11,6,小雨~,,2,15
星期一,12,-3,,,3,177
星期五,28,18,,,2,90
星期日,-2,-10,,,3,36
················
················
················
星期六,16,3,多云,无持续,1,91
星期一,15,4,多云,,2,202
星期一,21,8,~,,3,39

(部分展示)

数据处理

数据总览

直观上来看,除了风力和AQI,其他数据都需要进行处理,用Pandas处理比较方便,首先用python对数据的总体情况进行了解。

import pandas as pd

data = pd.read_csv("第1章习题1.txt", sep=',', encoding='GBK')
print(data.head(10))
print('数据总览\n')

print(data.info())
print('数据类型预览\n')

print(data.describe())
print('数据情况\n')

print(data[data.isnull() == True].count())
print('数据缺失值检验\n')

# 统计总量
print('星期', len(data['星期'].value_counts()))
print('天气', len(data['天气'].value_counts()))
print('风向', len(data['风向'].value_counts()))

输出:

    星期   最高    最低     天气   风向  风力  AQI
0  星期六  2920℃  霾~雷阵雨  无持续   1  145
1  星期二  116℃   小雨~阴    北   2   15
2  星期一  12-3℃      晴    北   3  177
3  星期五  2818℃      阴    南   2   90
4  星期日  -2-10℃      晴    北   3   36
5  星期四  3017℃    晴~阴    南   2   63
6  星期六   7-2℃   多云~阴  无持续   1   39
7  星期五  2513℃  阵雨~多云    东   2   59
8  星期六   8-4℃    霾~晴  无持续   1  315
9  星期四   5-5℃   多云~晴   西北   3   28
数据总览

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 500 entries, 0 to 499
Data columns (total 7 columns):
 #   Column  Non-Null Count  Dtype 
---  ------  --------------  ----- 
 0   星期      500 non-null    object
 1   最高      500 non-null    object
 2   最低      500 non-null    object
 3   天气      500 non-null    object
 4   风向      500 non-null    object
 5   风力      500 non-null    int64 
 6   AQI     500 non-null    int64 
dtypes: int64(2), object(5)
memory usage: 27.5+ KB
None
数据类型预览

               风力         AQI
count  500.000000  500.000000
mean     1.946000   96.690000
std      0.944918   63.743112
min      1.000000   15.000000
25%      1.000000   52.000000
50%      2.000000   82.000000
75%      3.000000  120.000000
max      5.000000  429.000000
数据情况

星期     0
最高     0
最低     0
天气     0
风向     0
风力     0
AQI    0
dtype: int64
数据缺失值检验

星期 7
天气 57
风向 9

结果分析:
缺失值:所有数据完整,数据量500
数据类型:只有“风力”、“AQI”为“int64”,其他均为“object”需要进行转换
类型数:天气类型数为57,而数据总量只有500,需要重点进行处理

“最高”&“最低”变量处理

    星期   最高    最低     天气   风向  风力  AQI
0  星期六  2920℃  霾~雷阵雨  无持续   1  145

原始数据中,变量后带有摄氏度标识,利用代码将他删掉并加入到新的数据集data2

data2 = pd.DataFrame()
data2['max_t'] = data['最高'].replace('℃','',regex=True)
data2['min_t'] = data['最低'].replace('℃','',regex=True)
print(data2)

输出:

    max_t min_t
0      29    20
1      11     6
2      12    -3
3      28    18
4      -2   -10
..    ...   ...
495    21    12
496    29    18
497    16     3
498    15     4
499    21     8

[500 rows x 2 columns]

“风向”变量处理

print(data['风向'].value_counts())
无持续    194124104
西南      35
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值