1.数据的正态检验,卡方检验,独立样本的t检验,方差检验
import numpy as np
import scipy.stats as ss
#生成一个标准正态分布,20个数
norm_dist=ss.norm.rvs(size=20)
norm_dist
#检验是否是正态分布,p值大于0.05不拒绝原假设,服从正态分布
ss.normaltest(norm_dist)
#卡方检验,15 95
# 85 5 得到检验统计量、p值、自由度、理论分布
ss.chi2_contingency([[15,95],[85,5]])
#独立分布t检验 p值大于0.05不拒绝原假设,两个数据之间的均值没有差异
ss.ttest_ind(ss.norm.rvs(size=10),ss.norm.rvs(size=20))
#方差检验ss.f_oneway([第一组数据],[第二组数据]...)
ss.f_oneway([49,50,39,40,43],[28,32,30,26,34],[38,40,45,42,48])
#Q—Q图,默认是检验正态分布,越是跟角平分线相拟合就越是正态分布
from statsmodels.graphics.api import qqplot
from matplotlib import pyplot as plt #导入画图工具
plt.show(qqplot(ss.norm.rvs(size=100)))#显示ss.norm.rvs(size=100)的qq图
2.求两个数据之间的相关系数
import pandas as pd
#求s1和s2两组数据的相关系数
s1=pd.Series([0.1,0.2,1.1,2.4,1.3,0.3,0.5])
s2=pd.Series([0.5,0.4,1.2,2.5,1.1,0.7,0.1])
s1.corr(s2)
s1.corr(s2,method="spearman")#method="spearman"指定计算斯皮尔曼相关系数
#利用DataFrame直接进行相关系数计算,DataFrame针对于列进行相关性计算
df=pd.DataFrame([s1,s2])
df.corr()
df=pd.DataFrame(np.array([s1,s2]).T)#对[s1,s2]进行转换,并转置
df.corr()
3.一元线性回归
#一元线性回归分析
#生成数据x
x=np.arange(10).astype(np.float).reshape((10,1))#0-9的十个数,reshape((10,1)表示当成数组
x
#真实的y
y=x*3+4+np.random.random((10,1))
#+np.random.random((10,1))添加一些噪声,0-1的随机数
y
#做线性回归,可以去sklearn的官网下的API找函数的具体用法
from sklearn.linear_model import LinearRegression#导入函数
reg=LinearRegression()
res=reg.fit(x,y)#拟合x,y
y_pred=reg.predict(x)#利用拟合的方程预测y
y_pred#预测的y值
reg.coef_ #拟合的参数
reg.intercept_ #截距
4.主成分分析(PCA)
#主成分分析(PCA)
data=np.array([np.array([2.