沿'的加权点;S';R曲线
我有一个R数据框中的数据,并希望沿S曲线(logit曲线)对一列(沿'的加权点;S';R曲线,r,R,我有一个R数据框中的数据,并希望沿S曲线(logit曲线)对一列(days\u自)进行加权。特别是,一个向后的S曲线,使得最近发生的事件的权重更大。我使用这条曲线作为权重函数的理由是,它将对最近发生的事件进行大量加权,同时对遥远的事件进行轻微加权。因此,我想写一个函数,对于给定数量的观测值,我可以创建一条S曲线来提供权重,如下图所示,权重将位于y轴上,此后的天数将位于x轴上 [请忽略此图上的点和标签,我可以使用另一个stackoverflow问题中的反向s曲线/logit函数模型] 这是基于一个
days\u自
)进行加权。特别是,一个向后的S曲线,使得最近发生的事件的权重更大。我使用这条曲线作为权重函数的理由是,它将对最近发生的事件进行大量加权,同时对遥远的事件进行轻微加权。因此,我想写一个函数,对于给定数量的观测值,我可以创建一条S曲线来提供权重,如下图所示,权重将位于y轴上,此后的天数将位于x轴上
[请忽略此图上的点和标签,我可以使用另一个stackoverflow问题中的反向s曲线/logit函数模型]
这是基于一个类似问题的答案[此处][https://stackoverflow.com/questions/41659903/retrieve-x-and-y-value-based-on-graph-in-r] 您可以使用自己的公式或来自
e1071
软件包和curve()
函数的sigmoid函数创建曲线。然后,预测数据集中给定天数的曲线值
这里有一个简单的例子
library(scales)
library(e1071)
# Data set with points of interest. Suppose these are days.
days <- data.frame( d = seq.int( 1, 365, 1 ) )
重新缩放x和y以确保范围包含您感兴趣的数据值。稍后,您将希望能够从x预测y。将y缩放到上限和下限将为权重设置上限和下限阈值
x <- rescale(p$x, to = c(1, 365))
y <- rescale(p$y, to = c(0,1))
您的体重现在以天为单位$pred
x <- rescale(p$x, to = c(1, 365))
y <- rescale(p$y, to = c(0,1))
days$pred <- predict( loess( y ~ x, span=.1 ), days$d )
plot(days$d,days$pred)