Predição de dados - Modelagem

Olá Rodei um modelo: reg1<-lm(est ~ e1 + f1 + g1 + i1 + k1 + m1 + o1 + r1 + s1 + t1, data = dados) summary (reg1)$coefficients Estimate Std. Error t value Pr(>|t|) (Intercept) 33.811287 0.7983445 42.351753 1.557462e-202 e1 -3.300681 1.0234877 -3.224934 1.313683e-03 f1 -1.602262 0.6537985 -2.450697 1.448143e-02 g1 -1.337623 0.6721036 -1.990203 4.692499e-02 i1 -6.224414 0.9810556 -6.344608 3.820429e-10 k1 -1.279617 0.5544328 -2.307975 2.126718e-02 m1 -1.569079 0.5133349 -3.056638 2.316421e-03 o1 2.984603 1.6371984 1.822994 6.869551e-02 r1 1.340099 0.6338281 2.114295 3.481391e-02 s1 1.598583 0.4717877 3.388352 7.392205e-04 t1 6.286149 0.9227351 6.812518 1.946057e-11 E gostaria de criar uma variável em um outro banco (dados2) com a estimação da minha variável gerada pelo meu modelo, estou usando o seguinte comando, porém dá um erro. dados2$estim=predict(idfu.reg1, dados2, se.fit = F) Error in `$<-.data.frame`(`*tmp*`, "esqui", value = list(fit = c(37.4586673781906, : replacement has 4 rows, data has 5565 Como posso fazer isso? -- Sérgio Henrique Almeida da Silva Junior Doutorando em Epidemiologia em Saúde Pública Escola Nacional de Saúde Pública Sérgio Arouca - ENSP/FIOCRUZ http://lattes.cnpq.br/1611345552843383 Tel: (21) 94429486/78101651 id: 123*20942

seu segundo banco de dados deve ter a mesma dimensão do primeiro do primeiro. crie uma variável para guardar os valores da função predict e confira a dimensão do vetor usando a função dim(variável) e veja o número de dimensões do seu segundo banco de dados dim(dados2)[1]. se seu segundo banco de dados for maior do que o núvero de valores contidos na variável então seu comando não irá funcionar. Uma solução é você rodar seu modelo utilizando apenas o subgrupo de dados que você pretende utilizar no banco de dados 2. para isto utilize o comando subset da função lm. Em 3 de maio de 2012 18:25, Sérgio Henrique almeida da silva ju < sergio.edfisica@gmail.com> escreveu:
Olá
Rodei um modelo:
reg1<-lm(est ~ e1 + f1 + g1 + i1 + k1 + m1 + o1 + r1 + s1 + t1, data = dados) summary (reg1)$coefficients
Estimate Std. Error t value Pr(>|t|) (Intercept) 33.811287 0.7983445 42.351753 1.557462e-202 e1 -3.300681 1.0234877 -3.224934 1.313683e-03 f1 -1.602262 0.6537985 -2.450697 1.448143e-02 g1 -1.337623 0.6721036 -1.990203 4.692499e-02 i1 -6.224414 0.9810556 -6.344608 3.820429e-10 k1 -1.279617 0.5544328 -2.307975 2.126718e-02 m1 -1.569079 0.5133349 -3.056638 2.316421e-03 o1 2.984603 1.6371984 1.822994 6.869551e-02 r1 1.340099 0.6338281 2.114295 3.481391e-02 s1 1.598583 0.4717877 3.388352 7.392205e-04 t1 6.286149 0.9227351 6.812518 1.946057e-11
E gostaria de criar uma variável em um outro banco (dados2) com a estimação da minha variável gerada pelo meu modelo, estou usando o seguinte comando, porém dá um erro.
dados2$estim=predict(idfu.reg1, dados2, se.fit = F) Error in `$<-.data.frame`(`*tmp*`, "esqui", value = list(fit = c(37.4586673781906, : replacement has 4 rows, data has 5565
Como posso fazer isso? -- Sérgio Henrique Almeida da Silva Junior Doutorando em Epidemiologia em Saúde Pública Escola Nacional de Saúde Pública Sérgio Arouca - ENSP/FIOCRUZ http://lattes.cnpq.br/1611345552843383 Tel: (21) 94429486/78101651 id: 123*20942
_______________________________________________ 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.

Obrigado Fernando Mas se eu quiser utilizar esse modelo para predizer dados em um banco maior? Tem como? Em 3 de maio de 2012 19:15, Fernando Antonio de souza < nandodesouza@gmail.com> escreveu:
seu segundo banco de dados deve ter a mesma dimensão do primeiro do primeiro. crie uma variável para guardar os valores da função predict e confira a dimensão do vetor usando a função dim(variável) e veja o número de dimensões do seu segundo banco de dados dim(dados2)[1]. se seu segundo banco de dados for maior do que o núvero de valores contidos na variável então seu comando não irá funcionar. Uma solução é você rodar seu modelo utilizando apenas o subgrupo de dados que você pretende utilizar no banco de dados 2. para isto utilize o comando subset da função lm.
Em 3 de maio de 2012 18:25, Sérgio Henrique almeida da silva ju < sergio.edfisica@gmail.com> escreveu:
Olá
Rodei um modelo:
reg1<-lm(est ~ e1 + f1 + g1 + i1 + k1 + m1 + o1 + r1 + s1 + t1, data = dados) summary (reg1)$coefficients
Estimate Std. Error t value Pr(>|t|) (Intercept) 33.811287 0.7983445 42.351753 1.557462e-202 e1 -3.300681 1.0234877 -3.224934 1.313683e-03 f1 -1.602262 0.6537985 -2.450697 1.448143e-02 g1 -1.337623 0.6721036 -1.990203 4.692499e-02 i1 -6.224414 0.9810556 -6.344608 3.820429e-10 k1 -1.279617 0.5544328 -2.307975 2.126718e-02 m1 -1.569079 0.5133349 -3.056638 2.316421e-03 o1 2.984603 1.6371984 1.822994 6.869551e-02 r1 1.340099 0.6338281 2.114295 3.481391e-02 s1 1.598583 0.4717877 3.388352 7.392205e-04 t1 6.286149 0.9227351 6.812518 1.946057e-11
E gostaria de criar uma variável em um outro banco (dados2) com a estimação da minha variável gerada pelo meu modelo, estou usando o seguinte comando, porém dá um erro.
dados2$estim=predict(idfu.reg1, dados2, se.fit = F) Error in `$<-.data.frame`(`*tmp*`, "esqui", value = list(fit = c(37.4586673781906, : replacement has 4 rows, data has 5565
Como posso fazer isso? -- Sérgio Henrique Almeida da Silva Junior Doutorando em Epidemiologia em Saúde Pública Escola Nacional de Saúde Pública Sérgio Arouca - ENSP/FIOCRUZ http://lattes.cnpq.br/1611345552843383 Tel: (21) 94429486/78101651 id: 123*20942
_______________________________________________ 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.
_______________________________________________ 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.
-- Sérgio Henrique Almeida da Silva Junior Doutorando em Epidemiologia em Saúde Pública Escola Nacional de Saúde Pública Sérgio Arouca - ENSP/FIOCRUZ http://lattes.cnpq.br/1611345552843383 Tel: (21) 94429486/78101651 id: 123*20942

Tem sim. Veja o help da função predict(). Para exemplos aplicados vá para o chunck number 9 do script http://www.leg.ufpr.br/~walmes/cursoR/cnpaf/cap05reglin-iso.R À disposição. Walmes. ========================================================================== Walmes Marques Zeviani LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W) Departamento de Estatística - Universidade Federal do Paraná fone: (+55) 41 3361 3573 VoIP: (3361 3600) 1053 1173 e-mail: walmes@ufpr.br twitter: @walmeszeviani homepage: http://www.leg.ufpr.br/~walmes linux user number: 531218 ==========================================================================

essa afirmacao esta' incorreta... o numero de linhas do segundo conjunto de dados e' independente do numero de linhas do primeiro: set.seet(1) x = 1:10 y = 1+2*x+rnorm(10) tmp1 = data.frame(x=x, y=y) ## 10 obs rm(x,y) fit = lm(y~x, data=tmp1) summary(fit) tmp2 = data.frame(x=runif(4, 1, 10)) predict(fit, newdata=tmp2) ## 4 predicoes apenas tmp3 = data.frame(x=runif(100, 1, 10)) predict(fit, newdata=tmp3) ## 100 predicoes b 2012/5/3 Fernando Antonio de souza <nandodesouza@gmail.com>:
seu segundo banco de dados deve ter a mesma dimensão do primeiro do primeiro. crie uma variável para guardar os valores da função predict e confira a dimensão do vetor usando a função dim(variável) e veja o número de dimensões do seu segundo banco de dados dim(dados2)[1]. se seu segundo banco de dados for maior do que o núvero de valores contidos na variável então seu comando não irá funcionar. Uma solução é você rodar seu modelo utilizando apenas o subgrupo de dados que você pretende utilizar no banco de dados 2. para isto utilize o comando subset da função lm.
Em 3 de maio de 2012 18:25, Sérgio Henrique almeida da silva ju <sergio.edfisica@gmail.com> escreveu:
Olá
Rodei um modelo:
reg1<-lm(est ~ e1 + f1 + g1 + i1 + k1 + m1 + o1 + r1 + s1 + t1, data = dados) summary (reg1)$coefficients
Estimate Std. Error t value Pr(>|t|) (Intercept) 33.811287 0.7983445 42.351753 1.557462e-202 e1 -3.300681 1.0234877 -3.224934 1.313683e-03 f1 -1.602262 0.6537985 -2.450697 1.448143e-02 g1 -1.337623 0.6721036 -1.990203 4.692499e-02 i1 -6.224414 0.9810556 -6.344608 3.820429e-10 k1 -1.279617 0.5544328 -2.307975 2.126718e-02 m1 -1.569079 0.5133349 -3.056638 2.316421e-03 o1 2.984603 1.6371984 1.822994 6.869551e-02 r1 1.340099 0.6338281 2.114295 3.481391e-02 s1 1.598583 0.4717877 3.388352 7.392205e-04 t1 6.286149 0.9227351 6.812518 1.946057e-11
E gostaria de criar uma variável em um outro banco (dados2) com a estimação da minha variável gerada pelo meu modelo, estou usando o seguinte comando, porém dá um erro.
dados2$estim=predict(idfu.reg1, dados2, se.fit = F) Error in `$<-.data.frame`(`*tmp*`, "esqui", value = list(fit = c(37.4586673781906, : replacement has 4 rows, data has 5565
Como posso fazer isso? -- Sérgio Henrique Almeida da Silva Junior Doutorando em Epidemiologia em Saúde Pública Escola Nacional de Saúde Pública Sérgio Arouca - ENSP/FIOCRUZ http://lattes.cnpq.br/1611345552843383 Tel: (21) 94429486/78101651 id: 123*20942
_______________________________________________ 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.
_______________________________________________ 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 (4)
-
Benilton Carvalho
-
Fernando Antonio de souza
-
Sérgio Henrique almeida da silva ju
-
Walmes Zeviani