多因子探索分析

该博客介绍了多因子分析方法,包括数据的正态检验、卡方检验、t检验、方差分析以及相关系数的计算。接着讲解了一元线性回归和主成分分析(PCA),并深入探讨了复合分析,特别是交叉分析、分组分析、相关分析和因子分析的应用,旨在揭示不同属性间的关系和数据的内在结构。
摘要由CSDN通过智能技术生成

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.
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值