楼主: kizgel
8419 9

[问答] 怎么样把gamma分布的实际点和拟合线画在同一张图上? [推广有奖]

  • 0关注
  • 0粉丝

本科生

37%

还不是VIP/贵宾

-

威望
0
论坛币
2 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1059 点
帖子
68
精华
0
在线时间
60 小时
注册时间
2012-11-1
最后登录
2017-8-21

楼主
kizgel 发表于 2016-1-12 19:51:41 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
  1. library(ggplot2) #载入包
  2. library(MASS)
复制代码

#Step1:生成10万个服从gamma分布的数,shape=2,rate=0.2
  1. x <- round(rgamma(100000,shape = 2,rate = 0.2),1)
  2. x <- x[which(x>0)]
  3. t1 <- as.data.frame(table(x))
  4. names(t1) <- c("x","y")
  5. t1 <- transform(t1,x=as.numeric(as.character(x)))
  6. t1[,2] <- t1[,2]/sum(t1[,2])
  7. ggplot() + geom_point(data = t1,aes(x = x,y = y)) + theme_classic()
复制代码
QQ截图20160112150438.jpg

#Step2:运用MASS包中的fitdistr()求出参数shape、rate
  1. fitdistr(x,"gamma") #计算出shape=2,rate=0.2,很完美
复制代码
#Step3:将actual graph和fit graph画在一张图上
  1. ggplot() + geom_point(data = t1,aes(x = x,y = y)) + geom_line(aes(x=t1[,1],y=dgamma(t1[,1],2,0.2)),color="red") + theme_classic()
复制代码
QQ截图20160112151154.jpg
#问题就出现了,参数值相当完美,画出的图为什么重合度那么差,所以,我的问题就是:
1.拟合曲线是这样画吗,我感觉应该不是,还希望能请教下大家;

2.对于任何一个模型,求出参数之后,还请以这个例子为例,帮我大概解答下怎么评估所建的模型的拟合好坏,涉及到哪些常用的检验

最后,感觉这个问题应该不难,自己谷歌了一两天也没解决,总结一下,应该是基础不够扎实,对于这类问题还没有建立系统的思想来一步步深入,所以在边科研边补充统计学的知识,希望大家能多指教一些,解决这个问题固然重要,还是希望从问题中学到更多衍生的知识,在此先谢谢各位了

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:gamma 怎么样 GAM Library ggplot2 library

回帖推荐

sunshine668890 发表于2楼  查看完整内容

你的也太复杂了,不对呀,拟合的数据直接用核密度估计曲线啊,应该是你求拟合数据的频率有问题 x

沙发
sunshine668890 学生认证  发表于 2016-1-13 18:21:45
你的也太复杂了,不对呀,拟合的数据直接用核密度估计曲线啊,应该是你求拟合数据的频率有问题
x <- rgamma(100000,shape = 2,rate = 0.2)
hist(x,freq=F,xlim=c(0,60),ylim=c(0,0.1))
lines(density(x),col="red")
curve(dgamma(x,2,rate=0.2),add=T)
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
admin_kefu + 25 + 2 + 3 + 2 热心帮助其他会员

总评分: 论坛币 + 25  学术水平 + 2  热心指数 + 3  信用等级 + 2   查看全部评分

藤椅
sunshine668890 学生认证  发表于 2016-1-13 18:23:58
你试试这个吧,检验的话,用分布拟合检验,有点复杂,简单的就是ks检验

板凳
kizgel 发表于 2016-1-13 20:34:39
sunshine668890 发表于 2016-1-13 18:21
你的也太复杂了,不对呀,拟合的数据直接用核密度估计曲线啊,应该是你求拟合数据的频率有问题
x
嗯,自己对于密度的求法确实存在问题,应该就是个错误,学习了,谢谢你的解答

报纸
kizgel 发表于 2016-1-13 20:35:34
sunshine668890 发表于 2016-1-13 18:23
你试试这个吧,检验的话,用分布拟合检验,有点复杂,简单的就是ks检验
嗯,明白了,ks.test(),已经慢慢摸索到了,谢谢你

地板
sunshine668890 学生认证  发表于 2016-1-14 10:57:06
kizgel 发表于 2016-1-13 20:35
嗯,明白了,ks.test(),已经慢慢摸索到了,谢谢你
不客气,我也是刚学完R这门课

7
kizgel 发表于 2016-1-14 15:13:27
sunshine668890 发表于 2016-1-14 10:57
不客气,我也是刚学完R这门课
嗯,方便把你的学习路线告诉我吗,感觉自己没有学好,好些都是似懂非懂

8
sunshine668890 学生认证  发表于 2016-1-15 11:00:19
kizgel 发表于 2016-1-14 15:13
嗯,方便把你的学习路线告诉我吗,感觉自己没有学好,好些都是似懂非懂
我们学校有这门课,就是看薛毅和汤银才这两本书,做做总结和做做课后题。我觉得得多找些数据什么的练练,数据不好找啊。

9
sunshine668890 学生认证  发表于 2016-1-15 11:01:31
kizgel 发表于 2016-1-14 15:13
嗯,方便把你的学习路线告诉我吗,感觉自己没有学好,好些都是似懂非懂
我们学校有这门课,就是看薛毅和汤银才这两本书,做做总结和做做课后题。我觉得得多找些数据什么的练练,数据不好找啊。

10
kizgel 发表于 2016-1-15 14:50:01
sunshine668890 发表于 2016-1-15 11:01
我们学校有这门课,就是看薛毅和汤银才这两本书,做做总结和做做课后题。我觉得得多找些数据什么的练练, ...
是啊,任何东西都需要实战,谢谢你

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-1 03:31