标签: curve-fitting

qqplot + stat_smooth 错误

我正在尝试绘制我的值并使用 nls 模型将它们与曲线拟合。但我收到一条错误消息,说我的变量没有起始值。

conc <- c(1.83, 3.66, 7.32, 14.65, 29.30, 58.59, 117.19, 468.75, 937.5, 1875, 3750)  
avg <- c(0.02, 0.03, 0.05, 0.09, 0.23, 0.40, 0.60, 0.79, 0.98, 0.82, 1)

DataSet <- data.frame(conc, avg)

ggplot(DataSet, aes(x = conc, y = avg)) + 
  geom_point() +
  scale_x_log10() + 
  stat_smooth(aes(x=conc, y = avg), method = "nls", 
              formula = "avg~Emax*(conc^Hill)/((EC50^Hill)+(conc^Hill))",
              method.args=list(start=c(Emax = 1, EC50 = 100, Hill = 2)),
              se = FALSE)

# Warning message:
# Computation failed in `stat_smooth()`:
# parameters without starting value …
Run Code Online (Sandbox Code Playgroud)

r curve-fitting nls ggplot2

3
推荐指数
1
解决办法
412
查看次数

函数调用的结果不是浮点数组

继我之前的两篇文章(post1post 2scipy )之后,我现在已经达到了我用来寻找曲线拟合的地步。但是,我的代码产生了错误。

我正在使用的文件示例.csv位于 post1 中。我尝试复制并替换互联网上的示例,但似乎不起作用。

