SPSSX Discussion - random number generation
source link: http://spssx-discussion.165.s1.nabble.com/random-number-generation-td5719063.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
random number generation
I want to generate a set of 250 numbers drawn from the set of integers
[1,2,3,4,5,6,7}. I wonder if there is a simple way to do this in syntax, as
I haven't been able yet to do this with the various RAND. functions, other
than generating real numbers and re-computing them with other functions.
Thanks in advance for help,
Clive
=====================
To manage your subscription to SPSSX-L, send a message to
[hidden email] (not to SPSSX-L), with no body text except the
command. To leave the list, send the command
SIGNOFF SPSSX-L
For a list of commands to manage subscriptions, send the command
INFO REFCARD
Re: random number generation
* From the FM: "The uniform distribution takes values in the range a<x<b".
* Let a=1 and b=8, and then use TRUNC.
new file.
dataset close all.
input program.
loop #i = 1 to 250.
- compute X = trunc(rv.uniform(1,8)).
- end case.
end loop.
end file.
end input program.
frequencies X.
<quote author="Clive">
Hi,
I want to generate a set of 250 numbers drawn from the set of integers
[1,2,3,4,5,6,7}. I wonder if there is a simple way to do this in syntax, as
I haven't been able yet to do this with the various RAND. functions, other
than generating real numbers and re-computing them with other functions.
Thanks in advance for help,
Clive
=====================
To manage your subscription to SPSSX-L, send a message to
[hidden email] (not to SPSSX-L), with no body text except the
command. To leave the list, send the command
SIGNOFF SPSSX-L
For a list of commands to manage subscriptions, send the command
INFO REFCARD
Bruce Weaver
[email protected]
http://sites.google.com/a/lakeheadu.ca/bweaver/
"When all else fails, RTFM."
PLEASE NOTE THE FOLLOWING:
1. My Hotmail account is not monitored regularly. To send me an e-mail, please use the address shown above.
2. The SPSSX Discussion forum on Nabble is no longer linked to the SPSSX-L listserv administered by UGA (https://listserv.uga.edu/).
Re: random number generation
MATRIX.
SAVE (TRUNC(UNIFORM(250,1)*7+1 ))/OUTFILE */VAR UNI7.
END MATRIX.
Bruce Weaver wrote* Use RV.UNIFORM function to generate integers in the range 1-7.
* From the FM: "The uniform distribution takes values in the range a<x<b".
* Let a=1 and b=8, and then use TRUNC.
new file.
dataset close all.
input program.
loop #i = 1 to 250.
- compute X = trunc(rv.uniform(1,8)).
- end case.
end loop.
end file.
end input program.
frequencies X.
<quote author="Clive">
Hi,
I want to generate a set of 250 numbers drawn from the set of integers
[1,2,3,4,5,6,7}. I wonder if there is a simple way to do this in syntax, as
I haven't been able yet to do this with the various RAND. functions, other
than generating real numbers and re-computing them with other functions.
Thanks in advance for help,
Clive
=====================
To manage your subscription to SPSSX-L, send a message to
[hidden email] (not to SPSSX-L), with no body text except the
command. To leave the list, send the command
SIGNOFF SPSSX-L
For a list of commands to manage subscriptions, send the command
INFO REFCARD... [show rest of quote]
Those desiring my consulting or training services please feel free to email me.
---
"Nolite dare sanctum canibus neque mittatis margaritas vestras ante porcos ne forte conculcent eas pedibus suis."
Cum es damnatorum possederunt porcos iens ut salire off sanguinum cliff in abyssum?"
Re: random number generation
Thank you very much for your solution to this problem,
Regards,
Clive
=====================
To manage your subscription to SPSSX-L, send a message to
[hidden email] (not to SPSSX-L), with no body text except the
command. To leave the list, send the command
SIGNOFF SPSSX-L
For a list of commands to manage subscriptions, send the command
INFO REFCARD
Re: random number generation
Thank you very much for your matrix solution to this problem,
Regards
Clive
=====================
To manage your subscription to SPSSX-L, send a message to
[hidden email] (not to SPSSX-L), with no body text except the
command. To leave the list, send the command
SIGNOFF SPSSX-L
For a list of commands to manage subscriptions, send the command
INFO REFCARD
Re: random number generation
This code works great.
input program.
loop #i = 1 to 250.
- compute X =rv.univorm (.5,16).
- end case.
end loop.
end file.
end input program.
frequencies X.
Is there a way to tweak this so that it only generates numbers that 0.5 apart?
I need numbers in this range but that only jump by 0.5 so: 0.50, 1.0, 1.5, 2.0, .....15.5, 16.0.
Thanks much!
Carol
Re: random number generation
One way to do it, truncate to integers over 1-32 [note exactly 33 should never happen in rv.uniform(1,33)], and then divide by 2. Upped the number of simulated draws to show it is approximately is uniform as expected.
*************************.
input program.
loop #i = 1 to 1e6.
- compute X =trunc(rv.univorm (1,33))/2.
- end case.
end loop.
end file.
end input program.
frequencies X.
*************************.
Re: random number generation
This worked like a charm.
Thanks for the quick response!
Re: random number generation
MATRIX.
SAVE (TRUNC(UNIFORM(1e6,1)*32+1)/2)/OUTFILE */VAR X.
END MATRIX.
GRAPH HISTOGRAM X.
FREQUENCIES X.
Andy W wroteOne way to do it, truncate to integers over 1-32 [note exactly 33 should never happen in rv.uniform(1,33)], and then divide by 2. Upped the number of simulated draws to show it is approximately is uniform as expected.
*************************.
input program.
loop #i = 1 to 1e6.
- compute X =trunc(rv.univorm (1,33))/2.
- end case.
end loop.
end file.
end input program.
frequencies X.
*************************.
Bruce Weaver
[email protected]
http://sites.google.com/a/lakeheadu.ca/bweaver/
"When all else fails, RTFM."
PLEASE NOTE THE FOLLOWING:
1. My Hotmail account is not monitored regularly. To send me an e-mail, please use the address shown above.
2. The SPSSX Discussion forum on Nabble is no longer linked to the SPSSX-L listserv administered by UGA (https://listserv.uga.edu/).
Re: random number generation
Well, I would amend the range "exactly 33 should never happen in rv.uniform(1,33)"
to "never in my lifetime", since the basic Mersenne generator generates in [0,1].
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK