Como converter a saída de um ajuste lm () com um spline cúbico em uma equação de regressão

12

Eu tenho algum código e saída e gostaria de construir um modelo. Não sei como construir um modelo usando esta saída:

 require("splines")
 x   <- c(0.2,   0.23,   0.26,   0.29,   0.33,   0.46,    0.53 )
 y   <- c(0.211, 0.2026, 0.2034, 0.2167, 0.2177, 0.19225, 0.182)
 fit <- lm(y ~ ns(x,3))
 summary(fit)

Observe que ns()gera a matriz básica do spline B para um spline cúbico natural. Assim, este modelo regride ycontra um spline B para xusar três graus de liberdade. Como seria a equação para esse modelo?

AmeliaBright
fonte
2
Embora essa preocupação seja interessante aqui, essa questão é declarada demais de uma Rmaneira centralizada - e, portanto, pertence ao SO - a menos que você explique o que nsfaz. (Não é nem parte de R: de qual pacote ele vem?)
whuber
1
@ whuber, veja aqui :? ns ; ns()faz parte do pacote splines. Reconheço que esta questão é apresentada em termos de R, mas minha opinião é que ela está no tópico aqui.
gung - Restabelece Monica
@gung Sim, eu também consegui encontrar o pacote, mas esse não é o ponto: para que essa questão permaneça aqui, ela precisa ser inteligível até para usuários que não são de R.
whuber
1
@ whuber Adicionei um pouco de explicação. Você está procurando mais do que isso?
Reintegrar Monica - G. Simpson
2
@ Gavin Obrigado. Tomei a liberdade de adicionar mais uma linha para que usuários não-R possam entender o que está sendo solicitado (e, talvez, portanto, oferecer respostas significativas).
whuber

Respostas:

19
require(rms)
f <- ols(y ~ rcs(x, 3))  # 2 d.f. for x
Function(f)  # represent fitted function in simplest R form
latex(f)     # typeset algebraic representation of fit

rcs "spline público restrito" é outra representação de um spline natural.

Frank Harrell
fonte
5
Isso é impressionante. Mas acho que a resposta que se procuraria neste site (em oposição ao SO) explicaria como, em geral, se determina a equação de um spline.
whuber
Obrigado! Você pode explicar por que os coeficientes produzidos por f são diferentes dos coeficientes produzidos pelo ajuste?
AmeliaBright
2
Existem diferentes representações de funções básicas para splines. nsgera termos ortogonais (não correlacionados) que são mais difíceis de interpretar, enquanto rcsusa a base de poder truncada que é fácil de representar em uma equação. Pense neste exemplo: você poderia ter um modelo comX e X2 ou você poderia caber X-X¯ e (X-X¯)2. Os termos deste último seriam ortogonais, mas mais difíceis de interpretar em termos de variáveis ​​brutas.
Frank Harrell