问题描述
我对 ggplot2 包很陌生,但我还没有找到解决我的问题的方法。我正在尝试通过 ggplot 从混合回归模型中绘制回归线。
library('flexmix')
library('ggplot2')
我有一个季度 GDP 数据(BNtrend,从 1960 年到 2019 年)和时间 (1:240) 的时间序列
df<-data.frame(BNtrend,Time)
dput(structure(list(BNtrend = c(13.095175293036,13.0993301025131,13.1069366791082,13.1189374584571,13.1350538027743,13.1506421543937,13.1664356010119,13.1834018596698,13.2012815115765,13.2170466115525,13.2312764484766,13.2436326240254,13.223802880737,13.2759771128642,13.3031668531272,13.3038600518644,13.3261555344032,13.3336743753944,13.3467581516518,13.3552332861849,13.3569329470084,13.3843769973525,13.3961211726027,13.4105766918397,13.4190703113088,13.435057828383,13.4455970370148,13.4506515027725,13.4692840587601,13.4787375917601,13.4885153723327,13.4983270708452,13.5290443225699,13.437330514154,13.5723883625349,13.5595534422666,13.5670231281496,13.5942351256737,13.600543328303,13.6092423546905,13.6294727303166,13.6405828772163,13.6548123934857,13.6705212802673,13.6701415195454,13.6909646678979,13.7058124564027,13.7136449216881,13.7276538001874,13.7301972040574,13.7401930633356,13.7571466588357,13.7767145022768,13.7862724918047,13.7951893732502,13.8084865561786,13.8174150206514,13.8221289717222,13.832298914949,13.8141313413209,13.8124270466906,13.8149928553372,13.818532323875,13.8328858150739,13.8469415369374,13.8584226346086,13.8625528467141,13.8762395345416,13.8865699905811,13.8902832091968,13.8953286104861,13.8973451585215,13.9125376134429,13.9285460260767,13.9256108161624,13.9362597163722,13.9442060869527,13.9538172750535,13.9653195530621,13.9660740523907,13.9788098242029,13.9710268594953,13.972514335385,13.9707932700244,13.9755945396441,13.9809334794803,13.9883819389672,13.9929829509508,14.0017711868136,14.0077277991188,14.0080676984227,14.0147229125317,14.0187052665456,14.0186406309051,14.0207027431476,14.0249966013069,14.0324163519747,14.0348006560061,14.0403017889644,14.0423901908048,14.0444091529726,14.0517720869456,14.0581275990533,14.0604881976712,14.0654055453467,14.0768714884659,14.0796435096314,14.0822862189889,14.0850254224223,14.0970486537848,14.1041810470492,14.12111559683,14.1327906234963,14.1390835467388,14.1532519347122,14.1619077329774,14.1762686248057,14.1828227618801,14.1953741638095,14.2080514738331,14.214037212276,14.2176962515356,14.2223783428081,14.2246050455239,14.2240593184878,14.2280202128773,14.2310062354031,14.2352651369617,14.246108919969,14.2437195964711,14.2449529230093,14.2424294917811,14.2359199598224,14.2376130816945,14.2388567478329,14.2408870655043,14.2489174752452,14.2594836296117,14.2646697373278,14.2739811650525,14.2789612233899,14.2832663481371,14.2846374914546,14.286659232981,14.2926121795993,14.2945084393845,14.3007016731038,14.3014714345679,14.3053672577644,14.3173617261979,14.3235555077303,14.3356865508933,14.3435499800682,14.352878575939,14.3596009494531,14.367099951356,14.3725280767519,14.3812608071114,14.3931415240925,14.4068044581147,14.415843636918,14.4255813125126,14.4316073217033,14.4399505215255,14.4454112371497,14.4463419514951,14.4500398305418,14.4494629496677,14.4536524662499,14.4581948637451,14.4620021592991,14.4616696942319,14.4636071371508,14.4609488838087,14.4690652941137,14.4761163342055,14.4853627958463,14.4914324752987,14.4941596852095,14.5021534991375,14.5038806428157,14.5061182190192,14.5115923258539,14.5191616866765,14.5265101853613,14.5368316781644,14.5357320143811,14.5453293852862,14.5518327663424,14.5597583378573,14.5626067206576,14.5652273996698,14.5697761412341,14.5640351317634,14.5616400732287,14.5464776339347,14.5299099379193,14.5308049667196,14.5316216733001,14.5393879027306,14.54234768531,14.5478549092473,14.5537008839277,14.5607621039362,14.5713232503352,14.5704434103765,14.5742371955361,14.5764419994623,14.5775126134385,14.5752962598274,14.5777466878568,14.5764789084648,14.5764708991711,14.5839177947624,14.5829015919879,14.5888974871272,14.5888905323817,14.5903083671679,14.5953330455066,14.5961151014388,14.6018086946804,14.6003737899879,14.604551785862,14.6051441742942,14.6131227005887,14.6091837580326,14.6125732994942,14.6184153294739,14.6267054030438,14.6334167894551,14.6405294109757,14.6490257740009,14.6498452117373,14.6522311476182,14.6558765336456,14.6624461356356,14.6671510085831,14.6695204578185,14.6717349297696,14.6693117168385),Time = 1:240)
我的模型是:
set.seed(123)
BNtfr1 <- stepFlexmix(BNtrend~Time,k = 1:5,nrep = 30,unique=F,drop=T)
我首先得到了正确的分类
ppfr <- ggplot(data=df,aes(x=tt,y=as.numeric(BNtrend)))+geom_point()+
geom_point(data=df,colour=clusters(BNtfr11))
但是我无法得到我的模型(BNtfr11)的三组的回归线; 我尝试了几种方法,通过输入每组的截距和斜率的值或像这样重新调用模型:
ppfr+geom_abline(intercept=flexmix::parameters(BNtfr11)[1,1],slope=flexmix::parameters(BNtfr11)[2,1])
ppfr + ppfr+geom_abline(data=df,intercept=flexmix::parameters(BNtfr11)[1,1])
在任何情况下,我都可以获得线条,也可以通过小费“随机”值(在我的观察范围内)来获得任何线条。你能帮我吗?
附言我通过标准 abline() 绘制回归线并绘制设置我的数据 as.numeric(BNtrend)
但我需要在 x 轴上显示年份并将我的数据设置为时间序列我无法获得不同的组颜色或回归线。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)