python统计分析 --- 1.方差分析、t检验
文章目錄
- 1. 統計包與數據挖掘
- 1.1 數據分析流
- 1.2 數據統計包
- 2. 方差分析
- 2.1 T檢驗(單因素方差分析)
- 2.2 T檢驗 (多因素方差分析)
- 2.3 方差分析——多因素和交互
1. 統計包與數據挖掘
1.1 數據分析流
進行數據分析應該遵循一個什么樣的步驟
1.2 數據統計包
numpy
1.pandas提供basestat功能:單變量、雙變量數據分析,包括描述統計(集中和離散、圖形、交叉表)、相關分析(r、卡方)等。
2.statsmodels提供假設檢驗及統計模型功能,主要研究結構性歸因問題,并不強調預測功能,主要為推論統計小數據服務。
3.sklearn提供數據挖掘模型功能,主要研究預測性問題,主要為大數據服務,以探討速度問題為特征。
4.Deep Learning深度學習,側重數據挖掘及復雜智能方法、已非線性模型為主,擅長處理非結構數據。
5.PyMC擬合貝葉斯模型,側重于業務問題和統計算法的整合,這類技術提供業務知識對統計模型的修正。
6.Seaborn基于matplotlib的可視化功能,統計應用者最重要的可視化包。
7.opencv-python圖片視頻庫。
2. 方差分析
分析方法有多種
x有分散和連續兩種
y有連續和分散兩種
2.1 T檢驗(單因素方差分析)
- 2.1. 卷煙廠案例
計算結果是
statistic統計值,statistic=bgroup1-bgroup2 為負數,表明bgroup1小于bgroup2,說明晚班總耗高于早班
pvalue為顯著性,顯著性不明顯,所以早班和晚班耗能一樣,差異與統計誤差造成
(大于0.05是不顯著,小于0.05是顯著)
- 方差分析
把t檢驗改為方差分析
結果
- pvalue大于0.05,說明方差是齊的,小于0.05是不齊的,
需要把qual_var的值改為True,改為True之后運行代碼
# scipy這個包很容易進行數值計算、優化的問題; # scipy.stats導入py統計包 # ttest_ind導入t檢驗 from scipy.stats import ttest_ind as ttest, levene from scipy import stats #異方差檢驗-部門 bgroup1=data[data["班次"]=='早班']["總耗"] # 提取出早班的總耗為bgroup1 bgroup2=data[data["班次"]=='晚班']["總耗"] # 提取出早班的總耗為bgroup2 levene(bgroup1,bgroup2) # #單樣本t檢驗 # stats.ttest_1samp(data["總耗"],3) # 獨立樣本t檢驗-性別 ttest(bgroup1,bgroup2,equal_var=True)#equal_var=Truepvalue還是大于0.05,表面顯著性不明顯
Ttest_indResult(statistic=-1.0930198202034351, pvalue=0.27442953509209483)- 以上進行兩個數據之間的對比可以使用于大數據分析(數據量大于10w條數據),即數據量是比較大的進行分析而不適用于進行小數據分析(數據量小于10w都叫小數據分析)
2.2 T檢驗 (多因素方差分析)
- glm 廣義線性模型
- lm 線性模型
結果顯示如下
- df 表示自由度
- sum_sq 平方求和
- mean_sq 均值平方和
- F分布值
- PR顯著性
2.3 方差分析——多因素和交互
有些因素之間的顯著關系不能通過數值的結果進行分析,需要通過分析圖形才能知道之間的相關性,這里就要進行多因素交互分析
#方差分析——多因素和交互 from statsmodels.stats.anova import anova_lm from statsmodels.stats.multicomp import (pairwise_tukeyhsd,MultiComparison)modelols=smf.ols("總耗~品牌+質量控制+機器類型+品牌*機器類型",data=data).fit() anova=anova_lm(modelols) print(np.round(anova,3))#print("部門事后檢驗",pairwise_tukeyhsd(data['總耗'],data['品牌']))#y和x的位置需要固定 #print("性別事后檢驗",pairwise_tukeyhsd(data['總耗'],data['質量控制']))import seaborn as sns fig,ax=plt.subplots(2,1,figsize=(16,12)) sns.lineplot(x="品牌",y="總耗",hue="機器類型",data=data,ax=ax[0])#交互效應圖 sns.violinplot(x="品牌",y="總耗",hue="機器類型",data=data,ax=ax[1])
多因素交互的結果
- 筆記:
y的值一般都是難以獲得的值,需要通過一些容易獲得值去求解出y的值,即獲得一些容易求解的x,然后去得到y值
在求解y可能會存在多個x的情況,有可能幾個有可能10多個,有可能100個,所以維度太多了需要降維度,這里就得采用主次歸因了
- 大數據分析一般采用內衍和外推的方法
- 小數據分析一般采用主次歸因和規則歸因的方法
總結
以上是生活随笔為你收集整理的python统计分析 --- 1.方差分析、t检验的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python基础总结--- 列表、内置函
- 下一篇: python统计分析--2.预分析:异常