这是我所拥有的(文件.py

import pandas as pd
import numpy as np
from scipy import optimize

df = pd.read_csv("~/Truncated raw data hcl.csv", usecols=['time' , '1mnaoh trial 1']).dropna()
data1 = df

array1 = np.asarray(data1)
x , y = np.split(array1,[-1],axis=1)

def func(x, a , b , c , d , e):
    return a + (b - a)/((1 + c*np.exp(-d*x))**(1/e))

popt, pcov = optimize.curve_fit(func, x , y , p0=[23.2, 30.1 , 1 …
Run Code Online (Sandbox Code Playgroud)

python numpy curve-fitting scipy

3
推荐指数
1
解决办法
3768
查看次数

逻辑回归的代码出错

我正在使用PopulationGrowth.csv编写以下脚本:

dat <-read.csv("/Path/PopulationGrowth.csv")
class = "data.frame", row.names=c(NA,-16L)
m1 <- nls(pop~SSlogis(Year,asym,xmid,scal),data=dat)
par(las=1,bty="l",mar=c(5,6,2,2)+0.1)  ## graphics tweaks
with(dat,plot(CentralOakland~Year,ylab=""))
mtext("Population",side=2,las=0,line=4)
yearvec <- 1940:2010
lines(yearvec,predict(m1,newdata=data.frame(Year=yearvec)))
Run Code Online (Sandbox Code Playgroud)

在最后一行之后,我收到以下错误:

Error in predict(m1, newdata = data.frame(Year = yearvec)) : object 'm1' not found
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的数据:

Year CentralOakland
1940 7852 
1950 8452
1960 6701
1970 6135
1980 5872
1990 5406
2000 5281
2010 6086
Run Code Online (Sandbox Code Playgroud)

我还试图预测未来30年的人口趋势.有理由相信人口将在未来30年内增加.预测这个有什么功能?

忍受我,我是R的新手.

regression r curve-fitting

2
推荐指数
1
解决办法
416
查看次数

在R中曲线拟合这些数据?

有几天我一直在研究这个问题而且我被困了......

我在R中执行了许多蒙特卡罗模拟,它给出了每个输入x的输出y,并且在x和y之间显然有一些简单的关系,所以我想确定公式及其参数.但我似乎无法在'低x'和'高x'系列中获得良好的整体适应性,例如使用这样的对数:

dat = data.frame(x=x, y=y)
fit = nls(y~a*log10(x)+b, data=dat, start=list(a=-0.8,b=-2), trace=TRUE)
Run Code Online (Sandbox Code Playgroud)

我也尝试拟合(log10(x),10 ^ y),这给出了一个很好的拟合但反向变换不适合(x,y).

谁能解决这个问题?

请解释您是如何找到解决方案的.

谢谢!

编辑:

感谢所有快速反馈!

我不知道我正在模拟的理论模型,所以我没有比较的基础.我根本不知道x和y之间的真实关系.顺便说一下,我不是统计学家.

基础模型是一种随机反馈增长模型.我的目标是在给定输入x> 0的情况下确定长期增长率g,因此系统的输出在每次迭代中以1 + g的速率指数增长.系统在每次迭代中根据系统的大小进行随机生产,输出一部分产量,其余部分保留在系统中,由另一个随机变量确定.从MC模拟我发现系统输出的增长率对于每个测试过的x而言是对数正态分布的,而数据系列中的y是增长率g的对数.当x走向无穷大时,g趋向于零.随着x走向零,g走向无穷大.

我想要一个可以从x计算y的函数.我实际上只需要一个低x的函数,比如说,在0到10的范围内.我能够很好地拟合y = 1.556*x ^ -0.4 -3.58,但它不适合大x.我想要一个通用的所有x> 0的函数.我也尝试过Spacedman的poly fit(谢谢!)但是它在x = 1到6的关键范围内并不合适.

有任何想法吗?

编辑2:

我已经尝试了一些,还有Grothendieck的详细建议(谢谢!)经过一些考虑我决定,因为我没有理论基础来选择一个函数而不是另一个函数,而且我很可能只对x-感兴趣在1和6之间的值,我应该使用一个非常适合的简单函数.所以我只使用y~a*x ^ b + c并记下它不适合高x.在论文的第一稿完成后,我可以再次寻求社区的帮助.一旦你看到蒙特卡洛模型,也许你们中的一个人可以发现x和y之间的理论关系.

再次感谢!

低x系列:

      x          y
1   0.2 -0.7031864
2   0.3 -1.0533648
3   0.4 -1.3019655
4   0.5 -1.4919278
5   0.6 -1.6369545
6   0.7 -1.7477481
7   0.8 -1.8497117
8   0.9 -1.9300209
9   1.0 -2.0036842
10  1.1 -2.0659970
11  1.2 -2.1224324
12 …
Run Code Online (Sandbox Code Playgroud)

r curve-fitting

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

曲线拟合由高斯与scipy的总和

我正在做生物信息学,我们在mRNA上绘制小RNA.我们在每个mRNA上具有蛋白质的作图坐标,并且我们计算蛋白质结合mRNA的位置与由小RNA结合的位点之间的相对距离.

我获得以下数据集:

dist    eff
-69 3
-68 2
-67 1
-66 1
-60 1
-59 1
-58 1
-57 2
-56 1
-55 1
-54 1
-52 1
-50 2
-48 3
-47 1
-46 3
-45 1
-43 1
0   1
1   2
2   12
3   18
4   18
5   13
6   9
7   7
8   5
9   3
10  1
13  2
14  3
15  2
16  2
17  2
18  2
19  2
20  2
21  3 …
Run Code Online (Sandbox Code Playgroud)

python curve-fitting scipy

2
推荐指数
1
解决办法
3686
查看次数

曲线拟合Scipy与3d数据和参数

我正在研究在scipy中拟合3d分布函数.我有一个numpy数组,其中有x和y-bin的计数,我试图将其与一个相当复杂的三维分布函数相匹配.数据适合26(!)参数,这些参数描述了其两个成分群体的形状.

我在这里学到了当我调用leastsq时,我必须将我的x和y坐标作为'args'传递.unutbu提供的代码是为我编写的,但当我尝试将其应用于我的特定情况时,我收到错误"TypeError:leastsq()得到关键字参数'args'的多个值"

这是我的代码(抱歉长度):

import numpy as np
import matplotlib.pyplot as plt
import scipy.optimize as spopt
from textwrap import wrap
import collections

cl = 0.5
ch = 3.5
rl = -23.5
rh = -18.5
mbins = 10
cbins = 10

def hist_data(mixed_data, mbins, cbins):
    import numpy as np
    H, xedges, yedges = np.histogram2d(mixed_data[:,1], mixed_data[:,2], bins = (mbins, cbins), weights = mixed_data[:,3])
    x, y = 0.5 * (xedges[:-1] + xedges[1:]), 0.5 * (yedges[:-1] + yedges[1:])
    return H.T, x, y

def gauss(x, s, …
Run Code Online (Sandbox Code Playgroud)

python curve-fitting scipy

2
推荐指数
1
解决办法
7144
查看次数

获得3d形状的等式

我有2个数组说X和Y.每个都有5个元素.现在对于(X,Y)的每个可能组合,我有一个Z值,所以Z是一个5x5矩阵.

我希望找到一个公式,例如z = f(x,y).关于如何做到这一点的任何想法.

我尝试了MS Excel曲面图,但它没有在曲面图上给出任何方程或曲线拟合.

curve-fitting parametric-equations excel-charts

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

numpy.polyfit和scipy.polyfit有什么区别?

我知道numpy和scipy都具有polyfit功能,并在这里访问过:http ://docs.scipy.org/doc/numpy/reference/generated/numpy.polyfit.html

为什么scipy.org上有一个有关numpy.polyfit的页面?numpy.polyfit和scipy.polyfit是否相同?如果没有,我应该使用哪一个?

python numpy curve-fitting scipy

2
推荐指数
1
解决办法
1142
查看次数

R,ggplot2:拟合曲线到散点图

我试图用ggplot2将曲线拟合到下面的散点图.

我找到了geom_smooth功能,但尝试不同的方法和跨度,我似乎从来没有得到正确的曲线...

这是我的散点图: TEST1

这是我最好的尝试: TEST2

任何人都可以得到更好的曲线,正确适合,看起来不那么摇摆?谢谢!

在下面找到MWE:

my.df <- data.frame(sample=paste("samp",1:60,sep=""),
                    reads=c(523, 536, 1046, 1071, 2092, 2142, 4184, 4283, 8367, 8566, 16734, 17132, 33467, 34264, 66934, 68528, 133867, 137056, 267733, 274112, 409, 439, 818, 877, 1635, 1754, 3269, 3508, 6538, 7015, 13075, 14030, 26149, 28060, 52297, 56120, 104594, 112240, 209188, 224479, 374, 463, 748, 925, 1496, 1850, 2991, 3699, 5982, 7397, 11963, 14794, 23925, 29587, 47850, 59174, 95699, 118347, 191397, 236694),
                    number=c(17, 14, 51, 45, 136, 130, 326, 333, 742, 738, 1637, …
Run Code Online (Sandbox Code Playgroud)

r curve-fitting ggplot2

2
推荐指数
1
解决办法
9914
查看次数

剂量响应 - 使用R的全局曲线拟合

我有以下剂量反应数据,并希望绘制剂量反应模型和全局拟合曲线.[xdata =药物浓度; ydata(0-5)=不同浓度药物的反应值].我没有问题地绘制了Std曲线.

标准曲线数据拟合:

df <- data.frame(xdata = c(1000.00,300.00,100.00,30.00,10.00,3.00,1.00,0.30,
                           0.10,0.03,0.01,0.00),
                 ydata = c(91.8,95.3,100,123,203,620,1210,1520,1510,1520,1590,
                           1620))

nls.fit <- nls(ydata ~ (ymax*xdata / (ec50 + xdata)) + Ns*xdata + ymin, data=df,
               start=list(ymax=1624.75, ymin = 91.85, ec50 = 3, Ns = 0.2045514))
Run Code Online (Sandbox Code Playgroud)

剂量响应曲线数据拟合:

df <- data.frame(
        xdata = c(10000,5000,2500,1250,625,312.5,156.25,78.125,39.063,19.531,9.766,4.883,
                 2.441,1.221,0.610,0.305,0.153,0.076,0.038,0.019,0.010,0.005),
        ydata1 = c(97.147, 98.438, 96.471, 73.669, 60.942, 45.106, 1.260, 18.336, 9.951, 2.060, 
                   0.192, 0.492, -0.310, 0.591, 0.789, 0.075, 0.474, 0.278, 0.399, 0.217, 1.021, -1.263),
        ydata2 = c(116.127, 124.104, 110.091, 111.819, 118.274, 78.069, 52.807, 40.182, …
Run Code Online (Sandbox Code Playgroud)

r curve-fitting

2
推荐指数
1
解决办法
859
查看次数