一、假设检验与方差检验
import numpy as np
import scipy.stats as ss
1.正态检验
H0:服从正态分布
H1:不服从
norm_dist=ss.norm.rvs(size=20) #符合标准正态分布的20个数
ss.normaltest(norm_dist) #检验是否为正态分布,p>0.05,不能拒绝原假设,符合正态分布,基于偏度和峰度的一种检验法
2.卡方检验
H0:观测与期望无显著差别
H1:有差别
ss.chi2_contingency([[15,95],[85,5]]) #得到检验统计量,p值<0.05,有差别,自由度,理论分布
3.独立T分布检验
H0:两者无显著差别
H1:有显著差别
ss.ttest_ind(ss.norm.rvs(size=100),ss.norm.rvs(size=200))#p值>0.05,则没有差异
4.方差检验
H0:多个样本总体均值相等
H1:多个样本总体均值不完全相等
ss.f_oneway([49,50,39,40,43],[38,32,30,26,34],[38,40,45,42,48])
5.qq图
from statsmodels.graphics.api import qqplot
from matplotlib import pyplot as plt
plt.show(qqplot(ss.norm.rvs(size=100))) #检验是否为正态分布,基本位于角平分线上
二、相关系数
import pandas as pd
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) #pearson 相关系数
s1.corr(s2,method='spearman')
df=pd.DataFrame([s1,s2]) #DataFrame
df.corr() #针对列进行相关计算
df1=pd.DataFrame(np.array([s1,s2]).T) #进行转置后再计算
三、回归
x=np.arange(10).astype(np.float).reshape((10,1))
y=x*3+4+np.random.random((10,1))
from sklearn.linear_model import LinearRegression
reg=LinearRegression()
res=reg.fit(x,y)#拟合过程
y_pred=reg.predict(x) #预测值
reg.coef_ #查看参数
reg.intercept_ #查看截距
四、主成分分析
data=np.array([np.array([2.5,0.5,2.2,1.9,3.1]),np.array([2.4,0.7,2.9,2.2,3])]).T
from sklearn.decomposition import PCA
lower_dim=PCA(n_components=1) #降的维度
lower_dim.fit(data)
lower_dim.explained_variance_ratio_ #降维后的重要性,即得到的信息量
lower_dim.fit_t