Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在广义加性模型中指定两个因素变量的非线性相互作用[R]_R_Gam_Mgcv - Fatal编程技术网

如何在广义加性模型中指定两个因素变量的非线性相互作用[R]

如何在广义加性模型中指定两个因素变量的非线性相互作用[R],r,gam,mgcv,R,Gam,Mgcv,我有一个时间序列数据集,其中包含一个连续的结果变量和两个因素预测因子(一个有6个水平,一个有2个水平) 我想在连续变量上模拟两个因素变量的非线性相互作用 这是我迄今为止的模型: library(mgcv) model <- bam( outcome ~ factor_1 + factor_2 + s(time, k = 9) + s(time, by = factor_1, k = 9) + s(time, by =

我有一个时间序列数据集,其中包含一个连续的结果变量和两个因素预测因子(一个有6个水平,一个有2个水平)

我想在连续变量上模拟两个因素变量的非线性相互作用

这是我迄今为止的模型:

library(mgcv)

model <- bam(
    outcome ~
        factor_1 + factor_2 +
        s(time, k = 9) +
        s(time, by = factor_1, k = 9) +
        s(time, by = factor_2, k = 9),
    data = df
)

summary(model)
Family: gaussian 
Link function: identity 

Formula:
outcome ~ factor_1 + factor_2 + s(time, k = 9) + s(time, by = factor_1, 
    k = 9) + s(time, by = factor_2, k = 9)

Parametric coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  2612.72      23.03 113.465   <2e-16 ***
factor_1b      33.19      27.00   1.229     0.22    
factor_2z    -488.52      27.00 -18.093   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Approximate significance of smooth terms:
                    edf Ref.df      F  p-value    
s(time)           2.564  3.184  6.408 0.000274 ***
s(time):factor_1b 1.000  1.001  0.295 0.587839    
s(time):factor_2z 2.246  2.792 34.281  < 2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

R-sq.(adj) =  0.679   Deviance explained = 69.1%
fREML = 1359.6  Scale est. = 37580     n = 207
库(mgcv)
型号| t |)

(截距)2612.72 23.03 113.465使用
interaction()
包含两个因素的交互作用似乎可以完成这项工作

library(mgcv)

# The following assumes factors are ordered with treatment contrast.    
model <- bam(
    outcome ~
        interaction(factor_1, factor_2) +
        s(time, k = 9) +
        s(time, by = interaction(factor_1, factor_2), k = 9),
    data = df
)
库(mgcv)
#以下假设因素按治疗对比度排序。

你是如何检查非线性相互作用的存在的?以及如何将其纳入模型。请在问题中添加样本数据。检查非线性相互作用的存在将是假设检验模型比较的一部分。我们想知道在这些因素之间添加一个交互作用是否能改善模型。很好。但我没有看到一个包含非线性相互作用的支持模型。或者,Gam模型是否考虑了非线性相互作用。我需要你的帮助。是的,非线性由SMOOTS
s()
处理。Smooth中的
by
参数是指定交互的一种方式,但我不确定如何实现多术语交互。