【问题标题】:Multiple non linear regression in R programR程序中的多元非线性回归
【发布时间】:2016-12-19 16:00:21
【问题描述】:

我正在尝试使用表单的逻辑模型

Y = exp(ao + a1fi1....)/(1 + exp(a0 + a1fi1 ....)

对于R中的多元非线性回归,因变量Y是由大约500个值组成的一行,有33个自变量X1, X2, X3.....X33

我正在从 EXCEL 文件中读取数据:

data1<-read.csv(file.choose(), header=TRUE)

它用我的数据填充 R。我使用输入使用 lm() 函数执行线性回归:

results<- lm(Y~ X1 + X2....X33, data = data1)

效果很好,现在我正在尝试使用表单的自启动逻辑功能:

 nls(Y ~ SSlogis(x, Asym, xmid, scal), data1) 

用于非线性回归;但是,我似乎没有正确应用该功能。因此,我的问题是如何使用此函数对我的数据集执行多重非线性回归分析?感谢您提供任何帮助。

【问题讨论】:

  • "我似乎没有正确应用该功能"...让你这么说?你有错误吗?一个警告?如果是这样,他们怎么说?您的 R 会话是否崩溃?你的电脑会死机吗?您是否得到了结果,但它似乎不正确?
  • 另外,请确保您需要nlsSSlogis。你有二进制数据(Y 有两个不同的值)吗?如果是这样,请使用 glmfamily = binomial,而不是 nlsSSlogis
  • 你的问题有点不清楚。来自 nlme 包的 gnls 函数允许您对具有与协变量的线性关系的非线性模型的参数进行建模。
  • 是的,我的 Y 函数是 1 和 0。因此我使用了函数: glm(formula = Y ~ X1 + X2, family = binomial, data = data1) 。估计的系数与已发表论文中使用 SAS 计算的系数相匹配
  • 谢谢大家的帮助!! glm() 函数是我应该使用的!

标签: r non-linear-regression


【解决方案1】:

您只需在进行回归时选择模型的类型。以下代码应该有所帮助。 (我以在线数据集为例)

    mydata <- read.csv("http://www.ats.ucla.edu/stat/data/binary.csv")
    model <- glm(admit ~ .,
    family=binomial(link='logit'),
    data= my data)

然后您可以使用以下代码获取有关您的模型的更多信息

    fit
    fit$resample
    fit$results
    fit$finalModel

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-11
    • 2011-10-14
    • 1970-01-01
    • 2014-01-30
    相关资源
    最近更新 更多