簡體   English   中英

如何在R中的mgcv中聲明gam()中的指數分布

[英]How to declare the exponential distribution in gam() in mgcv in R

我有一個來自實驗的小數據集,我想擬合一個 gam 模型,該模型規定 Y 的分布以 0.5 的指數呈指數分布。

我的數據是:

x1              x2      y
-1.000000   -1.000000   40
1.000000    -1.000000   5
-1.000000   1.000000    14
1.000000    1.000000    10
-1.414214   0.000000    35
1.414214    0.000000    7
0.000000    -1.414214   18
0.000000    1.414214    9
0.000000    0.000000    7
0.000000    0.000000    4
0.000000    0.000000    0
0.000000    0.000000    2

我嘗試了不同的方式將分布類型傳遞給 gam 函數,但我總是遇到異常。 例如,

model.gam = gam(y ~ x1 * x2, family = exponential(rate=0.5), data = df)
Error in gam(y ~ x1 * x2, family = exponential(rate = 0.5), data = df): family not recognized

model.gam = gam(y ~ x1 * x2, family = exponential(), data = df)
Error in check_dims(rate, target_dim = dim): argument "rate" is missing, with no default

model.gam = gam(y ~ x1 * x2, family = exponential(), data = df, rate = 0.5)
Error in check_dims(rate, target_dim = dim): argument "rate" is missing, with no default

我不認為 gam() 支持這種類型的家庭。

您可能需要考慮 gamlss 包中的 gamlss() 而不是結合 gamlss.dist 包中的 EXP 分發:

https://www.rdocumentation.org/packages/gamlss/versions/5.0-6/topics/gamlss

https://www.rdocumentation.org/packages/gamlss.dist/versions/5.0-4/topics/EXP

請注意,EXP 分布有一個均值參數,而不是比率參數。

有關 gamlss 包的詳細信息,請參閱http://www.gamlss.com

此外,對於如此小的數據集,我懷疑您是否可以在您的模型中容納交互項 - 即使擬合兩個主要效應也可能有點牽強。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM