混合模型方差分析

文章目錄

  • 一、說明
  • 二、受試者“間”因素和受試者“內”因素的意思?
  • 三、混合模型方差分析回答 3 件事
  • 四、混合模型方差分析的假設

一、說明

在本文中,我將討論一種稱為混合模型方差分析的方差分析變體,也稱為具有重復測量的 2 因素方差分析。這種統計方法用于分析包括受試者間因素(不同組)和受試者內因素(對同一受試者的重復測量)的數據。

二、受試者“間”因素和受試者“內”因素的意思?

??在這里插入圖片描述
受試者間因素和受試者內因素
假設我們想測試不同的教學方法(A、B 和 C)是否會影響學生的表現。我們對 15 名參與者進行研究,每組隨機分配 5 名參與者(每組一種教學方法)。這種設置體現了主題之間的因素。

“受試者間因素”表示研究中的每個參與者只被分配到一組,并且每組經歷不同的情況。

在此分析中,我們的目標是確定各組之間的平均性能水平是否存在顯著差異,這正是單因素方差分析旨在實現的目標。如果您需要更多詳細信息,可以參考我之前的文章,位于“參考資料”部分。

但是,我們可以探索一種教學方法在多個時間點對每個科目的影響,例如:

  • 在應用教學方法之前(預測試)
  • 教學期過半
  • 應用教學方法后(后測)
    這個過程代表了受試者內因素

此過程表示主題內因素。因此,在混合模型方差分析中,我們至少有一個受試者內因子和一個受試者間因子。

?

三、混合模型方差分析回答 3 件事

受試者內因素效應:它確定受試者內因素(前測、中測、后測等時間點)是否對因變量(學生表現)有顯著影響。
受試者間因素效應:它評估了學科間因素(不同的教學方法)是否對因變量有顯著影響。
交互作用:它檢查了受試者內和受試者之間的因素之間是否存在顯著的交互作用。
設置假設
在混合模型方差分析中,通常有三個假設

1/ 受試者內因素(時間)的主效應

原假設 (H0): 不同測量時間點的平均值沒有顯著差異。
備擇假設 (H1):不同測量時間點的平均值存在顯著差異。
2/ 學科間因素的主要影響(教學方法)

原假設 (H0):不同教學方法組的平均值沒有顯著差異。
備擇假設 (H1): 不同教學方法組的平均值存在顯著差異。
3/ 互動效果(教學方法*時間):

原假設 (H0):教學方法對績效的影響不會隨時間而改變(沒有相互作用)。
備擇假設 (H1): 教學方法對績效的影響會隨著時間而變化(存在交互作用)。

四、混合模型方差分析的假設

