SPSS expert,
I used "Curve Estimation" to find a functional form for my data. I found that S-curve is best fitted. I found the equation for S-curve in the help menu: S-curve. Model whose equation is Y = e**(b0 + (b1/t)) or ln(Y) = b0 + (b1/t). I need more information about this function. Can anyone give me references about the above equation? Thanks in advance, -- Sungeun Chung, Ph.D. Assistant Professor Department of Communication Memorial Hall 303G Western Illinois University Macomb, IL 61455-1390 Tel. (309) 298-2219 E-mail: [hidden email]; [hidden email] |
Take a look at the econometrics literature. The s-curve is also known as the
logistic model or function. A classic example is adoption rate of a new product/technology. Initially, the adoption rate is slow until some critical mass is reached. Then adoption is fast until it reaches saturation. The classic econometrics text is Greene, W. H. (2000). Econometric analysis. (4th Ed.). Upper Saddle River, NJ: Prentice-Hall. Edgar --- Discover Technologies 42020 Koppernick Rd. Suite 204 Canton, MI 48187 (734) 564-4964 (734) 468-0800 fax -----Original Message----- From: SPSSX(r) Discussion [mailto:[hidden email]] On Behalf Of Sungeun Chung Sent: Thursday, February 08, 2007 5:14 PM To: [hidden email] Subject: Information about S-curve in SPSS SPSS expert, I used "Curve Estimation" to find a functional form for my data. I found that S-curve is best fitted. I found the equation for S-curve in the help menu: S-curve. Model whose equation is Y = e**(b0 + (b1/t)) or ln(Y) = b0 + (b1/t). I need more information about this function. Can anyone give me references about the above equation? Thanks in advance, -- Sungeun Chung, Ph.D. Assistant Professor Department of Communication Memorial Hall 303G Western Illinois University Macomb, IL 61455-1390 Tel. (309) 298-2219 E-mail: [hidden email]; [hidden email] |
Edgar,
Thank you for the information. SPSS has different equations for S-Curve and Logistics model. The equation for the logistics is the same in Greene (2000). Y = 1 / (1/u + (b0 * (b1**t))) or ln(1/y-1/u) = ln (b0) + (ln(b1) * t) where u is the upper boundary value The equation of S-curve is Y = e**(b0 + (b1/t)) or ln(Y) = b0 + (b1/t). I cannot find the equation for the S-curve in Green (2000). Any more help? Thank you. Sungeun On 2/8/07, Edgar F. Johns <[hidden email]> wrote: > > Take a look at the econometrics literature. The s-curve is also known as > the > logistic model or function. A classic example is adoption rate of a new > product/technology. Initially, the adoption rate is slow until some > critical > mass is reached. Then adoption is fast until it reaches saturation. > > The classic econometrics text is Greene, W. H. (2000). Econometric > analysis. > (4th Ed.). Upper Saddle River, NJ: Prentice-Hall. > > Edgar > --- > Discover Technologies > 42020 Koppernick Rd. > Suite 204 > Canton, MI 48187 > (734) 564-4964 > (734) 468-0800 fax > > -----Original Message----- > From: SPSSX(r) Discussion [mailto:[hidden email]] On Behalf Of > Sungeun Chung > Sent: Thursday, February 08, 2007 5:14 PM > To: [hidden email] > Subject: Information about S-curve in SPSS > > SPSS expert, > > I used "Curve Estimation" to find a functional form for my data. I found > that S-curve is best fitted. > > I found the equation for S-curve in the help menu: > > S-curve. Model whose equation is Y = e**(b0 + (b1/t)) or ln(Y) = b0 + > (b1/t). > > I need more information about this function. Can anyone give me > references > about the above equation? > > Thanks in advance, > > -- > Sungeun Chung, Ph.D. > > Assistant Professor > Department of Communication > Memorial Hall 303G > Western Illinois University > Macomb, IL 61455-1390 > Tel. (309) 298-2219 > E-mail: [hidden email]; [hidden email] > > -- Sungeun Chung, Ph.D. Assistant Professor Department of Communication Memorial Hall 303G Western Illinois University Macomb, IL 61455-1390 Tel. (309) 298-2219 E-mail: [hidden email]; [hidden email] |
Colleagues
I have the following set of IF statements which successfully execute. IF ( P01_VAR4 > 0 ) P01_VAR3 = P01_VAR1 . ... IF ( P35_VAR4 > 0 ) P35_VAR3 = P01_VAR1 . In some cases the value for VAR3 is zero and I rightly get a warning message and the cell is marked with a dot for missing value. The command has evolved over a week of modifying the calculation with the result that the cells contain pre-existing values. What I have noticed is that the IF statement above does not replace the pre-existing values with a blank cell. My questions are: (a) Is there a command that I can apply to a variable to clear values? I cannot see anything in the syntax help file that erases/deletes/removes values. These key words only seem to apply to files or variables themselves. (b) Is there an amendment to the syntax which can force a missing value to be inserted overriding whatever is in the cell? TIA/gary |
At 10:56 PM 2/8/2007, Gary Oliver wrote:
>I have the following set of IF statements which successfully execute. >IF ( P01_VAR4 > 0 ) P01_VAR3 = P01_VAR1 . >... >IF ( P35_VAR4 > 0 ) P35_VAR3 = P01_VAR1 . > >In some cases the value for VAR3 is zero and I rightly get a warning >message and the cell is marked with a dot for missing value. I'm afraid I flat-out don't understand this. In the first place, I see no VAR3 in the syntax you've given. In the second, I don't see how you'd get a warning message from a 0 value for any of the variables. (Nor from a missing value, though it might be a good idea if a missing value for a Pnn_VAR4 variable *did* cause a warning.) >The IF statement above does not replace the pre-existing values with a >blank cell. If I understand you're meaning, that's right. An IF statement either applies its change, or does nothing. Your IF statements will copy the value of P01_VAR1 if the condition tests 'true', and do nothing at all otherwise; that's how IF is designed to work. >(a) Is there a command that I can apply to a variable to clear values? COMPUTE var1 = $SYSMIS. Or, for a list of variables, RECODE <varlist> (ELSE=SYSMIS). (Careful. You must use '$SYSMIS' in the COMPUTE, and 'SYSMIS' without the '$' in the RECODE.) >(b) Is there an amendment to the syntax which can force a missing >value >to be inserted overriding whatever is in the cell? If you want a test that assigns a value of a test is true and clears the variable otherwise, use DO IF instead of IF. Instead of IF ( P01_VAR4 > 0 ) P01_VAR3 = P01_VAR1 . use (not tested) DO IF ( P01_VAR4 > 0 ) AND NOT MISSING( P01_VAR4 > 0 ). . COMPUTE P01_VAR3 = P01_VAR1 . ELSE. . COMPUTE P01_VAR3 = $SYSMIS. END IF. (Using "AND NOT MISSING( P01_VAR4 > 0 )" causes the variable to be cleared if the test returns 'missing' as well as if it returns 'false'.) Finally, DO REPEAT, or VECTORs and LOOP, would probably make your code much more compact, and easier to read and maintain. |
In reply to this post by Gary Oliver
A statement like:
COMPUTE P01_VAR3 = $SYMSIS. IF P01_VAR4 > 0 P01_VAR3 = P01_VAR1. Will reset all the values and populate P01_VAR3 with the values you want. It looks like you have a set of variables to process. If so, something using DO REPEAT could reduce your typing: *** SAMPLE DATA. data list free /id P01_VAR4 P02_VAR4 P03_VAR4 P01_VAR1. begin data 1 2 2 0 0 0 5 2 1 1 1 1 0 5 3 0 0 0 0 0 5 4 1 2 3 4 5 5 5 0 0 0 0 1 5 end data. DO REPEAT x = P01_VAR4 P02_VAR4 P03_VAR4 P04_VAR4 /y = P01_VAR3 P02_VAR3 P03_VAR3 P04_VAR3 . COMPUTE Y = $SYSMIS. IF X >0 Y =P01_VAR1. END REPEAT. EXE. This will run COMPUTE for each value of Pxx_VAR4 and Pxx_VAR3. Does this help? --jim -----Original Message----- From: SPSSX(r) Discussion [mailto:[hidden email]] On Behalf Of Gary Oliver Sent: Thursday, February 08, 2007 9:57 PM To: [hidden email] Subject: IF statement to overwite an existing value with a missing value Colleagues I have the following set of IF statements which successfully execute. IF ( P01_VAR4 > 0 ) P01_VAR3 = P01_VAR1 . ... IF ( P35_VAR4 > 0 ) P35_VAR3 = P01_VAR1 . In some cases the value for VAR3 is zero and I rightly get a warning message and the cell is marked with a dot for missing value. The command has evolved over a week of modifying the calculation with the result that the cells contain pre-existing values. What I have noticed is that the IF statement above does not replace the pre-existing values with a blank cell. My questions are: (a) Is there a command that I can apply to a variable to clear values? I cannot see anything in the syntax help file that erases/deletes/removes values. These key words only seem to apply to files or variables themselves. (b) Is there an amendment to the syntax which can force a missing value to be inserted overriding whatever is in the cell? TIA/gary |
At 03:43 PM 2/9/2007, Marks, Jim wrote:
>A statement like: > >COMPUTE P01_VAR3 = $SYMSIS. >IF P01_VAR4 > 0 P01_VAR3 = P01_VAR1. > >Will reset all the values and populate P01_VAR3 with the values you >want. Touché. That's the way we did it before DO IF was introduced. It's shorter, easier to write, and easier to get right, than the DO IF solution I gave: >>DO IF ( P01_VAR4 > 0 ) >> AND NOT MISSING( P01_VAR4 > 0 ). >>. COMPUTE P01_VAR3 = P01_VAR1 . >>ELSE. >>. COMPUTE P01_VAR3 = $SYSMIS. >>END IF. There's a lot to be said for remembering old-school styles. Jim also wrote, >It looks like you have a set of variables to process. If so, something >using DO REPEAT could reduce your typing: Yes. Reduce your typing, make your code shorter and more readable, and be less prone to errors. -Good luck, and thanks, Richard |
The approach suggested will work. However, in the long run it is
advisable to avoid explicitly using $symiss or sysmis on the right hand side of the assignment operator. In order to preserve the distinction between user-missing and system-missing the first statement should be something like compute p01_var3 = -1. missing values p01_var3 (lo thru -1). value labels p01_var3 -1 'initial value set by user'. The value is *not* missing because the machine could not follow the user's instruction. The value is missing because the *user set it to be*. It is a major help in debugging syntax to reserve system missing to 2 situations 1) when the user tells the system to read data that is not compatible with the format specified. This situation is detected from the warnings in the log The user then edits the syntax and runs it again. This is repeated until there are no more warnings. Descriptive statistics are then used to explore the data before transformations are done. Once the data reading phase has bee debugged it is time to start the transformations phase. 2) when the user tells the system to do a data transformation that it cannot do. This situation is detected because there are warnings in the log and because values are set to system-missing. System missing values point to situations where the user's logic did not accommodate the contingencies encountered in the data. When this occurs the syntax is edited to correct the syntax to assign user missing values or valid values as appropriate to the contingency This is repeated until there are no more warnings. Descriptive statistics are then used to validate the transformations before the analysis phase is started. Art Kendall Social Research Consultants Richard Ristow wrote: > At 03:43 PM 2/9/2007, Marks, Jim wrote: > >> A statement like: >> >> COMPUTE P01_VAR3 = $SYMSIS. >> IF P01_VAR4 > 0 P01_VAR3 = P01_VAR1. >> >> Will reset all the values and populate P01_VAR3 with the values you >> want. > > Touché. That's the way we did it before DO IF was > introduced. It's shorter, easier to write, and > easier to get right, than the DO IF solution I gave: > >>> DO IF ( P01_VAR4 > 0 ) >>> AND NOT MISSING( P01_VAR4 > 0 ). >>> . COMPUTE P01_VAR3 = P01_VAR1 . >>> ELSE. >>> . COMPUTE P01_VAR3 = $SYSMIS. >>> END IF. > > There's a lot to be said for remembering old-school styles. > > Jim also wrote, > >> It looks like you have a set of variables to process. If so, something >> using DO REPEAT could reduce your typing: > > Yes. Reduce your typing, make your code shorter > and more readable, and be less prone to errors. > > -Good luck, and thanks, > Richard > > |
Free forum by Nabble | Edit this page |