Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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 如何为GAM模型的变量添加权重?_R_Gam_Mgcv - Fatal编程技术网

R 如何为GAM模型的变量添加权重?

R 如何为GAM模型的变量添加权重?,r,gam,mgcv,R,Gam,Mgcv,我正在运行一个gam模型,该模型基于一个包含许多变量的大型数据集。我的反应变量是每年秋天/秋天牛群的“招募”水平。这是根据60年来每年秋季/秋季的小鹿与雌性的比率计算得出的 我的问题是,很多年和研究地点只记录了1-10名女性。这意味着比率的稳健性是不可信的。例如,如果看到一只母鹿和一只小鹿,它的招募率为100%,但如果他们看到一只母鹿,招募率将下降50% 我需要告诉模型,样本量较小的年份/研究地点的权重应小于样本量较大的年份/研究地点,因为这些较小的样本量无疑会影响结果 上面是一张每年观察到的

我正在运行一个gam模型,该模型基于一个包含许多变量的大型数据集。我的反应变量是每年秋天/秋天牛群的“招募”水平。这是根据60年来每年秋季/秋季的小鹿与雌性的比率计算得出的

我的问题是,很多年和研究地点只记录了1-10名女性。这意味着比率的稳健性是不可信的。例如,如果看到一只母鹿和一只小鹿,它的招募率为100%,但如果他们看到一只母鹿,招募率将下降50%

我需要告诉模型,样本量较小的年份/研究地点的权重应小于样本量较大的年份/研究地点,因为这些较小的样本量无疑会影响结果

上面是一张每年观察到的雌性动物的表格和直方图

我的模型如下:

gamFIN <-  gam(Fw.FratioFall 
             ~ s(year)
             + s(percentage_woody_coverage) 
             + s(kmRoads.km2) 
             + s(WELLS_ACTIVEinsideD)  
             + s(d3) 
             + s(WT_DEER_springsurveys)
             + s(BadlandsCoyote.1000_mi)
             + s(Average_mintemp_winter, BadlandsCoyote.1000_mi)
             + s(BadlandsCoyote.1000_mi, WELLS_ACTIVEinsideD)
             + s(BadlandsCoyote.1000_mi, d3)
             + s(YEAR, bs = "re") + s(StudyArea, bs = "re"), method = "REML", select = T,  data = mydata)

gamFIN不要将其作为结果的比率。取而代之的是,将小鹿计数作为结果进行建模,并使用公式右侧的记录值,通过
offset()
术语对雌性计数进行建模。你应该用小鹿数量的对数来抵消。因此,公式如下所示:

   Fawns 
         ~ s(year)
        + all_those_smooth_terms
        + offset( lnFemale_counts)
gam模型具有隐式日志链接,这是记录女性计数的原因

编辑(Gavin正确。gam的默认值不是线性链接):


gamFIN-gamFIN-Right。希望您有足够的数据来处理如此复杂的模型。每个平滑函数基本上创建3个或更多的项,每个项需要10-15个案例才能得到稳定的估计。我尝试了这个方法,解释的偏差消失了,残差到处都是。同样重要的是,在我们考虑招募时,从生态学角度将其建模为一个比率,因此每只雌性小鹿的数量非常重要,因为偏移量确实会加权数据估计过程。在泊松回归中查找偏移量的使用,您更可能找到偏移量加权机制的解释。确保您在模型中使用了
family=Poisson()
,或其他适合计数的分布。这里的答案是用这种改变来解决这个问题的正确方法;真正的响应是一个计数,偏移量取比率中每个女性部分的car。您不必在GLM/GAM上下文中像这样转换数据,偏移量允许您在不脱离整数计数响应分布的情况下进行规范化。
gamFIN <- gam(FawnFall ~ s(year) + s(percentage_woody_coverage) + s(kmRoads.km2) + 
                s(WELLS_ACTIVEinsideD) + s(d3) + s(WT_DEER_springsurveys) + 
      s(BadlandsCoyote.1000_mi) + s(Average_mintemp_winter, BadlandsCoyote.1000_mi) + 
      s(BadlandsCoyote.1000_mi, WELLS_ACTIVEinsideD) + s(BadlandsCoyote.1000_mi, d3) + 
      s(YEAR, bs = "re") + s(StudyArea, bs = "re") + offset(FemaleFall),
      family="poisson", method = "REML", select = T, data = mydata)