1 常態:因變量應近似正態分布在受試者間因子的每一組中。
2 獨立:觀察結果是獨立的。
3 方差的同質性:因變量的方差在受試者間因子的不同組中應該是相等的(我們可以使用 Levene 檢驗來檢查假設,您可以在 參考資料 部分閱讀我關于它的文章
4 無顯著異常值:數據不應包含顯著的異常值,因為它們會不成比例地影響分析結果。
5 協方差的同質性:對于受試者內因素(時間),相關組的所有組合之間的差異方差應相等。(可以使用 Mauchly 的球形度測試進行測試,以后可以調整)
關于協方差的同質性的注意事項:在我們的例子中,我們有 3 個組。
第一組之間的差異。
第二組的差異,第一組和第三組的差異。
第二組和第三組之間的差值應具有相同的方差。

1/ 數據 :讓我們計算一下前面的例子。我將利用 Numpy 生成隨機數據。
?

import pandas as pd
import numpy as np
from pingouin import mixed_anovanp.random.seed(0)n = 15time_points = ['T1', 'T2', 'T3']data = pd.DataFrame({'Participant': np.repeat(range(1, n+1), len(time_points)),'Teaching_Method': np.repeat(['A', 'B', 'C'], n),'Time': np.tile(time_points, n),'Score': np.random.randint(50, 100, size=n*len(time_points))
})data.head()

在這里插入圖片描述
2/ 假設:

A/ 正態性 : 現在,我們需要驗證這些假設。我將首先使用 Shapiro-Wilk 檢驗檢查正態性

注意:

  • 原假設 (H0) 是數據服從正態分布。
  • 如果 p 值大于所選的顯著性水平,則我們無法否定原假設。這表明沒有重要證據可以得出數據偏離正態分布的結論。
from scipy.stats import shapirofor method, group_data in data.groupby('Teaching_Method')['Score']:stat, p = shapiro(group_data)print(f'Shapiro-Wilk test for {method}: p-value = {p}')# Shapiro-Wilk test for A: p-value = 0.3026245223583117
# Shapiro-Wilk test for B: p-value = 0.5795532845153779
# Shapiro-Wilk test for C: p-value = 0.7610549007614936

由于在所有教學方法的 Shapiro-Wilk 檢驗中,所有 p 值都大于 0.05(我使用的顯著性水平),這表明沒有明顯證據表明偏離正態性。因此,滿足正態性假設。

B/ 方差的同質性:為了評估方差的同質性,我將采用 Levene 檢驗。

from scipy.stats import levenestat, p = levene(*[group_data for method, group_data in data.groupby('Teaching_Method')['Score']])
print(f'Levene\'s test for homogeneity of variances: p-value = {p}')
# Levene's test for homogeneity of variances: p-value = 0.8937735564168452

注意:

Levene檢驗中的原假設(H0)是被比較組的方差相等。
由于 Levene 檢驗的 p 值為 0.89(大于顯著性水平),因此我們無法否定原假設,表明沒有顯著證據表明教學方法組之間的方差存在顯著差異。

C/ 協方差的齊質性:如前所述,我們可以利用 Mauchly 測試來實現此目的。

from pingouin import sphericitysphericity_test = sphericity(data, dv='Score', subject='Participant', within='Time')print(sphericity_test)
# SpherResults(spher=True, W=0.9298475348159647, chi2=0.9455504153256469, dof=2, pval=0.6232701617877808)

注意:

  • 原假設 (H0) 是所有可能的受試者內條件對之間的差異方差相等。
    “spher=True” 參數表示滿足球形度的假設。此外,當觀察 p 值(大于 alpha)時,有大量證據拒絕球形度的假設。

D/ 異常值 :我們可以采用Tukey的方法(Tukey的柵欄,Tukey的規則),它涉及以下步驟:

計算數據的四分位距 (IQR),即第三個四分位數 (Q3) 和第一個四分位數 (Q1) 之間的差值。您也可以在“參考資料”部分參考我關于它的文章。
將下圍欄 (LF) 定義為 Q1–1.5 * IQR,將上圍欄 (UF) 定義為 Q3 + 1.5 * IQR。任何低于下圍欄或高于上圍欄的數據點都被視為潛在的異常值。
注意: 對于異常值數顯著的閾值,沒有一般規則,因為它可能取決于多個因素。

import seaborn as sns
import matplotlib.pyplot as pltQ1 = data['Score'].quantile(0.25)
Q3 = data['Score'].quantile(0.75)
IQR = Q3 - Q1lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQRoutliers = data[(data['Score'] < lower_bound) | (data['Score'] > upper_bound)]print("Outliers:")
print(outliers)plt.figure(figsize=(8, 6))
sns.boxplot(x='Teaching_Method', y='Score', data=data)
plt.title('Boxplot of Scores by Teaching Method')
plt.show()# Outliers:
# Empty DataFrame
# Columns: [Participant, Teaching_Method, Time, Score]
# Index: []

在這里插入圖片描述
3/ 讓我們運行測試: 現在我們已經確認滿足了假設,我們可以繼續進行測試。

anova = mixed_anova(dv='Score', within='Time', between='Teaching_Method', subject='Participant', data=data)print(anova)

在這里插入圖片描述
讓我們分析每個假設:

1/ 時間的主要影響:由于 p 值 (0.432535) 大于 0.05,我們無法否定原假設。這意味著沒有重要證據表明時間對分數有重大影響。

2/ 教學方法的主要效果:同樣,由于 p 值 (0.842359) 大于 0.05,我們無法否定原假設。沒有重要證據表明教學方法對分數有顯著影響。

3/ 交互效果:同樣,由于 p 值 (0.778303) 大于 0.05,我們無法否定原假設。沒有顯著的證據表明教學方法和時間對分數之間存在交互作用。

注意:

效應大小 (ηp2) 和 Epsilon (ε) :

效應大小(ηp2)值較小,表明自變量解釋的方差比例相對較低。
Epsilon (ε) 提供有關可能違反球形的信息。然而,由于我們已經用 Mauchly 檢驗證實了球形度,因此 epsilon 值在這里是補充的。
如果您希望我們涵蓋特定主題,請隨時告訴我!您的意見將有助于塑造我的內容的方向,并確保它保持相關性和吸引力

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/20596.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/20596.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/20596.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

音視頻開發_SDL事件處理

今天我為大家介紹一下SDL的事件處理。這里所指的事件處理就是我們通常所說的&#xff0c;鍵盤事件&#xff0c;鼠標事件&#xff0c;窗口事件等。 SDL對這些事件都做了封裝&#xff0c;提供了統一的API&#xff0c;下面我們就來詳細的看一下。 SDL中的事件處理 要想了解 SDL…

VB.net進行CAD二次開發(四)

netload不能彈出對話框&#xff0c;參考文獻2 參考文獻1說明了自定義菜單的問題&#xff0c;用的是cad的系統命令 只要加載了dll&#xff0c;自定義的命令與cad的命令同等地位。 這時&#xff0c;可以將自定義菜單的系統命令替換為自定義命令。 <CommandMethod("Add…

STL-queue的使用及其模擬實現

在C標準庫中&#xff0c;隊列(queue)是一種容器適配器&#xff0c;它以先進先出的方式組織數據&#xff0c;其中從容器一端插入元素&#xff0c;另一端取出元素。 queue的使用 queue的構造函數 queue的成員函數 empty&#xff1a;檢測隊列是否為空size&#xff1a;返回隊列中有…

代碼隨想錄算法訓練營 day23| ● 669. 修剪二叉搜索樹 ● 108.將有序數組轉換為二叉搜索樹 ● 538.把二叉搜索樹轉換為累加樹

文章目錄 前言669. 修剪二叉搜索樹思路方法一 遞歸法方法二 迭代法 108.將有序數組轉換為二叉搜索樹思路方法一 遞歸法方法二 迭代法 538.把二叉搜索樹轉換為累加樹思路方法一方法二 總結 前言 迭代法都沒看主要是669和538【538很簡單】 669. 修剪二叉搜索樹 思路 不用看教程…

【C++刷題】優選算法——位運算

常見位運算操作總結&#xff1a; 基礎位運算 &&#xff1a;有0則為0 |&#xff1a;有1則為1 ^&#xff1a;相同為0&#xff0c;相異為1 / 無進位相加運算符的優先級 管它什么優先級&#xff0c;加括號就完事兒了給一個數 n&#xff0c;確定它的二進制表示中的第 i (默認是從…

【基本數據結構】平衡二叉樹

文章目錄 前言平衡二叉樹1 簡介2 旋轉2.1 左旋2.2 右旋2.3 何時旋轉 3 插入節點4 刪除節點5 代碼 參考資料寫在最后 前言 本系列專注更新基本數據結構&#xff0c;現有以下文章&#xff1a; 【算法與數據結構】數組. 【算法與數據結構】鏈表. 【算法與數據結構】哈希表. 【…

【斯坦福因果推斷課程全集】1_隨機對照試驗1

目錄 The average treatment effect Difference-in-means estimation IID Sampling and Population Asymptotics Example: The linear model Regression adjustments with a linear model 隨機對照試驗&#xff08;RCT&#xff09;是統計因果推論的基礎。如果有的話&#…

關于FPGA 使用SPI FLASH固化時如何配置固化參數

關于FPGA 使用SPI FLASH固化時如何配置固化參數 EDA工具&#xff1a;Vivado 關于FPGA 使用SPI FLASH固化時如何配置固化參數一、引言二、如何設置固化參數&#xff1a;使用50M的速度 &#xff0c;SPI為X4 &#xff0c;以及bit壓縮第一&#xff1a;點open implenment design第二…

Android之onMeasure的三種模式

Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {super.onMeasure(widthMeasureSpec, heightMeasureSpec);}在 Android 中&#xff0c;onMeasure() 方法是 View 或 ViewGroup 中的一個重要方法&#xff0c;用于測量視圖的大小。在 onMeasure(…

安裝軟件缺少dll文件怎么辦,分享多種解決dll問題的方法

在計算機使用過程中&#xff0c;我們經常會遇到安裝軟件時提示缺少dll文件的問題。這種情況通常會導致軟件無法正常運行或啟動。為了解決這個問題&#xff0c;我總結了以下五種方法&#xff0c;希望對大家有所幫助。 一&#xff0c;了解DLL文件是什么 動態鏈接庫&#xff08;D…

簡單說說我對集成學習算法的一點理解

概要 集成學習&#xff08;Ensemble Learning&#xff09;是一種機器學習技術框架&#xff0c;它通過構建并結合多個學習器&#xff08;也稱為個體學習器或基學習器&#xff09;來完成學習任務。 集成學習旨在通過組合多個基學習器的預測結果來提高整體模型的性能。每個基學習…

常見儀表盤指示燈的含義,這次夠全了!

汽車是當前主要的交通工具之一&#xff0c;給人們的工作、生活提供了便利。大家在學會開車的同時&#xff0c;也得了解一些基本的汽車常識&#xff0c;可以及時的發現車輛的問題&#xff0c;并作出正確的判斷&#xff0c;以此降低車輛的損耗和維修成本。其中最基本的&#xff0…

房產證上加名?手把手教你操作,省錢又省心!

隨著《民法典》的實施&#xff0c;房產的權屬問題愈發受到重視。夫妻雙方及其親屬常希望能在房產證上增添自己的名字&#xff0c;以保障各自的權益。那么&#xff0c;房產證上到底能寫幾個名字呢&#xff1f;以下是對這一問題的詳細解答。 一、房產證命名無固定限制 在購房時&…

準確-K8s系列文章-修改containerd 默認數據目錄

修改 Kubernetes 集群中 containerd 默認數據目錄為 /data/containerd 前言 本文檔適用于 Kubernetes 1.24 及以上版本的集群,介紹如何將 containerd 默認的數據目錄從 /var/lib/containerd 修改為 /data/containerd。 步驟 1. 停止 containerd 服務(慎重!!!需評估風險!…

iOS中的UIScene和UISceneDelegate

目錄 ???????前言 一、AppDelegate和SceneDelegate的關系 1.AppDelegate 2.SceneDelegate 3.info.plist配置 4.生命周期方法對比 1.應用啟動 2.進入前臺 3.進入后臺 5.何時使用AppDelegate和SceneDelegate 1.AppDelegate 2.SceneDelegate 前言 在iOS 13及之…

Linux內核編程入門:深度探索與實戰挑戰

Linux內核編程入門&#xff1a;深度探索與實戰挑戰 在操作系統的心臟地帶&#xff0c;Linux內核以其強大、靈活和開源的特性吸引著眾多程序員。對于那些渴望深入了解系統底層機制并親手塑造操作系統的勇士們&#xff0c;Linux內核編程無疑是一個極具挑戰性和吸引力的領域。本文…

民國漫畫雜志《時代漫畫》第39期.PDF

時代漫畫39.PDF: https://url03.ctfile.com/f/1779803-1248636473-6bd732?p9586 (訪問密碼: 9586) 《時代漫畫》的雜志在1934年誕生了&#xff0c;截止1937年6月戰爭來臨被迫停刊共發行了39期。 ps: 資源來源網絡!

Qt for Android : 使用libusb做CH340x串口傳輸的底層USB庫

簡介 Qt for Android自帶的串口方案并沒有適用在高的API版本中&#xff0c; 會出現permission denied的訪問問題&#xff0c; 所以就需要使用Android API&#xff0c; 也就是在CPP中使用JNI方式進行調用&#xff0c; 為了開發的方便&#xff0c; 使用libusb庫作為替代的底層usb…

SpringBoot注解--10--@Bean,對象注入的三種方法

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 Bean一、如何使用方法注解注意Bean 的命名規則&#xff0c;當沒有設置 name 屬性時&#xff0c;那么 bean 默認的名稱就是方法名&#xff0c;當設置了 name 屬性之后…

解析Java中1000個常用類:Runnable 類,你學會了嗎?

在 Java 編程中,處理并發和多線程是一個重要的主題。為了簡化多線程編程,Java 提供了多種工具和類,其中最基本的一個工具就是 Runnable 接口。 Runnable 接口為創建和管理線程提供了一種標準的方式。本文將詳細介紹 Runnable 接口的定義、實現原理、應用場景,并通過示例展…