[英]One-way anova using the Survey package in R
我正在嘗試確定在復雜調查設計上運行單向 Anova的最佳方法。 在閱讀了Lumley 的調查包文檔后,我一點也不聰明。
調查::anova 函數旨在“擬合和比較復雜調查數據的分層對數線性模型”,這不是我正在做的。
我正在嘗試做的事情是我收集了關於一個分類自變量 [3 個級別] 和一個定量因變量的數據。 我想使用方差分析來檢查因變量是否根據自變量的水平而變化。
這是我的過程的一個例子:
加載測量包並創建復雜的測量設計對象
library(survey)
df <- data.frame(sex = c('F', 'O', NA, 'M', 'M', 'O', 'F', 'F'),
married = c(1,1,1,1,0,0,1,1),
pens = c(0, 1, 1, NA, 1, 1, 0, 0),
weight = c(1.12, 0.55, 1.1, 0.6, 0.23, 0.23, 0.66, 0.67))
svy_design <- svydesign(ids=~1, data=df, weights=~weight)
借用這里的這篇文章,
summary(aov(weight~sex,data = svy_design))
但是我收到一條錯誤消息:
Error in h(simpleError(msg, call)) :
error in evaluating the argument 'object' in selecting a method for function 'summary': object 'api00' not foun
同一篇文章有一個反對使用方差分析的答案/解釋:
根據我們研究所的主要統計學家的說法,在任何常見的建模環境中都不容易實現這種分析。 原因是 ANOVA 和 ANCOVA 是線性模型,在 70 年代通用線性模型(后來的廣義線性模型 - GLM)出現后沒有進一步發展。 正常的線性回歸模型產生與 ANOVA 幾乎相同的結果,但在變量選擇方面更加靈活。 由於 GLM 存在加權方法(參見 R 中的調查包),因此沒有真正需要為 ANOVA 中的分層抽樣設計開發加權方法......只需使用 GLM 代替。
summary(svyglm(weight~sex,svy_design))
我得到了這個輸出:
call:
svyglm(formula = weight ~ sex, design = svy_design)
Survey design:
svydesign(ids = ~1, data = df, weights = ~weight)
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.8730 0.1478 5.905 0.00412 **
sexM -0.3756 0.1855 -2.024 0.11292
sexO -0.4174 0.1788 -2.334 0.07989 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for gaussian family taken to be 0.04270091)
Number of Fisher Scoring iterations: 2
我與統計愛好者相去甚遠,請用最簡單的術語解釋一下。 謝謝!!
沒有像survey::aov
這樣的功能,所以你不能用它來實現你的目標。 您的代碼使用stats::aov
您可以使用survey::svyglm
。 我將使用包中的一個示例,因此我可以實際運行代碼
> model<-svyglm(api00~stype, design=dclus2)
> summary(model)
Call:
svyglm(formula = api00 ~ stype, design = dclus2)
Survey design:
dclus2<-svydesign(id=~dnum+snum, weights=~pw, data=apiclus2)
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 692.81 30.28 22.878 < 2e-16 ***
stypeH -94.47 27.66 -3.415 0.00156 **
stypeM -50.46 23.01 -2.193 0.03466 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for gaussian family taken to be 17528.44)
Number of Fisher Scoring iterations: 2
共有三種學校類型, E
、 M
和H
這里的兩個系數估計E
的均值與其他兩組的均值之間的差異,$p$ 值檢驗H
和E
具有相同均值以及M
和E
具有相同均值的假設。
如果您想要對三組之間的均值差異進行整體測試,您可以使用regTermTest
函數,該函數測試模型中的一個術語或一組術語,例如,
> regTermTest(model,~stype)
Wald test for stype
in svyglm(formula = api00 ~ stype, design = dclus2)
F = 12.5997 on 2 and 37 df: p= 6.7095e-05
該 F 測試類似於stats::aov
給出的一個。 不相同,因為這是調查數據
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.