Python统计分析基础操作

Python统计分析基础操作
摘要由CSDN通过智能技术生成

Python统计分析

描述性统计分析

分类变量:性别、民族、居住城市、是否违约、(等级变量:教育、学历、客户满意度、年龄段)

连续性变量:年龄,收入

总体:对客观事物研究时,总体是包含所有研究个体的集合,比如研究中国人的身高,那么所有中国人的身高就是总体,某一个中国人的身高就是个体

样本:在总体里面抽样,经过抽样总体中的部分个体,就形成了样本,样本是总体的子集。

统计量:均值、标准差、中位数、分位数、众数。

离散程度(反应数据某些趋势):极差、四分位差、方差、变异系数。

import numpy as np
import pandas as pd
from scipy import stats
import os
os.chdir('/Users/songdi/Desktop/code/python')
data=pd.read_excel('trade.xlsx',encoding='utf-8')
data['sales'].mean()		#均值
data['sales'].std()			#标准差
data['sales'].median()		#中位数
data['sales'].quantile([0,0.05,0.25,0.5,0.75])	#分位数
data['sales'].mode()		#众数
data['sales'].mode()[1]		#众数不止一个时可以取出某个
data['region'].value_counts()		#分类变量
data['sales'].max()-data['sales'].min()		#极差
data['sales'].quantile(0.75)-data['sales'].quantile(0.25)	#四分位差
cv=data['sales'].std()/data['sales'].mean()	#变异系数

点估计:用样本统计量去估计总体参数。(估计出一个值)

区间估计:区间估计用一个包括有真实值的区间范围来估计参数的取值范围。(估计出一个范围)

置信度和置信区间:样本均值包含在(1-a)%范围之内,a%的区间未包含均值。

样本均值近似正态分布:若样本数量足够大,产生的均值是近似符合正态分布的。

#点估计
data['sales'].mean()		#均值
#区间估计 (中心极限定理)
n=len(data['sales'])		#样本数量	
se=stats.sem(data['sales'])	#计算样本均值标准物,即data['sales'].std()/np.sqrt(n)
interval=stats.norm.interval(0.95,data['sales'].mean(),se)	#求区间估计,即data['sales'].mean()-1.96*se到data['sales'].mean()+1.96*se
假设检验

(1)提出原假设和备择假设

(2)确定适当的检验统计量

(3)规定显著性水平

(4)计算检验统计量的值

(5)做出决策

import statsmodels.api as sm
#t检验
d1=sm.stats.DescrStatsW(data['sales'])
d1.ttest_mean(data['sales'].mean())	#t统计量,概率,自由度个数(即样本量-1)
#双样本t检验
data.groupby('region').mean()['sales']
region0=data[data['region']=='华北']['sales']
region1=data[data['region']=='华南']['sales']
leveneTestRes=stats.levene(region0,region1)		#方差齐性检验
stats.stats.ttest_ind(region0,region1,equal_var=True)
卡方检验和方差分析

卡方检验主要用于分析两个分类变量之间的关系。(例:男女之间的教育水平是否有显著性差异)

方差分析用于分析多于两个分类的离散型变量与连续变量的关系。

#卡方检验
cross_table=pd.crosstab(data.trans_cost,data.sales,margins=True)
from scipy import stats
stats.chi2_contingency(cross_table)		#显著性水平
pd.crosstab(data.trans_cost,data.sales,normalize='index')
#方差分析
from statsmodels.stats.anova import anova_lm
from statsmodels.formula.api import ols
model=ols('sales ~ C(region)',data=data.dropna()).fit()
anova_lm(model)		#显著性水平
相关分析

Pearson相关系数:衡量两变量线性相关关系。

Spearman相关系数:对于有序变量而言,用Spearman更加准确一点。

Kendall相关系数:用于衡量两个变量的非线性关系。

import matplotlib.pyplot as plt
plt.scatter(x=data.trans_cost,y=data.sales,c='steelblue')
plt.show()
coor_pear=data[['trans_cost','sales']].corr(method='pearson')	#Pearson相关系数
coor_pear.
  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值