6

私はRにかなり慣れておらず、現在、「Generalized Additive Models」という本、Introduction with R by Wood(2006)を読んで、いくつかの演習、特に私の関心分野である大気汚染と死に関する部分を読んでいます。mgcvパッケージを使用して、次のモデルを実行します。

library(gamair) 
library(mgcv) 
data(chicago) 

ap1<-gam(death ~ pm10median + so2median + o3median +s(time,bs="cr",k=200)+ s(tmpd,bs="cr"), data=chicago,family=poisson)

pm10medianとxの95%CIの効果推定値を抽出し、出力をCSVまたはその他のオプションにエクスポートするにはどうすればよいですか?

4

1 に答える 1

14

モデルの概要を保存する

summary_model <- summary(ap1)

必要な部分(線形項の場合)は p.table要素にあります

summary_model$p.table
                Estimate   Std. Error      z value    Pr(>|z|)
(Intercept) 4.7457425965 1.480523e-03 3205.4510971 0.000000000
pm10median  0.0002551498 9.384003e-05    2.7189871 0.006548217
so2median   0.0008898646 5.543272e-04    1.6053056 0.108426561
o3median    0.0002212612 2.248015e-04    0.9842516 0.324991826


write.csv(summary_model$p.table, file = 'p_table.csv')

スプライン項が必要な場合、これは

summary_model$s.table
               edf     Ref.df    Chi.sq       p-value
s(time) 167.327973 187.143378 1788.8201 4.948832e-259
s(tmpd)   8.337121   8.875807  110.5231  1.412415e-19

必要に応じて、手動で 95% CI を計算し、これらを追加できます。(DFが高いためZスコアを使用します)

p_table <- data.frame(summary_model$p.table)
p_table <- within(p_table, {lci <- Estimate - qnorm(0.975) * Std..Error
                            uci <- Estimate + qnorm(0.975) * Std..Error})
p_table
               Estimate   Std..Error      z.value    Pr...z..          uci           lci
(Intercept) 4.7457425965 1.480523e-03 3205.4510971 0.000000000 4.7486443674  4.742841e+00
pm10median  0.0002551498 9.384003e-05    2.7189871 0.006548217 0.0004390729  7.122675e-05
so2median   0.0008898646 5.543272e-04    1.6053056 0.108426561 0.0019763260 -1.965968e-04
o3median    0.0002212612 2.248015e-04    0.9842516 0.324991826 0.0006618641 -2.193416e-04\

コメントを参考に編集

などの多数のゲームモデルがあり、それらを体系的に処理したい場合はap1、それらをリストに入れて使用するのが適切なアプローチです。ap2ap3Rlapply

# create list
model_list <- list(ap1, ap2, ap3)
# give the elements useful names
names(model_list) <- c('ap1','ap2','ap3')

# get the summaries using `lapply

summary_list <- lapply(model_list, summary)

# extract the coefficients from these summaries

 p.table_list <- lapply(summary_list, `[[`, 'p.table')

 s.table_list <- lapply(summary_list, `[[`, 's.table')

作成したリストが関連するコンポーネントになりました。

于 2012-10-17T22:21:53.183 に答える