
Bom dia, estou com dificuldades em rodar um modelo no R que acredito ser devido aos NA. Apesar do software aparentemente remover os NA's na hora de rodar a funcao lm, quando ajusto meu modelo model<-lm(cpstotalnorm~indconfident+indpride+indenergy+indgrowth+indseethingsnew+indinputstrategy +indtrainingavailable+grppointsofview+grpconflictresol+grprightpeople+grpdifferentviews+grprethink +grplessonss) recebo um erro "error contrasts can be applied only to factors with 2 or more levels", pesquisei sobre o erro e vi que poderiam ser dois casos: ou as variáveis poderiam estar definidas como caracteres e nao como fatores - o que nao é o caso, ou há NA's no conjunto de dados - é o caso. Tentei retirar entao os NA's dos dados para rodr o modelo, porém usando a funcao: datanew<-na.omit(data) o R retira todas as observacoes, e nao só o NA, por exemplo:
datanew$indseethingsnew factor(0) Levels: 1 2 3 4 5 6 7 enquanto se retiro somente os NA's dessa variável, no conjunto de dados original, ele mantém todas as outras observacoes: c<-na.omit(data$indseethingsnew) > c [1] 2 2 2 3 1 3 1 2 1 1 2 3 3 3 3 2 2 1 3 4 1 1 4 3 2 3 1 2 2 1 5 2 1 3 1 1 1 6 3 1 2 1 1 1 1 2 1 2 1 3 1 [52] 3 2 5 1 5 1 1 3 2 1 2 2 1 2 2 1 1 2 2 1 2 1 2 2 1 1 2 2 3 2 2 1 2 2 2 2 3 1 3 2 2 1 3 1 2 2 1 2 3 2 1 [103] 2 1 2 4 2 1 1 2 2 1 3 3 2 2 1 1 6 2 1 2 4 2 3 3 2 2 2 2 1 3 6 1 1 3 2 3 3 1 2 3 2 2 7 2 3 2 1 3 4 1 2 [154] 3 2 1 3 attr(,"na.action") [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 [26] 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 [51] 85 86 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 [76] 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 [101] 211 212 213 214 215 216 217 218 219 attr(,"class") [1] "omit" Levels: 1 2 3 4 5 6 7 Entao meu novo conjunto de dados datanew contém apenas zeros! Alguém teria alguma sugestao? Obrigada, Daniela
-- Daniela Rodrigues Recchia M.Sc. in Statistics Tel. (Mobil): +49 01578 7588382 Kißlegg - Germany “The standard of success in life is absolutely the amount of joy you feel” Esther & Jerry Hick

