标签: non-linear-regression

计算非线性回归的R ^ 2值

我首先想说的是,我明白计算非线性回归的R ^ 2值并不完全正确或者是有效的事情.

然而,我正处于将SigmaPlot中的大部分工作执行到R的过渡期,对于我们的非线性(浓度 - 响应)模型,同事习惯于查看与模型相关的R ^ 2值来估计优度-of配合.

SigmaPlot使用1-(残留SS /总SS)计算R ^ 2,但在RI中似乎无法提取总SS(残留SS在摘要中报告).

当我尝试使用更好的适合度估算器时,我将非常感激任何帮助实现这一点.

干杯.

statistics regression r non-linear-regression

12
推荐指数
2
解决办法
6099
查看次数

R中的多项logit:mlogit与nnet

我想运行中的R多项式Logit并使用了两个库,nnet并且mlogit,其产生不同的结果和报告不同类型的统计数据.我的问题是:

  1. 什么是系数和报告标准误差之间discrepency的来源nnet和那些报道mlogit

  2. 我想用Latex文件将结果报告给文件stargazer.这样做时,存在一个有问题的权衡:

    • 如果我使用mlogit从那时开始的结果,我得到了我想要的统计数据,例如psuedo R平方,但输出是长格式的(见下面的例子).

    • 如果我使用nnet那时的结果,格式是预期的,但它报告我不感兴趣的统计数据,如AIC,但不包括,例如,psuedo R平方.

    我想在我使用时mlogit的格式化中报告统计数据.nnetstargazer

这是一个可重复的示例,有三种选择:

library(mlogit)

df = data.frame(c(0,1,1,2,0,1,0), c(1,6,7,4,2,2,1), c(683,276,756,487,776,100,982))
colnames(df) <- c('y', 'col1', 'col2')
mydata = df

mldata <- mlogit.data(mydata, choice="y", shape="wide")
mlogit.model1 <- mlogit(y ~ 1| col1+col2, data=mldata)
Run Code Online (Sandbox Code Playgroud)

编译时的tex输出是我所说的"长格式",我认为这是不希望的:

在此输入图像描述

现在,使用nnet:

library(nnet)
mlogit.model2 = multinom(y ~ 1 + col1+col2, data=mydata)
stargazer(mlogit.model2)
Run Code Online (Sandbox Code Playgroud)

给出tex输出:

在此输入图像描述

这是我想要的"宽"格式.注意不同的系数和标准误差.

r multinomial stargazer mlogit non-linear-regression

10
推荐指数
2
解决办法
4161
查看次数

Keras模型拟合多项式

我从4次多项式生成了一些数据,并希望在Keras中创建回归模型以适合该多项式。问题在于,拟合后的预测似乎基本上是线性的。由于这是我第一次使用神经网络,因此我假设我犯了一个非常琐碎而愚蠢的错误。

这是我的代码:

model = Sequential()
model.add(Dense(units=200, input_dim=1))
model.add(Activation('relu'))
model.add(Dense(units=45))
model.add(Activation('relu'))
model.add(Dense(units=1))

model.compile(loss='mean_squared_error',
              optimizer='sgd')

model.fit(x_train, y_train, epochs=20, batch_size=50)

loss_and_metrics = model.evaluate(x_test, y_test, batch_size=100)

classes = model.predict(x_test, batch_size=1)
Run Code Online (Sandbox Code Playgroud)

x_trainy_trainnumpy数组,包含此文件中的前9900个条目。

我尝试了不同的batch_size,时代数,图层大小和训练数据量。似乎没有任何帮助。

请指出所有您认为没有意义的内容!

python neural-network non-linear-regression keras

8
推荐指数
1
解决办法
4044
查看次数

Seaborn Python 中的非线性回归

我有以下数据框,我希望对其执行一些回归。我正在使用 Seaborn,但似乎找不到合适的非线性函数。下面是我的代码及其输出,下面是我正在使用的数据框 df. 注意我已经截断了该图中的轴。

我想拟合泊松或高斯分布风格的函数。

