全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
11319 4
2012-05-17
r 软件在非线性估计出现时  在计算模型的时候产生了缺省值或无限值
二维码

扫码加我 拉你入群

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

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

全部回复
2014-12-31 17:02:52

可以这样来处理——
1.删除法在不影响数据结构的情况下,删除法是最简单的将缺失数据集转变成完整数据集的方法。根据数据处理的不同角度,可以将删除法分为以下4种。
(1)删除观测样本。
(2)删除变量:当某个变量缺失值较多且对研究目标影响不大时,可以将整个变量整体删除。
(3)使用完整原始数据分析:当数据存在较多缺失而其原始数据完整时,可以使用原始数据替代现有数据进行分析。
(4)改变权重:当删除缺失数据会改变数据结构时,通过对完整数据按照不同的权重进行加权,可以降低删除缺失数据带来的偏差。
   
2.插补法
删除数据虽然简单易行,但会带来信息浪费、改变数据结构等问题,因此在条件允许的情况下,找到缺失值的替代值来进行插补,尽可能还原真实数据是更好的方法。
下面介绍均值插补、回归插补、二阶插补、热平台、冷平台、抽样填补等单一变量插补,多变量插补是单变量插补的推广,请读者自行尝试。
在插补方法中,最简单的是从总体中随机抽取某个样本代替缺失样本。
R程序如下:
> sub=which(is.na(nhanes2[,4])==TRUE)        # 返回nhanes2数据集中第4列为NA的行
> dataTR=nhanes2[-sub,]                        # 将第4列不为NA的数存入数据集dataTR中
> dataTE=nhanes2[sub,]                         # 将第4列为NA的数存入数据集dataTE中
> dataTE[,4]=sample(dataTR[,4],length(dataTE[,4]),replace=T)# 在非缺失值中简单抽样
> dataTE

    age   bmi     hyp     chl
1  20-39   NA      <NA>        206
4  60-99   NA      <NA>    204
10 40-59   NA      <NA>        206
11 20-39   NA      <NA>        113
12 40-59   NA      <NA>    229
15 20-39   29.6    no      199
16 20-39   NA      <NA>    218
20 60-99   25.5    yes     187
21 20-39   NA      <NA>    199
24 60-99   24.9     no      238
  
均值法是通过计算缺失值所在变量所有非缺失观测值的均值,使用均值来代替缺失值的插补方法。


类似的,可以使用中位数、四分位数等进行插补,下面仅以均值法为例来对nhanes2数据集的第4列进行实现。
> sub=which(is.na(nhanes2[,4])==TRUE)         # 返回nhanes2数据集中第4列为NA的行
> dataTR=nhanes2[-sub,]                     # 将第四列不为NA的数存入数据集dataTR中
> dataTE=nhanes2[sub,]                       # 将第四列为NA的数存入数据集dataTE中
> dataTE[,4]=mean(dataTR[,4])             # 用非缺失值的均值代替缺失值
> dataTE

     age     bmi     hyp         chl
1   20-39    NA    <NA>        191.4
4   60-99    NA      <NA>        191.4
10 40-59     NA     <NA>        191.4
11 20-39    NA     <NA>        191.4
12 40-59    NA      <NA>        191.4
15 20-39   29.6     no      191.4
16 20-39    NA      <NA>        191.4
20 60-99   25.5    yes     191.4
21 20-39    NA      <NA>        191.4
24 60-99   24.9     no      191.4



二维码

扫码加我 拉你入群

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

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

2016-3-28 13:32:51
DM小菜鸟 发表于 2014-12-31 17:02
可以这样来处理——
1.删除法在不影响数据结构的情况下,删除法是最简单的将缺失数据集转变成完整数据集 ...
请问,参数初始估计值里有奇异梯度矩阵怎么办呢?
二维码

扫码加我 拉你入群

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

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

2016-3-28 13:35:22
DM小菜鸟 发表于 2014-12-31 17:02
可以这样来处理——
1.删除法在不影响数据结构的情况下,删除法是最简单的将缺失数据集转变成完整数据集 ...
您这个处理方法是针对原始数据不全的措施吗?我的原始数据是完整的,但是在模型计算的时候就会出现缺省值或无限值,也可以用您这个方法解决吗?
二维码

扫码加我 拉你入群

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

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

2018-9-10 16:02:00
我也碰到过这样得情况,我个人觉得可以改变一下初值,是因为程序从这个程序出发在做最优化的时候,正好碰上某个值使得你的目标函数无法求解,比如说有可能使得分母等于0了,所以你可以试试调试初值。
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群