import pandas as pd
import numpy as np
import scipy.stats as ss
norm_dist=ss.norm.rvs(size=20)
print(norm_dist)
# 几种检验方法
# 参数:statistic检验统计量,p值pvalue
x=ss.normaltest(norm_dist)#基于偏度和峰度的检验是否符合正态分布的检验方法(参数p值<0.05一般不符合正态分布)
print(x)
y=ss.chi2_contingency([[15,95],[85,5]])#卡方检验
print(y)
z=ss.ttest_ind(ss.norm.rvs(size=100),ss.norm.rvs(size=200))#独立分布T检验
print(z)
q=ss.f_oneway([49,50,39,40,43],[28,32,30,26,34],[38,40,45,42,48])# 方差检验
print(q)
# 使用qq图查看数据是否符合正态分布
from statsmodels.graphics.api import qqplot
from matplotlib import pyplot as plt
qqplot(ss.norm.rvs(size=100))
plt.show()
# 查看相关系数
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.2,0.6])
# print(s1.corr(s2))#s1和s2的相关系数
# print(s1.corr(s2,method='spearman'))#得到spearman的相关系数
df=pd.DataFrame(np.array([s1,s2]).T)#使用DataFrame求相关系数
print(df)
print(df.corr())
# 回归的例子
w=np.arange(10).astype(np.float64).reshape((10,1))
# .astype(np.float):将数组的数据类型转换为浮点型。在这里,我们将整数数组转换为浮点数数组。
# .reshape((10, 1)):改变数组的形状为 (10, 1)。这将把原来的一维数组转换为一个包含 10 行、1 列的二维数组。
# print(w)
m=w*3+4+np.random.random((10,1))#10 行、1 列 大小为0到1的随机数组
# print(m)
print('=======')
from sklearn.linear_model import LinearRegression
reg=LinearRegression()
res=reg.fit(w,m)#拟合
print(reg.coef_,'\n')#权重
print(reg.intercept_,'\n')#偏置
y_pred=reg.predict(w)#预测值
print(y_pred)