import pandas 
import seaborn


graph = seaborn.lmplot('$R$', 'Equilibrium Value', data = df, fit_reg=True, order=2, ci=None)
graph.set(xlim = (-0.25,10))
Run Code Online (Sandbox Code Playgroud)

然而这会产生下图。

在此输入图像描述

df

     R          Equilibrium Value
0   5.102041    7.849315e-03
1   4.081633    2.593005e-02
2   0.000000    9.990000e-01
3   30.612245   4.197446e-14
4   14.285714   6.730133e-07
5   12.244898   5.268202e-06
6   15.306122   2.403316e-07
7   39.795918   3.292955e-18
8   19.387755   3.875505e-09
9   45.918367   5.731842e-21
10  1.020408    9.936863e-01
11  50.000000   8.102142e-23
12  2.040816    7.647420e-01
13  48.979592   2.353931e-22
14  43.877551   4.787156e-20
15  34.693878   6.357120e-16
16  27.551020   9.610208e-13
17 …
Run Code Online (Sandbox Code Playgroud)

python seaborn non-linear-regression

8
推荐指数
1
解决办法
1万
查看次数

non linear regression with random effect and lsoda

I am facing a problem I do not manage to solve. I would like to use nlme or nlmODE to perform a non linear regression with random effect using as a model the solution of a second order differential equation with fixed coefficients (a damped oscillator).

I manage to use nlme with simple models, but it seems that the use of deSolve to generate the solution of the differential equation causes a problem. Below an example, and the problems I …

r ode differential-equations nlme non-linear-regression

8
推荐指数
1
解决办法
201
查看次数

如何对R(新更新)中的纵向温度序列进行分段/样条回归?

这里我有温度时间序列面板数据,我打算为它运行分段回归或三次样条回归.首先,我快速研究了分段回归概念及其在R in中的基本实现,SO初步了解了如何继续我的工作流程.在我的第一次尝试中,我试图通过使用splines::nsin splinespackage 来运行样条回归,但是我没有得到正确的条形图.对我来说,使用基线回归或分段回归或样条回归可以起作用.

以下是我的面板数据规范的一般情况:在下面显示的第一行是我的因变量,以自然对数项和自变量表示:平均温度,总降水量和11个温度箱以及每个箱宽(AKA,箱窗) )是3摄氏度.(< - 6,-6~-3,-3~0,...> 21).

可重复的例子:

以下是使用实际温度时间序列面板数据模拟的可重现数据:

