Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么scipy的曲线拟合给出了基因表达数据的多元回归线?_Python_Scipy_Curve Fitting_Non Linear Regression - Fatal编程技术网

Python 为什么scipy的曲线拟合给出了基因表达数据的多元回归线?

Python 为什么scipy的曲线拟合给出了基因表达数据的多元回归线?,python,scipy,curve-fitting,non-linear-regression,Python,Scipy,Curve Fitting,Non Linear Regression,“”“ 我正在尝试将一个指数deacy函数拟合到一个大的基因表达数据集。我在stackoverflow上花了很多时间,我发现了一些我想尝试的东西 但我得到了多重回归线,我不知道为什么以及如何修复它。如果你能建议一个更好的选项或函数,我也非常感激。 提前谢谢你帮了我的忙 “”“ 这就是函数 将函数应用于我的数据 您只需对数据进行排序: t=np.array(df_样本['smallRNA']) y=np.array(df_sample['genexpr']) t_范数=(t-t[0])/(t[-

“”“ 我正在尝试将一个指数deacy函数拟合到一个大的基因表达数据集。我在stackoverflow上花了很多时间,我发现了一些我想尝试的东西

但我得到了多重回归线,我不知道为什么以及如何修复它。如果你能建议一个更好的选项或函数,我也非常感激。 提前谢谢你帮了我的忙

“”“

这就是函数 将函数应用于我的数据
您只需对数据进行排序:

t=np.array(df_样本['smallRNA'])
y=np.array(df_sample['genexpr'])
t_范数=(t-t[0])/(t[-1]-t[0])#归一化
c_0=y[-1]
tau_0=1
a_0=(y[0]-y[-1])
popt,pcov=曲线拟合(func,t_范数,y,p0=(a_0,tau_0,c_0))
a、 tau,c=popt
y_fit=func(t_范数,a,tau,c)
plt.plot(t_norm,y,'b.)
idx=np.argsort(t#u norm)#对数据进行排序
plt.plot(t_范数[idx],y_拟合[idx],'r-')#plot排序拟合
plt.show()


虽然从统计学上看,这里似乎没有任何结构…

但你甚至不应该为这个数据拟合一个常数,更不用说一个三参数非线性方程;-)。多条曲线是否来自于
t
未排序的事实,因此它实际上是曲线上点之间的锯齿形连接。尝试将拟合绘制为点或在
t
中按升序对数据进行排序。
smallRNA = [1.4847814317391115,
 1.233300788320302,
 1.3482469618574953,
 1.370572550987182,
 1.2942438021815492,
 1.8362649665550308,
 1.9478952510177636,
 1.7449833728367992,
 1.133732460554052,
 1.3172194208200945,
 2.2366329568831316,
 1.2651420206147634,
 2.0615652798644457,
 1.5188246709945887,
 1.1466238867527543,
 1.3408780599606556,
 1.4771209497656745,
 1.651149617228606,
 1.6860351720116376,
 1.2506453147790253,
 1.4870430365838434,
 1.524647241933158,
 1.4547220043517506,
 1.7128458331422909,
 1.2111590790051767,
 1.4833400674312536,
 1.5011399997244916,
 1.3913217014556971,
 1.4161650806831194,
 1.6373102731988107,
 2.3951290051934726,
 1.6848115128561434,
 2.9188929470100784,
 1.9035779757468991,
 1.7306658643903157,
 1.698255623968752,
 1.2847578416257817,
 2.2638689793456934,
 1.5930676648572581,
 1.679254296180541,
 1.2719964106792359,
 1.2037024877731124,
 1.7079879931344195,
 1.6544933181202117,
 1.0485948565930532,
 1.9978932787991883,
 2.1584455179465056,
 1.5855391880033107,
 1.4131624973162846,
 1.0491493504262577,
 1.5440379870152185,
 0.9634572526320548,
 1.334006585966365,
 1.7079879931344195,
 1.3190420464570736,
 1.7181179328838307,
 1.6561191123457741,
 1.6147186951451824,
 1.6720869623098138,
 1.6979813431306043,
 1.3513988445861689,
 1.09654186866835,
 2.315102280947673,
 1.651724518310352,
 1.557770505403525,
 1.6749162715346937,
 2.830459562006103,
 1.6607070287389956,
 1.8426125062701317,
 1.9938047370848269,
 1.512871040315023,
 1.4719534246949146,
 1.9462952066313157,
 1.3476999540804735,
 1.552935620670088,
 1.6963623896975115,
 1.6051862355080382,
 2.1400574327564597,
 1.6455025236112542,
 1.6099862265092482,
 1.260871347310878,
 1.4181056734587187,
 1.602878345784571,
 1.2470179140349023,
 1.6386413699560323,
 1.6153749530357946,
 0.5972531564093516,
 1.3845760323803993,
 1.8707082507565052,
 1.9446057842893594,
 2.5911426074059265,
 1.6216778595798695,
 0.8267211148215126,
 1.280072164005035,
 2.1448277971531833,
 1.5136542988762927,
 1.3597890830112078,
 1.1988223702026333,
 1.485048887858052,
 1.5852724352684031,
 1.9208129532406653,
 1.5292685023520693,
 2.2402533306161008,
 1.5809553088645034,
 1.0324008985174453,
 1.8372713254640423,
 1.4196121857885755,
 0.8993753827747732,
 1.5813286847624104,
 0.5972531564093516,
 1.4514089682216447,
 1.9534275512344357,
 1.1590345756261624,
 1.804573660514313,
 0.9634572526320548,
 1.188872137425364,
 0.8796857765384195,
 1.0875640778916444,
 1.034092960428115,
 1.6288585084680207,
 2.3897534428254215,
 1.75047276418574,
 1.9774667460114315,
 1.8513017159377254,
 1.7340966607967765,
 1.645240704520543,
 1.5108664977177522,
 1.4648163848908131,
 2.1410823211778403,
 1.7687196791762685,
 1.6052523491007507,
 2.675390064982142,
 1.5070320893546723,
 2.2705554362094054,
 1.5778785887497413,
 1.2719078004338622,
 1.8033673563678885,
 1.6084038766685629,
 1.5577609032739919,
 2.626402622679313,
 1.368055381284621,
 1.5096502028846615,
 1.4691415136668815,
 1.8571664694047927,
 1.4357218027785223,
 1.9861933433596186,
 1.3559989421473164,
 1.6960705653999977,
 1.5797554562676404,
 2.115884188384194,
 1.6867706454133078,
 1.526968779225678,
 1.4058990171935448,
 1.4992705571074072,
 1.8738790555045006,
 2.234660547275298,
 1.849839119767255,
 1.6956736498899025,
 1.3843844598715376,
 1.5522559968891674,
 1.5989945747221277,
 1.5668369355838003,
 1.5051787003315549,
 2.1660347974066982,
 1.5701051075918644,
 1.4417027546447603,
 1.678262947477572,
 1.8586497010487721,
 1.7331317397634975,
 2.184363648350726,
 1.302107256488202,
 1.7992548616068385,
 1.7233369992526086,
 2.013788196548857,
 1.1118655144253595,
 1.704118347478623,
 1.098330571815151,
 1.847087848386142,
 1.1941744714226987,
 2.223319853488265,
 1.4970096850509844,
 1.4482165159623221,
 2.1289427671857952,
 2.0193939201711064,
 1.3704162307853769,
 1.7787672437633182,
 2.8434461654396217,
 1.542418719275772,
 1.3168345086654032,
 1.6394693078981621,
 1.7693003851568454,
 1.8268796411139967,
 1.7639346193000356,
 1.3493655386282142,
 1.7773817319879697,
 0.9922918299081754,
 1.2368583317807773,
 1.636321610695747,
 1.1519565606344542,
 1.3065764144587242,
 1.7440698169796038,
 2.061929554443146,
 1.3491116903528981,
 1.6063853580404708,
 2.10098612376305,
 1.198169879301653,
 1.4518215531821759,
 0.7675283643313485,
 0.9611096795514968,
 2.124215900612652,
 2.559775672893104,
 1.7229719764638614,
 1.6462651881380896,
 1.843684956282479,
 1.6311941249724367,
 1.8157031826262484,
 1.6158347871076075,
 1.7408216031833423,
 1.9934887015956644,
 1.4499191247016987,
 1.4534251582590787,
 1.8941771885645704,
 1.8228838742044629,
 1.65265052648444,
 1.5987070126638212,
 1.7492374674300186,
 1.5240334282452728,
 1.451787927798003,
 2.1244081460368367,
 1.3664968183514556,
 1.2587077236907418,
 0.9634572526320548,
 1.2931813736665314,
 1.3748856243767726,
 1.5491163587347603,
 1.4115648465514437,
 1.3978420086866388,
 1.2332977966159,
 1.344852878031716,
 1.162517954982421,
 1.1517456660514334,
 1.716341874802147,
 1.1958484823358815,
 1.2544892396556067,
 1.3063709067507911,
 1.3413680728167385,
 1.972490647444594,
 2.2086387144887407,
 1.109882319947273,
 1.6147924084093643,
 1.6682388199482967,
 1.6916983477048313,
 1.749454060523717,
 1.5310321270003897,
 1.5317066167115303,
 1.8090237778630935,
 1.7305465679927772,
 1.3671638088116929,
 1.1722510807146163,
 1.326669744758649,
 1.8474648005518322,
 1.495649602488043,
 1.7548840396870868,
 1.7917594692280552,
 1.5090723851424706,
 1.3211543639244325,
 1.4517146391746436,
 1.639557958338597,
 1.7943435003173827,
 2.4502027948363927,
 2.4079079798034706,
 1.6700158510497638,
 1.8695920379297737,
 2.9903512612966665,
 1.610484318675355,
 1.4769844744372003,
 1.2625974419262989,
 1.4318932648446774,
 2.045787584289522,
 1.3535950298155,
 1.584629122645107,
 1.3492740003805157,
 2.187673458149201,
 1.4480468601975305,
 1.3304008082847716,
 2.3867159840087835,
 1.4811867967797938,
 1.6704033645129963,
 1.377201264878756,
 1.2299643405653156,
 1.717234054622453,
 1.2811699579251061,
 2.300995121671421,
 2.4856644882243546,
 1.7744060018328025,
 1.2932915858480336,
 1.5513201167191744,
 1.5011091737147157,
 1.8078913880852043,
 1.3006275650643129]

geneExpr = [1.3769050211772507,
 3.7562462827448257,
 2.6719763224779958,
 1.1088030594011895,
 3.146026602007864,
 5.1314962447314505,
 2.6605132571854435,
 2.286485479964256,
 1.9650113466570955,
 1.2787138204750903,
 2.7636641799765105,
 4.5285096091180135,
 2.055471332190772,
 1.9978097053593409,
 2.087677493805377,
 0.6863704250688618,
 2.0974613358210905,
 2.2132254700071208,
 2.48323841200138,
 1.5039881301377562,
 2.065007107942714,
 2.049230428240303,
 3.1503271044572427,
 2.3342037488522647,
 1.2879035090495468,
 2.4580229092932604,
 1.326194618426605,
 1.467041043454956,
 2.069229739358799,
 0.9202774621803934,
 1.913175975101608,
 1.5289070141065204,
 3.9252170136010194,
 0.4793125314239097,
 0.9274139930893066,
 3.0955995956056253,
 0.9350589706109779,
 1.3667921114846069,
 1.2438646855071578,
 1.4746053869947549,
 1.3828684829828457,
 1.1102630744716409,
 1.2884669631143617,
 1.2019684569402267,
 1.768584417233937,
 3.3488851200048906,
 1.3085841085041314,
 1.949837840980232,
 1.5458642815467911,
 2.8734656865803703,
 1.0097062308572082,
 2.26417092115662,
 0.5494502953108996,
 2.852342629706449,
 1.1610537731711952,
 1.8628414163276428,
 2.055877681980133,
 2.031529704965473,
 1.706727039705061,
 5.562953440306615,
 4.516805355870563,
 1.7852720556314563,
 2.1005987032703493,
 2.0298194651259567,
 4.067765793497416,
 1.7752345258038185,
 1.9350866537015463,
 1.0961439126058516,
 1.602554255421435,
 2.291438448294199,
 1.340880292313372,
 2.408586242306745,
 2.100697732173863,
 0.77438404464467,
 2.8981547413635966,
 3.1998902982962987,
 2.6960014653459727,
 1.92074196528459,
 1.8060268874721686,
 0.7341812462712731,
 4.040338021942181,
 1.0206096517096142,
 1.3877909962108417,
 1.6341703208718996,
 3.0749360871652254,
 1.9089116792175367,
 1.9474345491984089,
 1.268331974681008,
 0.8795809981676224,
 1.9144190091281208,
 0.1270802397390998,
 4.24833595711353,
 4.3669910031275565,
 1.0416935096825009,
 1.1940615718143244,
 0.8558026237665811,
 1.812046098646976,
 1.311673507873615,
 3.0093397849673607,
 2.3649421461780626,
 3.1504408119984464,
 1.3703907267761202,
 2.035010457899985,
 1.97571648922404,
 1.508716929296002,
 0.9259976145453455,
 5.087583944061218,
 2.163327839574992,
 5.164145580225468,
 1.882381183129369,
 2.1537323048551884,
 1.4641679356399222,
 1.2401260403911023,
 1.8947336676344437,
 1.87430000038156,
 1.9324192128382656,
 2.3637097605868256,
 1.8153183897580145,
 2.7034472776356075,
 1.2548972291582945,
 1.5302245388784623,
 1.1170554826855297,
 1.5474674616317405,
 1.4778135582987868,
 1.5177027250537067,
 1.3100328840517919,
 1.2022761604083556,
 2.061201470946425,
 1.4032400860384922,
 1.6048491382684908,
 1.213512354892811,
 1.84219352998238,
 0.7936446864683406,
 2.2700301363565782,
 3.003996024096597,
 3.660411491521197,
 2.195575305005744,
 1.1541602033596847,
 0.7881284979664975,
 2.6849886985602893,
 0.7206015440349863,
 2.7252722206622386,
 1.6010500579439904,
 1.3923463784019967,
 1.8243640168449449,
 2.7880079433128633,
 1.0659521525480418,
 0.8876191860288731,
 1.2036185828499717,
 1.5163663935683656,
 1.8751375205086147,
 1.6593808016539568,
 1.3450629536711138,
 1.743046254509446,
 2.383365679891565,
 1.7202874287730594,
 1.2505241744841202,
 1.0648829013065944,
 1.676612144448407,
 2.5646208023284705,
 2.9383803354532816,
 0.6636096277744107,
 1.980524826088373,
 1.88716841838094,
 1.4573506929257631,
 2.8157783254949216,
 2.3132066108617453,
 3.5849957091245392,
 1.3104222176649503,
 5.005869186797619,
 1.656583830703468,
 1.4758563116669652,
 3.1590106444683967,
 1.5082266816326058,
 1.3998383532758802,
 1.84885674137052,
 2.09998977154838,
 3.78907586873952,
 0.4662883394312476,
 2.5388739765778756,
 0.7611096254627837,
 0.9830374176395882,
 2.7322374977290544,
 0.9792087840489858,
 3.675105498156061,
 0.8825732342313036,
 3.1960685882274653,
 5.259124190596204,
 1.204476090855313,
 1.3351614013975992,
 1.3109417110191364,
 2.100469817786245,
 2.0151382362984953,
 1.361158569885664,
 1.0179610833986736,
 0.8346346836719615,
 1.9797759350043793,
 3.2861656450393952,
 2.334863099051601,
 1.7086361720456942,
 3.3297249235714377,
 2.7703363951836004,
 1.0897853295849105,
 1.6964377929291818,
 2.6302524565571352,
 2.3217444361354165,
 0.9778636256720471,
 1.1641320302129619,
 3.669759881539616,
 1.8989776903183184,
 1.8451729468670635,
 2.284817884485841,
 1.4322665246452273,
 1.8028063251468571,
 6.424313801576621,
 1.3658464843728737,
 3.6036740034305152,
 2.4287401275948666,
 1.9307836296113483,
 2.3056947098759233,
 1.7764027636098791,
 1.1657155836935535,
 3.0758095175369498,
 2.1186188694505184,
 1.0635003471332336,
 0.6507112000963948,
 1.7708163474637342,
 2.2882337233824046,
 1.3158185947256855,
 1.8132723096072454,
 1.6137762247932652,
 1.108713242644792,
 2.563727794452838,
 2.6229335504139892,
 1.63571914984831,
 1.8453736442669983,
 2.989346077449386,
 0.6276060667250072,
 1.0609944423522246,
 2.15349991293981,
 2.3320143470152193,
 1.5118060325992106,
 2.835346822718986,
 1.5022536697497582,
 0.8256556265785171,
 2.7321833634584944,
 2.526064328111412,
 1.466756407403721,
 1.7215191254561708,
 1.0388635252424339,
 1.715325294157353,
 1.2076875587847855,
 1.2362371642474348,
 0.33394812674227087,
 4.675284054378683,
 2.389760294726976,
 4.792628954075339,
 2.1024724402368418,
 0.8976139347165087,
 0.6952074669183057,
 2.709776326779585,
 1.1764754694078634,
 1.0073671761913532,
 1.1187112550934273,
 1.2764159114560854,
 2.608374090493331,
 2.27112424293213,
 1.4332125797844384,
 3.5283190803536235,
 2.334990667936763,
 2.285800451959592,
 1.1186112799702084,
 2.0399703968427336,
 1.4570913440289304,
 0.7014837257279548,
 1.7852613553987886,
 1.959023435165816,
 1.5829877972968962,
 1.4426312620833972,
 1.496764100430386,
 4.933175199545022,
 4.060964038202633,
 3.0709086261971392,
 2.490130727772556,
 3.964732991745056,
 1.950304860608104,
 3.60356269649804,
 3.0678005050984707,
 1.5710675762000597,
 1.7144908152637672,
 0.687838463709859,
 4.599006382272776,
 2.2675849365369922,
 1.3590435271624708,
 1.148793683412492,
 2.2624825972759024,
 0.9497618693732038,
 1.6619770001458867,
 1.53102207591445,
 5.821619725812528]

df_sample = pd.DataFrame(list(zip(smallRNA,geneExpr)),columns=['smallRNA','geneExpr'])
def func(t, a, tau, c):
    return a * np.exp(-t / tau) + c
t = np.array(df_sample['smallRNA'])
y = np.array(df_sample['geneExpr'])

t_norm = (t - t[0])/(t[-1] - t[0])   # normalized

c_0 = y[-1]
tau_0 = 1
a_0 = (y[0] - y[-1])

popt, pcov = curve_fit(func, t_norm, y, p0=(a_0, tau_0, c_0))

a, tau, c = popt
y_fit = func(t_norm, a, tau, c)
plt.plot(t, y, 'b.')
plt.plot(t, y_fit, 'r-')
plt.show()