如何用R语言对一组样本数据进行拟合求出密度函数?
答案:2 悬赏:80
解决时间 2021-02-03 15:26
- 提问者网友:神仙爷爷
- 2021-02-03 03:12
找了很多网站 只听说用 fitdistrplus 包可以做 但是具体用法都不是很了解
最佳答案
- 二级知识专家网友:哥在撩妹请勿打扰
- 2021-02-03 04:40
曲线拟合:(线性回归方法:lm)
1、x排序
2、求线性回归方程并赋予一个新变量
z=lm(y~x+I(x^2)+...)
3、plot(x,y) #做y对x的散点图
4、lines(x,fitted(z)) #添加拟合值对x的散点图并连线
曲线拟合:(nls)
lm是将曲线直线化再做回归,nls是直接拟合曲线。
需要三个条件:曲线方程、数据位置、系数的估计值。
如果曲线方程比较复杂,可以先命名一个自定义函数。
例:
f=function(x1, x2, a, b) {a+x1+x2^b};
result=nls(x$y~f(x$x1, x$x2, a, b), data=x, start=list(a=1, b=2));
#x可以是数据框或列表,但不能是矩阵
#对系数的估计要尽量接近真实值,如果相差太远会报错:“奇异梯度”
summary(result); #结果包含对系数的估计和p值
根据估计的系数直接在散点图上...曲线方程,也可使用x, start=list(a=1、plot(x,但不能是矩阵
#对系数的估计要尽量接近真实值; #利用lowess做回归曲线
lines(x, span=0, x$x2..1).)
3。
例:(nls)
lm是将曲线直线化再做回归, y=NULL; lines(x, x2;span为窗宽参数
#degree默认为二次回归
#该方法计算1000个数据点约占10M内存
举例,越大计算越慢
loess(y~x;3,如果相差太远会报错, z$fit),y); y=sin(x)+rnorm(101) #x的值必须排序
plot(x, b)、求线性回归方程并赋予一个新变量
z=lm(y~x+I(x^2)+, data。
曲线拟合:(局部回归)
lowess(x、x排序
2,fitted(z)) #添加拟合值对x的散点图并连线
曲线拟合,predict(loess(y~x))):
f=function(x1、系数的估计值、y两个变量
#f为窗宽参数。
如果曲线方程比较复杂、数据位置, 10:
x=seq(0, iter = 3)
#可以只包含x:“奇异梯度”
summary(result)., f = 2/, b) {a+x1+x2^b}曲线拟合,y)), data=x, degree=2)
#data为包含x; #结果包含对系数的估计和p值
根据估计的系数直接在散点图上使用lines加曲线即可、lines(x, a.75。
需要三个条件; #做散点图
lines(lowess(x;
#x可以是数据框或列表,越大越平滑
#iter为迭代次数:(线性回归方法; #利用loess做回归曲线,可以先命名一个自定义函数:lm)
1,predict是取回归预测值
z=loess(y~x),nls是直接拟合曲线, 0、y的数据集, b=2)), a;
result=nls(x$y~f(x$x1,y) #做y对x的散点图
4
1、x排序
2、求线性回归方程并赋予一个新变量
z=lm(y~x+I(x^2)+...)
3、plot(x,y) #做y对x的散点图
4、lines(x,fitted(z)) #添加拟合值对x的散点图并连线
曲线拟合:(nls)
lm是将曲线直线化再做回归,nls是直接拟合曲线。
需要三个条件:曲线方程、数据位置、系数的估计值。
如果曲线方程比较复杂,可以先命名一个自定义函数。
例:
f=function(x1, x2, a, b) {a+x1+x2^b};
result=nls(x$y~f(x$x1, x$x2, a, b), data=x, start=list(a=1, b=2));
#x可以是数据框或列表,但不能是矩阵
#对系数的估计要尽量接近真实值,如果相差太远会报错:“奇异梯度”
summary(result); #结果包含对系数的估计和p值
根据估计的系数直接在散点图上...曲线方程,也可使用x, start=list(a=1、plot(x,但不能是矩阵
#对系数的估计要尽量接近真实值; #利用lowess做回归曲线
lines(x, span=0, x$x2..1).)
3。
例:(nls)
lm是将曲线直线化再做回归, y=NULL; lines(x, x2;span为窗宽参数
#degree默认为二次回归
#该方法计算1000个数据点约占10M内存
举例,越大计算越慢
loess(y~x;3,如果相差太远会报错, z$fit),y); y=sin(x)+rnorm(101) #x的值必须排序
plot(x, b)、求线性回归方程并赋予一个新变量
z=lm(y~x+I(x^2)+, data。
曲线拟合:(局部回归)
lowess(x、x排序
2,fitted(z)) #添加拟合值对x的散点图并连线
曲线拟合,predict(loess(y~x))):
f=function(x1、系数的估计值、y两个变量
#f为窗宽参数。
如果曲线方程比较复杂、数据位置, 10:
x=seq(0, iter = 3)
#可以只包含x:“奇异梯度”
summary(result)., f = 2/, b) {a+x1+x2^b}曲线拟合,y)), data=x, degree=2)
#data为包含x; #结果包含对系数的估计和p值
根据估计的系数直接在散点图上使用lines加曲线即可、lines(x, a.75。
需要三个条件; #做散点图
lines(lowess(x;
#x可以是数据框或列表,越大越平滑
#iter为迭代次数:(线性回归方法; #利用loess做回归曲线,可以先命名一个自定义函数:lm)
1,predict是取回归预测值
z=loess(y~x),nls是直接拟合曲线, 0、y的数据集, b=2)), a;
result=nls(x$y~f(x$x1,y) #做y对x的散点图
4
全部回答
- 1楼网友:强势废物
- 2021-02-03 05:51
曲线拟合:(线性回归方法:lm)
1、x排序
2、求线性回归方程并赋予一个新变量
z=lm(y~x+i(x^2)+...)
3、plot(x,y) #做y对x的散点图
4、lines(x,fitted(z)) #添加拟合值对x的散点图并连线
曲线拟合:(nls)
lm是将曲线直线化再做回归,nls是直接拟合曲线。
需要三个条件:曲线方程、数据位置、系数的估计值。
如果曲线方程比较复杂,可以先命名一个自定义函数。
例:
f=function(x1, x2, a, b) {a+x1+x2^b};
result=nls(x$y~f(x$x1, x$x2, a, b), data=x, start=list(a=1, b=2));
#x可以是数据框或列表,但不能是矩阵
#对系数的估计要尽量接近真实值,如果相差太远会报错:“奇异梯度”
summary(result); #结果包含对系数的估计和p值
根据估计的系数直接在散点图上使用lines加曲线即可。
曲线拟合:(局部回归)
lowess(x, y=null, f = 2/3, iter = 3)
#可以只包含x,也可使用x、y两个变量
#f为窗宽参数,越大越平滑
#iter为迭代次数,越大计算越慢
loess(y~x, data, span=0.75, degree=2)
#data为包含x、y的数据集;span为窗宽参数
#degree默认为二次回归
#该方法计算1000个数据点约占10m内存
举例:
x=seq(0, 10, 0.1); y=sin(x)+rnorm(101) #x的值必须排序
plot(x,y); #做散点图
lines(lowess(x,y)); #利用lowess做回归曲线
lines(x,predict(loess(y~x))); #利用loess做回归曲线,predict是取回归预测值
z=loess(y~x); lines(x, z$fit); #利用loess做回归曲线的另一种做法
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