set.seed(1) # make following random data same for everyone
dat <- data.frame(index=rep(c("dex111", "dex112", "dex113", "dex114", "dex115"), 
                          each=30),
                year=1980:2009,
                region= rep(c("Berlin", "Stuttgart", "Böblingen", 
                              "Wartburgkreis", "Eisenach"), each=30),
                ln_gdp_percapita=rep(sample.int(40, 30), 5), 
                ln_gva_agr_perworker=rep(sample.int(45, 30), 5),
                temperature=rep(sample.int(50, 30), 5), 
                precipitation=rep(sample.int(60, 30), 5), 
                bin1=rep(sample.int(32, 30), 5), 
                bin2=rep(sample.int(34, 30), 5), 
                bin3=rep(sample.int(36, 30), 5),
                bin4=rep(sample.int(38, 30), 5), 
                bin5=rep(sample.int(40, 30), 5), 
                bin6=rep(sample.int(42, 30), 5),
                bin7=rep(sample.int(44, 30), 5), 
                bin8=rep(sample.int(46, 30), 5), 
                bin9=rep(sample.int(48, 30), …
Run Code Online (Sandbox Code Playgroud)

regression r plm non-linear-regression

7
推荐指数
1
解决办法
371
查看次数

使用nlsLM函数查找非线性模型的初始条件

我正在使用包中的nlsLM函数minpack.lm来查找参数的值a, e,并且c这些函数最适合数据out.这是我的代码:

n <- seq(0, 70000, by = 1)
TR <- 0.946
b <- 2000
k <- 50000
nr <- 25
na <- 4000
nd <- 3200
d <- 0.05775

y <- d + ((TR*b)/k)*(nr/(na + nd + nr))*n
## summary(y)
out <- data.frame(n = n, y = y)
plot(out$n, out$y)

## Estimate the parameters of a nonlinear model
library(minpack.lm)
k1 <- 50000
k2 <- 5000

fit_r <- nlsLM(y ~ …
Run Code Online (Sandbox Code Playgroud)

r non-linear-regression

7
推荐指数
1
解决办法
331
查看次数

测试 R 中的比例优势假设

我在 R 中使用响应变量,即学生在特定课程中收到的字母等级。响应是有序的,在我看来,在逻辑上似乎是成正比的。我的理解是,在使用 polr() 而不是 multinom() 之前,我需要测试它是否成比例。

对于我的一门数据课程,我“测试”了这样的比例:

M1 <- logLik(polrModel)  #'log Lik.' -1748.180691 (df=8)
M2 <- logLik(multinomModel)  #'log Lik.' -1734.775727 (df=20)
G <- -2*(M1$1 - M2$2)) #I used a block bracket here in the real code
# 26.8099283
pchisq(G,12,lower.tail = FALSE) #DF is #of predictors
#0.008228890393     #THIS P-VAL TELLS ME TO REJECT PROPORTIONAL
Run Code Online (Sandbox Code Playgroud)

对于测试比例优势假设的第二种方法,我还运行了两个 vglm 模型,一个与family=cumulative(parallel =TRUE)另一个与family=cumulative(parallel =FALSE). 然后我pchisq()用模型偏差的差异和剩余自由度的差异进行了测试。

这两种方式中的任何一种都值得尊敬吗?如果没有,我很乐意帮助您确定是否接受或拒绝比例几率假设的实际编码!

除了上述两个测试之外,我还分别针对每个预测变量绘制了我的累积概率图。我读到我希望这些线平行。我不明白的是,polr()您的输出是每个自变量(系数)的单个斜率,然后是特定的截距,具体取决于您使用的累积概率(例如:P(Y<=A), P( Y<=B) 等)。那么,如果每个方程的斜率系数都相同,那么这些线怎么可能不平行?

我在 Chris Bilder 的 YouTube 课程中学习了我的基础知识;他在第 …

regression r logistic-regression non-linear-regression

6
推荐指数
1
解决办法
4869
查看次数

线性回归和非线性回归之间的区别?

在机器学习中,我们说:

  • w 1 x 1 + w 2 x 2 + ... + w n x n线性回归模型,其中w 1,w 2 .... w n是权重,x 1,x 2 ... x 2是功能而:
  • w 1 x 1 2 + w 2 x 2 2 + ... + w n x n 2非线性(多项式)回归模型

然而,在一些讲座我看到有人说一个模型是线性基础上的权重,即权重系数是线性和特征的程度并不重要,无论是直线(X 1)或多项式Λ(x 1 2).真的吗?如何区分线性和非线性模型?它是基于权重还是特征值?

regression machine-learning linear-regression non-linear-regression

6
推荐指数
1
解决办法
3038
查看次数

从 scipy optimize.least_squares 方法获取拟合参数的协方差矩阵

我正在使用 scipy.optimize 的east_squares 方法来执行约束非线性最小二乘优化。我想知道如何获取拟合参数的协方差矩阵,以便获得拟合参数的误差线?

对于curve_fitlesssq来说,这似乎非常清楚,但对于 east_squares 方法来说,则不太清楚(至少对我来说)。

我一直在做的一种方法是,因为我知道least_squares返回雅可比矩阵J(这是“jac”返回值),那么我所做的就是用2*J^T J近似Hessian H。最后,协方差矩阵是 H^{-1},因此大约是 (2*J^TJ)^{-1},但我担心这对协方差的近似可能太粗糙?

python curve-fitting scipy data-fitting non-linear-regression

6
推荐指数
1
解决办法
6735
查看次数