将指数模型拟合到数据


21

我有2个变量,都来自“数字”类:

> head(y)
[1] 0.4651804 0.6185849 0.3766175 0.5489810 0.3695258 0.4002567

> head(x)
[1] 59.32820 68.46436 80.76974 132.90824 216.75995 153.25551

我绘制了它们,现在我想对数据拟合指数模型(并将其添加到绘图中),但是我找不到关于拟合模型以在R中使用多元数据的任何信息!仅单变量数据,有人可以帮忙吗?我什至不知道从哪里开始...谢谢!


6
这有点令人困惑。您说您有两个“独立”变量(我更喜欢“预测变量”,但这并不重要)。您是否有“因变量” /“响应变量”?如果这两个都是响应变量,我可以想象拟合一个参数化的双变量概率分布(带有或不带有分布参数所依赖的预测变量)或二维核密度估计。也许您可以进一步解释上下文。(PS赞成这个问题的人必须知道这意味着什么……有人在乎吗?)
Ben Bolker

无论如何,您最好访问crossvalidated.com以获得此类问题。或访问不起眼的网站Google。它确实找到了有关将模型拟合到多元数据的信息。相当多(
准确地说

我建议bing-毕竟这是一个决策引擎,搜索引擎是如此的20世纪...只要看看Yahoo和Ask Jeeves,它们今天有多无关紧要?!
追逐

@Ben Bolker-感谢您的帮助,我已取消独立记录,因为它不正确。我所拥有的是位置之间的距离(x)和位置之间的降雨相关性(y)

请注意,如果要对这些数据进行统计推断,则必须使用特殊方法,因为如果距离是在一组公共位置上计算得出的,则它们不是独立的-例如,搜索“ Mantel测试”
Ben Bolker

Answers:


20

我不确定您要问的是什么,因为您的行话没了。但是,假设您的变量不是彼此独立(如果它们是相互独立,那么它们就没有关系了),我将尝试一下。如果x是您的自变量(或预测变量),又y是您的因变量(或响应变量),那么这应该起作用。

# generate data
beta <- 0.05
n <- 100
temp <- data.frame(y = exp(beta * seq(n)) + rnorm(n), x = seq(n))

# plot data
plot(temp$x, temp$y)

# fit non-linear model
mod <- nls(y ~ exp(a + b * x), data = temp, start = list(a = 0, b = 0))

# add fitted curve
lines(temp$x, predict(mod, list(x = temp$x)))

谢谢您的回答,正如您所指出的,我已经删除了“独立”一词,这没有任何意义。使用您的代码作为数据,我可以拟合模型,但是结果是图形中有数十条线,而不仅仅是一条线。知道为什么吗?

@sbg-不,对不起,我想不出原因。不nls()适合的模式?
理查德·赫伦

我认为是这样的:非线性回归模型模型:y〜exp(a + b * x)数据:DF ab -0.535834 -0.002024残差平方和:18.62收敛的迭代次数:6达到的收敛公差:8.08 e-06

3
@sbg尝试对x变量进行排序:lines(sort(temp$x),predict(mod, list(x=sort(temp$x)))
Ben Bolker
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.