2017-06-21 1 views
1

Considérons cet exemple:Passer un vecteur à la fonction de sous-ensemble dans lm()?

data <- data.frame(predictor = c(1,2,3,4,5,6), 
dv = c(5,3,5,6,6,1), 
id = c(1,2,3,1,2,3)) 

model <- lm(dv ~ predictor, subset = id, data = data) 
summary(model) 

je comprendrais ce que cela signifierait passer, disons, subset = id==1 à la fonction lm - il utiliserait uniquement les observations qui a le numéro d'identification correspondant. Cependant, quand je passe le vecteur entier, la régression court toujours et fournit une sortie. Mais qu'est-ce que ça veut dire?

Répondre

1

Selon ?lm, nous voyons

sous-ensemble - un vecteur facultatif spécifiant un sous-ensemble d'observations à utilisées dans le processus d'ajustement.

Nous pouvons voir les données utilisées si nous courons lmobject$model:

lm(dv ~ predictor, subset = 1, data = data)$model 
# dv predictor 
#1 5   1 
lm(dv ~ predictor, subset = 1:5, data = data)$model 
# dv predictor 
#1 5   1 
#2 3   2 
#3 5   3 
#4 6   4 
#5 6   5 
data$id 
#[1] 1 2 3 1 2 3 
lm(dv ~ predictor, subset = id, data = data)$model 
# dv predictor 
#1 5   1 
#2 3   2 
#3 5   3 
#1.1 5   1 
#2.1 3   2 
#3.1 5   3 

id Exécution en cours il suffit de répéter les lignes de données. Faites-moi savoir si quelque chose n'est pas encore clair.

+0

Je ne comprends pas très bien ce que signifie "Running ID va simplement répéter les lignes de données"? Cela signifie-t-il que la transmission de 'id' a une interprétation significative, ou non? Quelle est cette interprétation? – histelheim

+0

La signification ou non de tout élément dépend des données. Vous ne faites que répéter vos observations, en particulier les lignes 1 à 3 de vos "données" - deux fois. –

+0

Est-ce que cela répond à votre question? –