Nao tem mágina Daniela, para ajustar o modelo (cm todas as covariáveis) sao precisos observacoes completas Pelo visto voce nao possui nenhuma observacao completa sugestao: antes de ajustar o modelo procure explorar e conhecer melhor as variáveis, veja quais possuem mais |N|A's , se sao todas relamente necessárias (e relevancias no contexto) e depois de explorar e compreender bem o padrao e ocorrecias de faltantes, ai sim procure ajustar um modelo mais enxuto alternativas seria imputar dados, mas eu nao lancaria mao disto antes de fazer o sugerido acima On Tue, 11 Jun 2013, Daniela Recchia wrote:
Bom dia, estou com dificuldades em rodar um modelo no R que acredito ser devido aos NA. Apesar do software aparentemente remover os NA's na hora de rodar a funcao lm, quando ajusto meu modelo model<-lm(cpstotalnorm~indconfident+indpride+indenergy+indgrowth+indseethingsnew+indinputstrategy +indtrainingavailable+grppointsofview+grpconflictresol+grprightpeople+grpdifferentviews+grprethink +grplessonss) recebo um erro "error contrasts can be applied only to factors with 2 or more levels", pesquisei sobre o erro e vi que poderiam ser dois casos: ou as variáveis poderiam estar definidas como caracteres e nao como fatores - o que nao é o caso, ou há NA's no conjunto de dados - é o caso. Tentei retirar entao os NA's dos dados para rodr o modelo, porém usando a funcao: datanew<-na.omit(data) o R retira todas as observacoes, e nao só o NA, por exemplo:
datanew$indseethingsnew factor(0) Levels: 1 2 3 4 5 6 7 enquanto se retiro somente os NA's dessa variável, no conjunto de dados original, ele mantém todas as outras observacoes:
c<-na.omit(data$indseethingsnew) c [1] 2 2 2 3 1 3 1 2 1 1 2 3 3 3 3 2 2 1 3 4 1 1 4 3 2 3 1 2 2 1 5 2 1 3 1 1 1 6 3 1 2 1 1 1 1 2 1 2 1 3 1 [52] 3 2 5 1 5 1 1 3 2 1 2 2 1 2 2 1 1 2 2 1 2 1 2 2 1 1 2 2 3 2 2 1 2 2 2 2 3 1 3 2 2 1 3 1 2 2 1 2 3 2 1 [103] 2 1 2 4 2 1 1 2 2 1 3 3 2 2 1 1 6 2 1 2 4 2 3 3 2 2 2 2 1 3 6 1 1 3 2 3 3 1 2 3 2 2 7 2 3 2 1 3 4 1 2 [154] 3 2 1 3 attr(,"na.action") [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 [26] 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 [51] 85 86 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 1 85 [76] 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 2 10 [101] 211 212 213 214 215 216 217 218 219 attr(,"class") [1] "omit" Levels: 1 2 3 4 5 6 7
Entao meu novo conjunto de dados datanew contém apenas zeros!
Alguém teria alguma sugestao?
Obrigada,
Daniela -- Daniela Rodrigues Recchia M.Sc. in Statistics
Tel. (Mobil): +49 01578 7588382 Kißlegg - Germany
“The standard of success in life is absolutely the amount of joy you feel” Esther & Jerry Hick

On 11/06/13 08:52, andrebvs@bol.com.br wrote:
Mas se tirar os NA's das covariáveis, a estrutura não ficará ortogonal na matrix X de delineamento, talvez, esse também seja um dos problemas. Agora, se subtituir os NA's por zeros, não sei se resolveria o problema em questão. Substituir NA's por zero vicia a estimativa do coeficiente da respectiva covariável, se este for significativo, levando-o em direção a zero (não significância).

?poly : polinomios ortogonais centrar as covariáveis também ajuda On 11/06/13 12:32, andrebvs@bol.com.br wrote:
...tudo bem Elias, mas o que fazer para deixar ortogonal a matrix X de delineamento sem viciar a estimativa do coeficiente?
------------------------------------------------------------------------ Em 11/06/2013 09:16, *Elias Teixeira Krainski < eliaskrainski@yahoo.com.br >* escreveu: On 11/06/13 08:52, andrebvs@bol.com.br wrote:
Mas se tirar os NA's das covariáveis, a estrutura não ficará ortogonal na matrix X de delineamento, talvez, esse também seja um dos problemas. Agora, se subtituir os NA's por zeros, não sei se resolveria o problema em questão. Substituir NA's por zero vicia a estimativa do coeficiente da respectiva covariável, se este for significativo, levando-o em direção a zero (não significância).
R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/ r-br-guia <http://www.leg.ufpr.br/r-br-guia>) e forneça código mínimo reproduzível.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.

Obrigada Paulo, é mais ou menos isso mesmo, o conjunto de dados é bem ruim... nao tenho como deletar todas as linhas com NA pois ficaria sem nenhuma observacao! Percebi isso logo após enviar o email. Ainda é complicado obter dados "razoáveis" para análises interessantes, geralmente recebemos qualquer coisa e precisamos fazer "mágica" para poder analisar... Abracos, Daniela -- Daniela Rodrigues Recchia M.Sc. in Statistics Tel. (Mobil): +49 01578 7588382 Kißlegg - Germany “The standard of success in life is absolutely the amount of joy you feel” Esther & Jerry Hick ________________________________ De: Paulo Justiniano <paulojus@leg.ufpr.br> Para: Lista R <r-br@listas.c3sl.ufpr.br>; Daniela Recchia <daniela_recchia@yahoo.com.br> Enviadas: Terça-feira, 11 de Junho de 2013 12:56 Assunto: Re: [R-br] lm e NA Nao tem mágina Daniela, para ajustar o modelo (cm todas as covariáveis) sao precisos observacoes completas Pelo visto voce nao possui nenhuma observacao completa sugestao: antes de ajustar o modelo procure explorar e conhecer melhor as variáveis, veja quais possuem mais |N|A's , se sao todas relamente necessárias (e relevancias no contexto) e depois de explorar e compreender bem o padrao e ocorrecias de faltantes, ai sim procure ajustar um modelo mais enxuto alternativas seria imputar dados, mas eu nao lancaria mao disto antes de fazer o sugerido acima On Tue, 11 Jun 2013, Daniela Recchia wrote:
Bom dia, estou com dificuldades em rodar um modelo no R que acredito ser devido aos NA. Apesar do software aparentemente remover os NA's na hora de rodar a funcao lm, quando ajusto meu modelo model<-lm(cpstotalnorm~indconfident+indpride+indenergy+indgrowth+indseethingsnew+indinputstrategy +indtrainingavailable+grppointsofview+grpconflictresol+grprightpeople+grpdifferentviews+grprethink +grplessonss) recebo um erro "error contrasts can be applied only to factors with 2 or more levels", pesquisei sobre o erro e vi que poderiam ser dois casos: ou as variáveis poderiam estar definidas como caracteres e nao como fatores - o que nao é o caso, ou há NA's no conjunto de dados - é o caso. Tentei retirar entao os NA's dos dados para rodr o modelo, porém usando a funcao: datanew<-na.omit(data) o R retira todas as observacoes, e nao só o NA, por exemplo:
datanew$indseethingsnew factor(0) Levels: 1 2 3 4 5 6 7 enquanto se retiro somente os NA's dessa variável, no conjunto de dados original, ele mantém todas as outras observacoes:
c<-na.omit(data$indseethingsnew) c [1] 2 2 2 3 1 3 1 2 1 1 2 3 3 3 3 2 2 1 3 4 1 1 4 3 2 3 1 2 2 1 5 2 1 3 1 1 1 6 3 1 2 1 1 1 1 2 1 2 1 3 1 [52] 3 2 5 1 5 1 1 3 2 1 2 2 1 2 2 1 1 2 2 1 2 1 2 2 1 1 2 2 3 2 2 1 2 2 2 2 3 1 3 2 2 1 3 1 2 2 1 2 3 2 1 [103] 2 1 2 4 2 1 1 2 2 1 3 3 2 2 1 1 6 2 1 2 4 2 3 3 2 2 2 2 1 3 6 1 1 3 2 3 3 1 2 3 2 2 7 2 3 2 1 3 4 1 2 [154] 3 2 1 3 attr(,"na.action") [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 [26] 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 [51] 85 86 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 1 85 [76] 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 2 10 [101] 211 212 213 214 215 216 217 218 219 attr(,"class") [1] "omit" Levels: 1 2 3 4 5 6 7
Entao meu novo conjunto de dados datanew contém apenas zeros!
Alguém teria alguma sugestao?
Obrigada,
Daniela -- Daniela Rodrigues Recchia M.Sc. in Statistics
Tel. (Mobil): +49 01578 7588382 Kißlegg - Germany
“The standard of success in life is absolutely the amount of joy you feel” Esther & Jerry Hick

Daniela, Pode ter outras variáveis com NAs de forma que da combinação resulta que cada linha tem no mínimo um NA. Por exemplo:
DF <- data.frame(x = c(1, 2, 3), y = c(0, 10, NA),z=c(NA,NA,4)) DF$yf=factor(DF$y) DF x y z yf 1 1 0 NA 0 2 2 10 NA 10 3 3 NA 4 <NA> DF1=na.omit(DF) DF1$yf factor(0) Levels: 0 10 lm(y~x+z, data=DF) Erro em lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) : 0 (não-NA) casos
Determine quantos NAs tem em cada coluna e linha
apply(DF,2,function(m)sum(is.na(m))) x y z yf 0 1 2 1 Para a regressão não pode ter NA em todas as linhas apply(DF,1,function(m)sum(is.na(m))) [1] 1 1 2 # isso elimina todas as linhas
Boa sorte Em 11 de junho de 2013 06:32, Daniela Recchia <daniela_recchia@yahoo.com.br> escreveu:
Bom dia,
estou com dificuldades em rodar um modelo no R que acredito ser devido aos NA. Apesar do software aparentemente remover os NA's na hora de rodar a funcao lm, quando ajusto meu modelo model<-lm(cpstotalnorm~indconfident+indpride+indenergy+indgrowth+indseethingsnew+indinputstrategy
+indtrainingavailable+grppointsofview+grpconflictresol+grprightpeople+grpdifferentviews+grprethink +grplessonss)
recebo um erro "error contrasts can be applied only to factors with 2 or more levels", pesquisei sobre o erro e vi que poderiam ser dois casos: ou as variáveis poderiam estar definidas como caracteres e nao como fatores - o que nao é o caso, ou há NA's no conjunto de dados - é o caso.
Tentei retirar entao os NA's dos dados para rodr o modelo, porém usando a funcao: datanew<-na.omit(data)
o R retira todas as observacoes, e nao só o NA, por exemplo:
datanew$indseethingsnew factor(0) Levels: 1 2 3 4 5 6 7
enquanto se retiro somente os NA's dessa variável, no conjunto de dados original, ele mantém todas as outras observacoes:
c<-na.omit(data$indseethingsnew) c [1] 2 2 2 3 1 3 1 2 1 1 2 3 3 3 3 2 2 1 3 4 1 1 4 3 2 3 1 2 2 1 5 2 1 3 1 1 1 6 3 1 2 1 1 1 1 2 1 2 1 3 1 [52] 3 2 5 1 5 1 1 3 2 1 2 2 1 2 2 1 1 2 2 1 2 1 2 2 1 1 2 2 3 2 2 1 2 2 2 2 3 1 3 2 2 1 3 1 2 2 1 2 3 2 1 [103] 2 1 2 4 2 1 1 2 2 1 3 3 2 2 1 1 6 2 1 2 4 2 3 3 2 2 2 2 1 3 6 1 1 3 2 3 3 1 2 3 2 2 7 2 3 2 1 3 4 1 2 [154] 3 2 1 3 attr(,"na.action") [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 [26] 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 [51] 85 86 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 [76] 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 [101] 211 212 213 214 215 216 217 218 219 attr(,"class") [1] "omit" Levels: 1 2 3 4 5 6 7
Entao meu novo conjunto de dados datanew contém apenas zeros!
Alguém teria alguma sugestao?
Obrigada,
Daniela
-- Daniela Rodrigues Recchia M.Sc. in Statistics
Tel. (Mobil): +49 01578 7588382 Kißlegg - Germany
“The standard of success in life is absolutely the amount of joy you feel” Esther & Jerry Hick
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
participantes (5)
-
andrebvs@bol.com.br
-
Daniela Recchia
-
Elias Teixeira Krainski
-
Paulo Justiniano
-
Robert Iquiapaza